From 1055304fd43eb84cf642d3c5dc7235abe7cec545 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 18 Aug 2011 06:56:11 +0200 Subject: [PATCH 001/344] Update to 5.28.00f --- root.spec | 20 +++++++++++++------- sources | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/root.spec b/root.spec index 5ccaa3a..7332d04 100644 --- a/root.spec +++ b/root.spec @@ -18,9 +18,9 @@ %endif Name: root -Version: 5.28.00e +Version: 5.28.00f %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -1064,7 +1064,7 @@ rm -rf core/zip/src/[a-z]* core/zip/inc/[a-z]* rm graf3d/gl/src/gl2ps.cxx graf3d/gl/inc/gl2ps.h sed 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' -i graf3d/gl/Module.mk # * unuran -rm -rf math/unuran/src/unuran-1.5.1-root.tar.gz +rm -rf math/unuran/src/*.tar.gz # * xrootd rm -rf net/xrootd/src @@ -1122,15 +1122,15 @@ unset QTINC --enable-editline \ --enable-exceptions \ --enable-explicitlink \ - --enable-fitsio \ --enable-fftw3 \ + --enable-fitsio \ --enable-gdml \ + --enable-genvector \ --enable-globus \ --enable-gsl-shared \ --enable-gviz \ --enable-krb5 \ --enable-ldap \ - --enable-genvector \ --enable-mathmore \ --enable-memstat \ --enable-minuit2 \ @@ -1171,6 +1171,7 @@ unset QTINC %else --disable-cintex \ %endif + --disable-afdsmgrd \ --disable-afs \ --disable-alien \ --disable-alloc \ @@ -1189,13 +1190,15 @@ unset QTINC --disable-srp \ --fail-on-missing -make OPTFLAGS="%{optflags}" %{?_smp_mflags} +make OPTFLAGS="%{optflags}" \ + EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} %if "%{?rhel}" == "5" # Build PyROOT for python 2.6 mkdir pyroot26 cp bindings/pyroot26/ROOT.py pyroot26 -make OPTFLAGS="%{optflags}" %{?_smp_mflags} \ +make OPTFLAGS="%{optflags}" \ + EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ MODULES="build cint/cint core/utils bindings/pyroot26" \ PYTHONINCDIR=/usr/include/python2.6 PYTHONLIB=-lpython2.6 \ PYROOTLIB=pyroot26/libPyROOT.so ROOTPY=pyroot26/ROOT.py @@ -2267,6 +2270,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Wed Aug 17 2011 Mattias Ellert - 5.28.00f-1 +- Update to 5.28.00f + * Wed Jun 29 2011 Mattias Ellert - 5.28.00e-2 - Change build requires from qt-devel to qt4-devel diff --git a/sources b/sources index efa3738..faa0188 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -82d18ee3e2edfd0f1ca737162cdebae6 root-5.28.00e.tar.gz +1ec8f97214e40455c3cfeec49512810f root-5.28.00f.tar.gz From 138fe78ba2d3be255510c688e6f3299d7dd769ca Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 14 Sep 2011 23:03:14 +0200 Subject: [PATCH 002/344] Update to 5.28.00g --- root.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index 7332d04..383e195 100644 --- a/root.spec +++ b/root.spec @@ -18,7 +18,7 @@ %endif Name: root -Version: 5.28.00f +Version: 5.28.00g %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -2270,6 +2270,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Wed Sep 14 2011 Mattias Ellert - 5.28.00g-1 +- Update to 5.28.00g + * Wed Aug 17 2011 Mattias Ellert - 5.28.00f-1 - Update to 5.28.00f diff --git a/sources b/sources index faa0188..e136fb6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1ec8f97214e40455c3cfeec49512810f root-5.28.00f.tar.gz +3db0a2db880f8744e4a01234d3020909 root-5.28.00g.tar.gz From 2aabc6531ead1e82b52e5eaf3a0b894382094be6 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 13 Jan 2012 20:53:59 -0600 Subject: [PATCH 003/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index fc31e45..f6c7fa8 100644 --- a/root.spec +++ b/root.spec @@ -20,7 +20,7 @@ Name: root Version: 5.30.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2286,6 +2286,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Jan 14 2012 Fedora Release Engineering - 5.30.04-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Wed Nov 16 2011 Mattias Ellert - 5.30.04-1 - Update to 5.30.04 From d2b52a9934520e30aca9788a12f00a9efeec3fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 10 Feb 2012 13:09:36 +0100 Subject: [PATCH 004/344] Rebuild against PCRE 8.30 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index f6c7fa8..2faa310 100644 --- a/root.spec +++ b/root.spec @@ -20,7 +20,7 @@ Name: root Version: 5.30.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2286,6 +2286,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Feb 10 2012 Petr Pisar - 5.30.04-3 +- Rebuild against PCRE 8.30 + * Sat Jan 14 2012 Fedora Release Engineering - 5.30.04-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From 01f8f751371ddd32f090295096dda1ff07850f5b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 13 Feb 2012 07:24:08 +0100 Subject: [PATCH 005/344] Update to 5.32.00 --- root-cern-ppc.patch | 11 -- root-fit.patch | 75 ++++++++++++ root-globals.patch | 270 +++++++++++++++++++++++++++++++++++++++++ root-globus-deps.patch | 30 +++++ root-html.C | 8 +- root-includelist | 10 +- root-rfio.patch | 74 +++++++++++ root-ruby.patch | 211 ++++++++++++++++++++++++++++++++ root-xrootd.patch | 101 ++++++--------- root.spec | 63 +++++++--- sources | 2 +- 11 files changed, 746 insertions(+), 109 deletions(-) delete mode 100644 root-cern-ppc.patch create mode 100644 root-fit.patch create mode 100644 root-globals.patch create mode 100644 root-globus-deps.patch create mode 100644 root-rfio.patch create mode 100644 root-ruby.patch diff --git a/root-cern-ppc.patch b/root-cern-ppc.patch deleted file mode 100644 index dfba748..0000000 --- a/root-cern-ppc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- root-5.26.00d.orig/tutorials/tree/cernbuild.C 2010-08-29 10:20:56.069801363 +0200 -+++ root-5.26.00d/tutorials/tree/cernbuild.C 2010-08-29 15:52:51.000000000 +0200 -@@ -22,7 +22,7 @@ - TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); - dir.ReplaceAll("cernbuild.C",""); - dir.ReplaceAll("/./","/"); -- FILE *fp = fopen(Form("%scernstaff.dat",dir.Data()),"r"); -+ FILE *fp = fopen((dir+"cernstaff.dat").Data(),"r"); - - TFile *hfile = 0; - if (get) { diff --git a/root-fit.patch b/root-fit.patch new file mode 100644 index 0000000..09a255f --- /dev/null +++ b/root-fit.patch @@ -0,0 +1,75 @@ +diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/Chi2FCN.h root-5.32.00/math/mathcore/inc/Fit/Chi2FCN.h +--- root-5.32.00.orig/math/mathcore/inc/Fit/Chi2FCN.h 2011-12-02 12:41:53.000000000 +0100 ++++ root-5.32.00/math/mathcore/inc/Fit/Chi2FCN.h 2012-02-12 22:45:37.560460921 +0100 +@@ -61,17 +61,14 @@ + @ingroup FitMethodFunc + */ + template +-class Chi2FCN : public ::ROOT::Math::BasicFitMethodFunction { ++class Chi2FCN : public ROOT::Math::BasicFitMethodFunction { + + public: ++ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; ++ typedef typename BaseObjFunction::BaseFunction BaseFunction; + +- +- +- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; +- typedef typename BaseObjFunction::BaseFunction BaseFunction; +- +- //typedef typename ::ROOT::Math::ParamFunctionTrait::PFType IModelFunction; +- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; ++ //typedef typename ROOT::Math::ParamFunctionTrait::PFType IModelFunction; ++ typedef ROOT::Math::IParamMultiFunction IModelFunction; + typedef typename BaseObjFunction::Type_t Type_t; + + /** +diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/LogLikelihoodFCN.h root-5.32.00/math/mathcore/inc/Fit/LogLikelihoodFCN.h +--- root-5.32.00.orig/math/mathcore/inc/Fit/LogLikelihoodFCN.h 2011-12-02 12:41:53.000000000 +0100 ++++ root-5.32.00/math/mathcore/inc/Fit/LogLikelihoodFCN.h 2012-02-12 22:48:57.058092616 +0100 +@@ -50,17 +50,13 @@ + @ingroup FitMethodFunc + */ + template +-class LogLikelihoodFCN : public ::ROOT::Math::BasicFitMethodFunction { ++class LogLikelihoodFCN : public ROOT::Math::BasicFitMethodFunction { + + public: ++ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; ++ typedef typename BaseObjFunction::BaseFunction BaseFunction; + +- +- +- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; +- typedef typename BaseObjFunction::BaseFunction BaseFunction; +- +- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; +- ++ typedef ROOT::Math::IParamMultiFunction IModelFunction; + + /** + Constructor from unbin data set and model function (pdf) +diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h root-5.32.00/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h +--- root-5.32.00.orig/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h 2011-12-02 12:41:53.000000000 +0100 ++++ root-5.32.00/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h 2012-02-12 22:48:29.878448447 +0100 +@@ -50,16 +50,13 @@ + @ingroup FitMethodFunc + */ + template +-class PoissonLikelihoodFCN : public ::ROOT::Math::BasicFitMethodFunction { ++class PoissonLikelihoodFCN : public ROOT::Math::BasicFitMethodFunction { + + public: ++ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; ++ typedef typename BaseObjFunction::BaseFunction BaseFunction; + +- +- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; +- typedef typename BaseObjFunction::BaseFunction BaseFunction; +- +- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; +- ++ typedef ROOT::Math::IParamMultiFunction IModelFunction; + + /** + Constructor from unbin data set and model function (pdf) diff --git a/root-globals.patch b/root-globals.patch new file mode 100644 index 0000000..325fa64 --- /dev/null +++ b/root-globals.patch @@ -0,0 +1,270 @@ +diff -ur root-5.32.00.orig/hist/hist/src/TGraph2DErrors.cxx root-5.32.00/hist/hist/src/TGraph2DErrors.cxx +--- root-5.32.00.orig/hist/hist/src/TGraph2DErrors.cxx 2011-12-02 12:42:07.000000000 +0100 ++++ root-5.32.00/hist/hist/src/TGraph2DErrors.cxx 2012-02-11 15:11:23.205768374 +0100 +@@ -71,7 +71,7 @@ + dte->SetLineColor(kBlue-3); + dte->SetLineWidth(2); + dte->Draw("err p0"); +- gPad->SetLogy(1); ++ TVirtualPad::Pad()->SetLogy(1); + return c; + } + End_Macro +diff -ur root-5.32.00.orig/hist/hist/src/TMultiGraph.cxx root-5.32.00/hist/hist/src/TMultiGraph.cxx +--- root-5.32.00.orig/hist/hist/src/TMultiGraph.cxx 2011-12-02 12:42:07.000000000 +0100 ++++ root-5.32.00/hist/hist/src/TMultiGraph.cxx 2012-02-11 16:23:09.975601997 +0100 +@@ -157,7 +157,7 @@ + mg->GetYaxis()->SetTitle("Coefficients"); + + // Change the axis limits +- gPad->Modified(); ++ TVirtualPad::Pad()->Modified(); + mg->GetXaxis()->SetLimits(1.5,7.5); + mg->SetMinimum(0.); + mg->SetMaximum(10.); +diff -ur root-5.32.00.orig/hist/histpainter/src/TGraphPainter.cxx root-5.32.00/hist/histpainter/src/TGraphPainter.cxx +--- root-5.32.00.orig/hist/histpainter/src/TGraphPainter.cxx 2011-12-02 12:42:07.000000000 +0100 ++++ root-5.32.00/hist/histpainter/src/TGraphPainter.cxx 2012-02-11 15:11:23.242767900 +0100 +@@ -334,8 +334,8 @@ + float y[] = {1,4,9}; + TGraphErrors tg(3,x,y,err_x,err_y); + c48->Divide(2,1); +- c48->cd(1); gPad->DrawFrame(0,0,4,8); tg.Draw("PC"); +- c48->cd(2); gPad->DrawFrame(0,0,4,8); tg.Draw("0PC"); ++ c48->cd(1); TVirtualPad::Pad()->DrawFrame(0,0,4,8); tg.Draw("PC"); ++ c48->cd(2); TVirtualPad::Pad()->DrawFrame(0,0,4,8); tg.Draw("0PC"); + return c48; + } + End_Macro +diff -ur root-5.32.00.orig/hist/histpainter/src/THistPainter.cxx root-5.32.00/hist/histpainter/src/THistPainter.cxx +--- root-5.32.00.orig/hist/histpainter/src/THistPainter.cxx 2011-12-02 12:42:07.000000000 +0100 ++++ root-5.32.00/hist/histpainter/src/THistPainter.cxx 2012-02-11 15:15:38.786479566 +0100 +@@ -665,14 +665,14 @@ + + // scale hint1 to the pad coordinates + Float_t rightmax = 1.1*hint1->GetMaximum(); +- Float_t scale = gPad->GetUymax()/rightmax; ++ Float_t scale = TVirtualPad::Pad()->GetUymax()/rightmax; + hint1->SetLineColor(kRed); + hint1->Scale(scale); + hint1->Draw("same"); + + // draw an axis on the right side +- TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(), +- gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L"); ++ TGaxis *axis = new TGaxis(TVirtualPad::Pad()->GetUxmax(),TVirtualPad::Pad()->GetUymin(), ++ TVirtualPad::Pad()->GetUxmax(), TVirtualPad::Pad()->GetUymax(),0,rightmax,510,"+L"); + axis->SetLineColor(kRed); + axis->SetTextColor(kRed); + axis->Draw(); +@@ -2178,7 +2178,7 @@ + + TMultiGraph *mg; + TKey *key; +- TIter nextkey(gDirectory->GetListOfKeys()); ++ TIter nextkey(TDirectory::CurrentDirectory()->GetListOfKeys()); + while (key = (TKey*)nextkey()) { + obj = key->ReadObj(); + if (obj->InheritsFrom("TMultiGraph")) { +diff -ur root-5.32.00.orig/hist/histpainter/src/TPaletteAxis.cxx root-5.32.00/hist/histpainter/src/TPaletteAxis.cxx +--- root-5.32.00.orig/hist/histpainter/src/TPaletteAxis.cxx 2011-12-02 12:42:07.000000000 +0100 ++++ root-5.32.00/hist/histpainter/src/TPaletteAxis.cxx 2012-02-11 16:28:01.762786179 +0100 +@@ -58,7 +58,7 @@ + } + gStyle->SetPalette(1); + h2->Draw("COLZ"); +- gPad->Update(); ++ TVirtualPad::Pad()->Update(); + TPaletteAxis *palette = (TPaletteAxis*)h2->GetListOfFunctions()->FindObject("palette"); + palette->SetY2NDC(0.7); + return c1; +diff -ur root-5.32.00.orig/tree/treeviewer/src/TParallelCoord.cxx root-5.32.00/tree/treeviewer/src/TParallelCoord.cxx +--- root-5.32.00.orig/tree/treeviewer/src/TParallelCoord.cxx 2011-12-02 12:42:02.000000000 +0100 ++++ root-5.32.00/tree/treeviewer/src/TParallelCoord.cxx 2012-02-11 16:30:34.884789287 +0100 +@@ -78,7 +78,7 @@ + TFile *f = TFile::Open("$ROOTSYS/tutorials/tree/cernstaff.root"); + TTree *T = (TTree*)f->Get("T"); + T->Draw("Age:Grade:Step:Cost:Division:Nation","","para"); +- TParallelCoord* para = (TParallelCoord*)gPad->GetListOfPrimitives()->FindObject("ParaCoord"); ++ TParallelCoord* para = (TParallelCoord*)TVirtualPad::Pad()->GetListOfPrimitives()->FindObject("ParaCoord"); + TParallelCoordVar* grade = (TParallelCoordVar*)para->GetVarList()->FindObject("Grade"); + grade->AddRange(new TParallelCoordRange(grade,11.5,14)); + para->AddSelection("less30"); +diff -ur root-5.32.00.orig/tutorials/graphics/earth.C root-5.32.00/tutorials/graphics/earth.C +--- root-5.32.00.orig/tutorials/graphics/earth.C 2011-12-02 12:41:50.000000000 +0100 ++++ root-5.32.00/tutorials/graphics/earth.C 2012-02-11 16:07:56.025452212 +0100 +@@ -19,7 +19,7 @@ + TH2F *hs = new TH2F("hs","Sinusoidal",180, -180, 180, 181, -90.5, 90.5); + TH2F *hp = new TH2F("hp","Parabolic", 180, -180, 180, 181, -90.5, 90.5); + +- TString dat = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); ++ TString dat = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); + dat.ReplaceAll("C","dat"); + dat.ReplaceAll("/./","/"); + +diff -ur root-5.32.00.orig/tutorials/hist/hbars.C root-5.32.00/tutorials/hist/hbars.C +--- root-5.32.00.orig/tutorials/hist/hbars.C 2011-12-02 12:41:49.000000000 +0100 ++++ root-5.32.00/tutorials/hist/hbars.C 2012-02-11 16:05:25.309365607 +0100 +@@ -1,10 +1,10 @@ + // Example of bar charts with 1-d histograms + // Author: Rene Brun + { +- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); ++ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); + dir.ReplaceAll("hbars.C","../tree/cernbuild.C"); + dir.ReplaceAll("/./","/"); +- if (!gInterpreter->IsLoaded(dir.Data())) gInterpreter->LoadMacro(dir.Data()); ++ if (!TInterpreter::Instance()->IsLoaded(dir.Data())) TInterpreter::Instance()->LoadMacro(dir.Data()); + TFile *f = (TFile*)gROOT->ProcessLineFast("cernbuild(1)"); + if (!f) return; + TTree *T = (TTree*)f->Get("T"); +@@ -14,13 +14,13 @@ + c1->Divide(1,2); + + //horizontal bar chart +- c1->cd(1); gPad->SetGrid(); gPad->SetLogx(); gPad->SetFrameFillColor(33); ++ c1->cd(1); TVirtualPad::Pad()->SetGrid(); TVirtualPad::Pad()->SetLogx(); TVirtualPad::Pad()->SetFrameFillColor(33); + T->Draw("Nation","","hbar2"); + + //vertical bar chart +- c1->cd(2); gPad->SetGrid(); gPad->SetFrameFillColor(33); ++ c1->cd(2); TVirtualPad::Pad()->SetGrid(); TVirtualPad::Pad()->SetFrameFillColor(33); + T->Draw("Division>>hDiv","","goff"); +- TH1F *hDiv = (TH1F*)gDirectory->Get("hDiv"); ++ TH1F *hDiv = (TH1F*)TDirectory::CurrentDirectory()->Get("hDiv"); + hDiv->SetStats(0); + TH1F *hDivFR = (TH1F*)hDiv->Clone("hDivFR"); + T->Draw("Division>>hDivFR","Nation==\"FR\"","goff"); +diff -ur root-5.32.00.orig/tutorials/hist/hstack.C root-5.32.00/tutorials/hist/hstack.C +--- root-5.32.00.orig/tutorials/hist/hstack.C 2011-12-02 12:41:49.000000000 +0100 ++++ root-5.32.00/tutorials/hist/hstack.C 2012-02-11 16:08:54.067671744 +0100 +@@ -33,18 +33,18 @@ + // in top right pad, draw the stack in non-stack mode + // and errors option + cst->cd(2); +- gPad->SetGrid(); ++ TVirtualPad::Pad()->SetGrid(); + hs->Draw("nostack,e1p"); + //in bottom left, draw in stack mode with "lego1" option + cst->cd(3); +- gPad->SetFrameFillColor(17); +- gPad->SetTheta(3.77); +- gPad->SetPhi(2.9); ++ TVirtualPad::Pad()->SetFrameFillColor(17); ++ TVirtualPad::Pad()->SetTheta(3.77); ++ TVirtualPad::Pad()->SetPhi(2.9); + hs->Draw("lego1"); + + cst->cd(4); + //create two 2-D histograms and draw them in stack mode +- gPad->SetFrameFillColor(17); ++ TVirtualPad::Pad()->SetFrameFillColor(17); + THStack *a = new THStack("a","Stacked 2D histograms"); + TF2 *f1 = new TF2("f1", + "xygaus + xygaus(5) + xylandau(10)",-4,4,-4,4); +diff -ur root-5.32.00.orig/tutorials/hsimple.C root-5.32.00/tutorials/hsimple.C +--- root-5.32.00.orig/tutorials/hsimple.C 2011-12-02 12:41:50.000000000 +0100 ++++ root-5.32.00/tutorials/hsimple.C 2012-02-11 15:11:23.468765021 +0100 +@@ -25,7 +25,7 @@ + // write access to this directory, otherwise the file is created in $PWD + + TString filename = "hsimple.root"; +- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); ++ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); + dir.ReplaceAll("hsimple.C",""); + dir.ReplaceAll("/./","/"); + TFile *hfile = 0; +diff -ur root-5.32.00.orig/tutorials/math/chi2test.C root-5.32.00/tutorials/math/chi2test.C +--- root-5.32.00.orig/tutorials/math/chi2test.C 2011-12-02 12:41:49.000000000 +0100 ++++ root-5.32.00/tutorials/math/chi2test.C 2012-02-11 15:11:23.535764169 +0100 +@@ -149,25 +149,25 @@ + + // Draw Histogramms and Graphs + c1->cd(1); +- gPad->SetFrameFillColor(21); ++ TVirtualPad::Pad()->SetFrameFillColor(21); + h1->SetMarkerColor(4); + h1->SetMarkerStyle(20); + + h1->Draw("E"); + + c1->cd(2); +- gPad->SetFrameFillColor(21); ++ TVirtualPad::Pad()->SetFrameFillColor(21); + h2->Draw(""); + h2->SetMarkerColor(4); + h2->SetMarkerStyle(20); + + c1->cd(3); +- gPad->SetFrameFillColor(21); +- gPad->SetGridy(); ++ TVirtualPad::Pad()->SetFrameFillColor(21); ++ TVirtualPad::Pad()->SetGridy(); + resgr->Draw("APL"); + + c1->cd(4); +- gPad->SetFrameFillColor(21); ++ TVirtualPad::Pad()->SetFrameFillColor(21); + qqplot->Draw("AP"); + + c1->cd(0); +diff -ur root-5.32.00.orig/tutorials/tree/cernbuild.C root-5.32.00/tutorials/tree/cernbuild.C +--- root-5.32.00.orig/tutorials/tree/cernbuild.C 2012-02-10 14:59:26.357917020 +0100 ++++ root-5.32.00/tutorials/tree/cernbuild.C 2012-02-11 17:52:20.988688923 +0100 +@@ -19,7 +19,7 @@ + //The input file cern.dat is a copy of the CERN staff data base + //from 1988 + TString filename = "cernstaff.root"; +- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); ++ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); + dir.ReplaceAll("cernbuild.C",""); + dir.ReplaceAll("/./","/"); + FILE *fp = fopen(Form("%scernstaff.dat",dir.Data()),"r"); +diff -ur root-5.32.00.orig/tutorials/tree/cernstaff.C root-5.32.00/tutorials/tree/cernstaff.C +--- root-5.32.00.orig/tutorials/tree/cernstaff.C 2011-12-02 12:41:49.000000000 +0100 ++++ root-5.32.00/tutorials/tree/cernstaff.C 2012-02-11 16:02:20.534771748 +0100 +@@ -10,17 +10,17 @@ + c1->SetFillColor(17); + c1->Divide(2,2); + // make table of number of people per Nation & Division +- c1->cd(1); gPad->SetGrid(); ++ c1->cd(1); TVirtualPad::Pad()->SetGrid(); + T->Draw("Nation:Division>>hN","","text"); +- TH2F *hN = (TH2F*)gDirectory->Get("hN"); ++ TH2F *hN = (TH2F*)TDirectory::CurrentDirectory()->Get("hN"); + hN->SetMarkerSize(1.6); + hN->SetStats(0); + + //make profile of Average cost per Nation +- c1->cd(2); gPad->SetGrid(); +- gPad->SetLeftMargin(0.12); ++ c1->cd(2); TVirtualPad::Pad()->SetGrid(); ++ TVirtualPad::Pad()->SetLeftMargin(0.12); + T->Draw("Cost:Nation>>hNation","","prof,goff"); +- TH1F *hNation = (TH1F*)gDirectory->Get("hNation"); ++ TH1F *hNation = (TH1F*)TDirectory::CurrentDirectory()->Get("hNation"); + hNation->SetTitle("Average Cost per Nation"); + hNation->LabelsOption(">"); //sort by decreasing bin contents + hNation->SetMaximum(13000); +@@ -30,7 +30,7 @@ + hNation->Draw(); + + //make stacked plot of Nations versus Grade +- c1->cd(3); gPad->SetGrid(); ++ c1->cd(3); TVirtualPad::Pad()->SetGrid(); + THStack *hGrades = new THStack("hGrades","Nations versus Grade"); + TH1F *hFR = new TH1F("hFR","FR",12,3,15); + hFR->SetFillColor(kCyan); +@@ -62,10 +62,10 @@ + legend->Draw(); + + //make histogram of age distribution +- c1->cd(4); gPad->SetGrid(); ++ c1->cd(4); TVirtualPad::Pad()->SetGrid(); + T->Draw("Age"); + T->Draw("Age>>hRetired","Age>(65-2002+1988)","same"); +- TH1F *hRetired = (TH1F*)gDirectory->Get("hRetired"); ++ TH1F *hRetired = (TH1F*)TDirectory::CurrentDirectory()->Get("hRetired"); + hRetired->SetFillColor(kRed); + hRetired->SetFillStyle(3010); + diff --git a/root-globus-deps.patch b/root-globus-deps.patch new file mode 100644 index 0000000..fb99c36 --- /dev/null +++ b/root-globus-deps.patch @@ -0,0 +1,30 @@ +diff -ur root-5.32.00.orig/config/Makefile.depend root-5.32.00/config/Makefile.depend +--- root-5.32.00.orig/config/Makefile.depend 2011-12-02 12:42:19.000000000 +0100 ++++ root-5.32.00/config/Makefile.depend 2012-02-10 19:42:24.408218116 +0100 +@@ -100,7 +100,7 @@ + CINTEXLIBDEPM = $(REFLEXLIB) + REFLEXDICTLIBDEPM = $(REFLEXLIB) + RAUTHLIBDEPM = $(NETLIB) $(IOLIB) +-GLBSAUTHLIBDEPM = $(RAUTHLIB) ++GLBSAUTHLIBDEPM = $(RAUTHLIB) $(NETLIB) + KRB5AUTHLIBDEPM = $(RAUTHLIB) $(NETLIB) + SRVAUTHLIBDEPM = $(NETLIB) + QTGSILIBDEPM = $(GUILIB) $(GPADLIB) +@@ -366,7 +366,7 @@ + CINTEXLIBEXTRA = lib/libReflex.lib + REFLEXDICTLIBEXTRA = lib/libReflex.lib + RAUTHLIBEXTRA = lib/libNet.lib lib/libRIO.lib +-GLBSAUTHLIBEXTRA = lib/libRootAuth.lib ++GLBSAUTHLIBEXTRA = lib/libRootAuth.lib lib/libNet.lib + KRB5AUTHLIBEXTRA = lib/libRootAuth.lib lib/libNet.lib + SRVAUTHLIBEXTRA = lib/libNet.lib + QTGSILIBEXTRA = lib/libGui.lib lib/libGpad.lib +@@ -498,7 +498,7 @@ + CINTEXLIBEXTRA = -Llib -lReflex + REFLEXDICTLIBEXTRA = -Llib -lReflex + RAUTHLIBEXTRA = -Llib -lNet -lRIO +-GLBSAUTHLIBEXTRA = -Llib -lRootAuth ++GLBSAUTHLIBEXTRA = -Llib -lRootAuth -lNet + KRB5AUTHLIBEXTRA = -Llib -lRootAuth -lNet + SRVAUTHLIBEXTRA = -Llib -lNet + QTGSILIBEXTRA = -Llib -lGui -lGpad diff --git a/root-html.C b/root-html.C index 413a8d3..8d9633c 100644 --- a/root-html.C +++ b/root-html.C @@ -6,10 +6,10 @@ gSystem->AddIncludePath("-I@PWD@/cint/cint/include"); gSystem->AddIncludePath("-I@PWD@/cint/cint/stl"); gSystem->AddIncludePath("-I@PWD@/cint/cint/lib"); - gInterpreter->AddIncludePath("@PWD@/include"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/include"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/stl"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/lib"); + TInterpreter::Instance()->AddIncludePath("@PWD@/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/stl"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/lib"); #include #include #include diff --git a/root-includelist b/root-includelist index 0eccf90..cd7842c 100644 --- a/root-includelist +++ b/root-includelist @@ -3,11 +3,9 @@ includelist: @list=includelist-`tr / - <<< $(MODULE)` ; \ rm -f $$list ; \ for h in $(filter-out %.cw %.pri, $(ALLHDRS)) ; do \ - if [ "$(MODULE)" = "cint/cint7" ] ; then \ - sed 's!^include!%{_includedir}/%{name}/cint7!' <<< $$h >> $$list ; \ - else \ - sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ - fi ; \ + sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ + done ; \ + if [ -r $$list ] ; then \ sort -u $$list > $$list.unique ; \ mv $$list.unique $$list ; \ - done + fi diff --git a/root-rfio.patch b/root-rfio.patch new file mode 100644 index 0000000..1af3f2f --- /dev/null +++ b/root-rfio.patch @@ -0,0 +1,74 @@ +diff -ur root-5.32.00.orig/configure root-5.32.00/configure +--- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 ++++ root-5.32.00/configure 2012-02-10 17:36:40.090907758 +0100 +@@ -3183,7 +3183,7 @@ + fi + fi + +- check_library "librfio libdpm libshift shiftmd shift" "$enable_shared" \ ++ check_library "librfio libdpm libcastorrfio libshift shiftmd shift" "$enable_shared" \ + "$shiftlibdir" \ + $RFIO ${RFIO:+$RFIO/lib} /cern/pro/lib /cern/new/lib /cern/old/lib \ + /opt/shift/lib /usr/local/shift/lib /usr/lib/shift \ +@@ -3194,6 +3194,10 @@ + if test "x$shiftincdir" = "x" || test "x$shiftlib" = "x"; then + enable_rfio="no" + else ++ case $shiftlib in ++ *dpm) shiftlib="$shiftlib -llcgdm" ;; ++ *castorrfio) shiftlib="$shiftlib -lcastorcommon" ;; ++ esac + case $platform in + linux | macosx) + for i in "" -ladns ; do +@@ -3203,14 +3207,7 @@ + break ; + fi + done +- # Explicit linking: which libraries are needed to satisfy symbols +- # from libshift? +- # 2.1.9 has new library layout +- shiftlibdep="-lcastorrfio -lcastorclient -lcastorcommon" +- check_link "$shiftlib $shiftlibdep" "$shiftlibdir" rfio_fchmod +- if test $link_result -eq 1 ; then +- shiftlib="$shiftlib $shiftlibdep" +- else ++ if test $link_result -ne 1 ; then + enable_rfio="no" + fi + ;; +@@ -3280,7 +3277,7 @@ + fi + fi + +- check_library "libshift shiftmd shift" "$enable_shared" "$castorlibdir" \ ++ check_library "libcastorrfio libshift shiftmd shift" "$enable_shared" "$castorlibdir" \ + $CASTOR ${CASTOR:+$CASTOR/lib} /cern/pro/lib /cern/new/lib \ + /cern/old/lib /opt/shift/lib /usr/local/shift/lib /usr/lib/shift \ + /usr/local/lib/shift /usr/lib /usr/local/lib +@@ -3290,6 +3287,9 @@ + if test "x$castorincdir" = "x" || test "x$castorlib" = "x"; then + enable_castor="no" + else ++ case $castorlib in ++ *castorrfio) castorlib="$castorlib -lcastorclient -lcastorns -lcastorcommon" ;; ++ esac + case $platform in + linux | macosx) + for i in "" -ladns ; do +@@ -3299,14 +3299,7 @@ + break ; + fi + done +- # Explicit linking: which libraries are needed to satisfy symbols +- # from libshift? +- # 2.1.9 has new library layout +- castorlibdep="-lcastorrfio -lcastorclient -lcastorns -lcastorcommon" +- check_link "$castorlib $castorlibdep" "$castorlibdir" rfio_fchmod +- if test $link_result -eq 1 ; then +- castorlib="$castorlib $castorlibdep" +- else ++ if test $link_result -ne 1 ; then + enable_castor="no" + fi + ;; diff --git a/root-ruby.patch b/root-ruby.patch new file mode 100644 index 0000000..d616e5b --- /dev/null +++ b/root-ruby.patch @@ -0,0 +1,211 @@ +diff -ur root-5.32.00.orig/bindings/ruby/src/drr.cxx root-5.32.00/bindings/ruby/src/drr.cxx +--- root-5.32.00.orig/bindings/ruby/src/drr.cxx 2011-12-02 12:41:55.000000000 +0100 ++++ root-5.32.00/bindings/ruby/src/drr.cxx 2012-02-12 16:20:46.248535290 +0100 +@@ -24,6 +24,17 @@ + + #include "ruby.h" + ++// Define macros for old ruby versions ++#ifndef RSTRING_PTR ++#define RSTRING_PTR(s) (RSTRING(s)->ptr) ++#endif ++#ifndef RFLOAT_VALUE ++#define RFLOAT_VALUE(v) (RFLOAT(v)->value) ++#endif ++#ifndef RARRAY_LEN ++#define RARRAY_LEN(s) (RARRAY(s)->len) ++#endif ++ + #include "rrcommon.h" + + /* ROOT's global enums. */ +@@ -34,7 +45,7 @@ + #include "dlfcn.h" + #endif + +-#if ((R__RUBY_MAJOR<1) || (R__RUBY_MAJOR==1)&&(R__RUBY_MINOR<=9)) ++#if ((R__RUBY_MAJOR<1) || (R__RUBY_MAJOR==1)&&(R__RUBY_MINOR<=8)) + # define rb_frame_this_func rb_frame_last_func + #endif + +@@ -158,9 +169,9 @@ + switch (TYPE(o)) + { + case T_STRING: +- return (void *) RSTRING(o)->ptr; ++ return (void *) RSTRING_PTR(o); + case T_FLOAT: +- return (void *) &RFLOAT(o)->value; ++ return (void *) &RFLOAT_VALUE(o); + case T_FIXNUM: + /* FIXME: Memory leak until I find the correct way. Until + * then please use integers in TTrees with care. --elathan +@@ -172,8 +183,9 @@ + RRGRAB(o, void *, res); + return res; + default: +- rb_fatal ("Failed convertion of %d to void *.\n", +- STR2CSTR(CLASS_OF(o))); ++ VALUE tmp = CLASS_OF(o); ++ rb_fatal ("Failed convertion of %d to void *.\n", ++ StringValuePtr(tmp)); + break; + } + +@@ -392,7 +404,7 @@ + } + + VALUE keys = rb_funcall(parms, rb_intern("keys"), 0); +- for (int i = 0; i < RARRAY(keys)->len; i++) ++ for (int i = 0; i < RARRAY_LEN(keys); i++) + { + VALUE key = rb_ary_entry (keys, i); + rb_funcall (self, rb_to_id (ameth), 2, key, rb_hash_aref (parms, key)); +@@ -424,7 +436,7 @@ + * 3. When we want both 1 and 2 + */ + +- int nargs = RARRAY(inargs)->len - offset; ++ int nargs = RARRAY_LEN(inargs) - offset; + double *arr = NULL; + TObject *ptr = NULL; + VALUE v = 0; +@@ -446,7 +458,7 @@ + if (cproto) strcat(cproto, "double"); + break; + case T_STRING: +- if (f) f->SetArg((long) STR2CSTR(arg)); ++ if (f) f->SetArg((long) StringValuePtr(arg)); + if (cproto) strcat(cproto, "char*"); + break; + case T_ARRAY: +@@ -455,8 +467,8 @@ + */ + if (f) + { +- arr = ALLOC_N (double, RARRAY(arg)->len); +- for (int j = 0; j < RARRAY(arg)->len; j++) ++ arr = ALLOC_N (double, RARRAY_LEN(arg)); ++ for (int j = 0; j < RARRAY_LEN(arg); j++) + arr[j] = NUM2DBL(rb_ary_entry (arg, j)); + f->SetArg((long) arr); + } +@@ -469,7 +481,8 @@ + Data_Get_Struct (v, TObject, ptr); + if (f) f->SetArg((long) ptr); + if (cproto) { +- strcat(cproto, STR2CSTR(rb_iv_get (arg, "__rr_class__"))); ++ VALUE tmp = rb_iv_get (arg, "__rr_class__"); ++ strcat(cproto, StringValuePtr(tmp)); + if( ((reference_map>>ntobjects)&0x1) ) { + strcat(cproto, "*"); + } else { +@@ -637,11 +650,11 @@ + VALUE v; + + /* Check if there is a ROOT dict. available. */ +- TClass *c = TClass::GetClass(STR2CSTR(klass)); ++ TClass *c = TClass::GetClass(StringValuePtr(klass)); + if (c) + { + VALUE k; +- char *name = STR2CSTR(klass); ++ char *name = StringValuePtr(klass); + if (!rb_const_defined (rb_cObject, rb_intern(name))) + k = rb_define_class (name, drrAbstractClass); + else +@@ -652,7 +665,7 @@ + rb_iv_set (v, "__rr_class__", klass); + } + else +- rb_raise( rb_eArgError, "No TClass found for %s. Is this a Root type?", STR2CSTR(klass) ); ++ rb_raise( rb_eArgError, "No TClass found for %s. Is this a Root type?", StringValuePtr(klass) ); + + return v; + } +@@ -671,7 +684,7 @@ + + /* Call the requested ctor. */ + +- if (RARRAY(inargs)->len) { ++ if (RARRAY_LEN(inargs)) { + drr_find_method_prototype (&klass, classname, inargs, cproto, 0); + drr_set_method_args ( inargs, &func, 0); + } +@@ -767,7 +780,7 @@ + char * classname = (char *) rb_class2name(self); + + rb_scan_args (argc, argv, "0*", &inargs); +- nargs = RARRAY(inargs)->len - 1; ++ nargs = RARRAY_LEN(inargs) - 1; + + G__CallFunc *func = new G__CallFunc(); + G__ClassInfo *klass = new G__ClassInfo (classname); +@@ -816,12 +829,13 @@ + + /* Grab method, class and the instance pointer. */ + methname = (char*) rb_id2name (rb_to_id(argv[0])); +- classname = STR2CSTR(rb_iv_get (self, "__rr_class__")); ++ VALUE tmp = rb_iv_get (self, "__rr_class__"); ++ classname = StringValuePtr(tmp); + TObject *caller = drr_grab_object (self); + + rb_scan_args (argc, argv, "0*", &inargs); + +- nargs = RARRAY(inargs)->len - 1; ++ nargs = RARRAY_LEN(inargs) - 1; + VALUE rklass = rb_class_of (self); + + G__CallFunc *func = new G__CallFunc(); +@@ -890,7 +904,7 @@ + + rb_scan_args (argc, argv, "0*", &inargs); + +- nargs = RARRAY(inargs)->len; ++ nargs = RARRAY_LEN(inargs); + + G__CallFunc *func = NULL; + +diff -ur root-5.32.00.orig/configure root-5.32.00/configure +--- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 ++++ root-5.32.00/configure 2012-02-12 12:11:14.836641595 +0100 +@@ -4171,19 +4171,25 @@ + # Check for Ruby include and library + myruby=`$cwhich ruby 2> /dev/null` + if test ! "x$myruby" = "x" && test -x "$myruby" ; then +- rubysysincdir=`ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]'` +- rubysyslibdir=`ruby -rrbconfig -e 'puts Config::CONFIG["libdir"]'` ++ rubysysincdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["includedir"]'` ++ rubysysarchdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["archdir"]'` ++ rubysyslibdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["libdir"]'` ++ rubysysarch=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["arch"]'` + fi +- rubysysincdir2= ++ rubysysarchdir2= + if test "x$platform" = "xmacosx" ; then +- rubysysincdir2=`echo $rubysysincdir | sed -e 's/powerpc/universal/'` ++ rubysysarchdir2=`echo $rubysysarchdir | sed -e 's/powerpc/universal/'` + fi + check_header "ruby.h" "$rubyincdir" \ + $RUBYDIR ${RUBYDIR:+$RUBYDIR/include} \ +- $rubysysincdir $rubysysincdir2 \ ++ $rubysysincdir $rubysysarchdir $rubysysarchdir2 \ + /usr/local/include/ruby /usr/include/ruby + rubyinc=$found_hdr + rubyincdir=$found_dir ++ check_header "ruby/config.h" "" $rubysysincdir/$rubysysarch ++ if test "x$found_hdr" != "x" ; then ++ rubyincdir="$rubyincdir $found_dir" ++ fi + + if test "x$arch" = "xwin32" || \ + test "x$enable_shared" = "xno" ; then +@@ -6754,7 +6760,7 @@ + + if test ! "x$enable_ruby" = "xno"; then + echo "" >> RConfigOptions-out.tmp +- ruby -rrbconfig -e 'puts Config::CONFIG["ruby_version"]' | \ ++ ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]' | \ + sed 's/^\([0-9]\)\.\([0-9]\).*$/#define R__RUBY_MAJOR \1@#define R__RUBY_MINOR \2/' | \ + tr '@' '\n' >> RConfigOptions-out.tmp + fi diff --git a/root-xrootd.patch b/root-xrootd.patch index 51d4ab4..6352682 100644 --- a/root-xrootd.patch +++ b/root-xrootd.patch @@ -1,69 +1,36 @@ -diff -ur root-5.30.04.orig/configure root-5.30.04/configure ---- root-5.30.04.orig/configure 2011-11-08 14:28:55.000000000 +0100 -+++ root-5.30.04/configure 2011-11-16 05:48:21.224144395 +0100 -@@ -4424,13 +4424,14 @@ - if test "x$externalxrd" = "xyes"; then - buildxrd="no" - # Check if bonjour is available for code potentially using it ... -- if test "x$enable_bonjour" = "xyes"; then -- check_symbol XrdOucBonjour "libXrdOuc.a" "$xrdlibdir" -- if test $found_symbol -eq 0 ; then -- bjrcomm="External xrootd has no bonjour support: disabling bonjour in XrdProofd" -- bonjourcppflags= -- fi -- fi -+ ## This test is broken and will always fail. -+ ##if test "x$enable_bonjour" = "xyes"; then -+ ## check_symbol XrdOucBonjour "libXrdOuc.a" "$xrdlibdir" -+ ## if test $found_symbol -eq 0 ; then -+ ## bjrcomm="External xrootd has no bonjour support: disabling bonjour in XrdProofd" -+ ## bonjourcppflags= -+ ## fi -+ ##fi - fi - else - buildxrd="no" -diff -ur root-5.30.04.orig/proof/proofd/Module.mk root-5.30.04/proof/proofd/Module.mk ---- root-5.30.04.orig/proof/proofd/Module.mk 2011-11-08 14:28:15.000000000 +0100 -+++ root-5.30.04/proof/proofd/Module.mk 2011-11-16 07:29:54.315314349 +0100 -@@ -129,12 +129,10 @@ - XPDINCEXTRA += $(PROOFDDIRI:%=-I%) - ifeq ($(HASXRDUTILS),no) +--- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 ++++ root-5.32.00/configure 2012-02-11 20:15:07.910877372 +0100 +@@ -4463,18 +4463,22 @@ + fi + fi + done ++ xrdlibdir=$tmpxrdlibdir --XPDLIBEXTRA += -L$(XROOTDDIRL) -lXrdOuc -lXrdNet -lXrdSys \ -- -lXrdClient -lXrdSut $(DNSSDLIB) --XPROOFDEXELIBS := $(XROOTDDIRL)/libXrd.a $(XROOTDDIRL)/libXrdClient.a \ -- $(XROOTDDIRL)/libXrdNet.a \ -- $(XROOTDDIRL)/libXrdOuc.a \ -- $(XROOTDDIRL)/libXrdSys.a $(XROOTDDIRL)/libXrdSut.a -+XPDLIBEXTRA += -L$(XROOTDDIRL) -lXrd -lXrdClient -lXrdSut \ -+ -lXrdNet -lXrdOuc -lXrdSys $(DNSSDLIB) -+XPROOFDEXELIBS := -L$(XROOTDDIRL) -lXrd -lXrdClient -lXrdSut \ -+ -lXrdNet -lXrdOuc -lXrdSys - # Starting from Jul 2010 XrdNet has been split in two libs: XrdNet and XrdNetUtil; - # both are needed - XRDNETUTIL := -@@ -144,8 +142,8 @@ - fi) - endif - ifeq ($(XRDNETUTIL),yes) --XPDLIBEXTRA += -L$(XROOTDDIRL) -lXrdNetUtil --XPROOFDEXELIBS += $(XROOTDDIRL)/libXrdNetUtil.a -+XPDLIBEXTRA += -lXrdNetUtil -+XPROOFDEXELIBS += -lXrdNetUtil - endif +- # +- # Check if bonjour is available for code potentially using it ... +- if test "x$enable_xrootd" = "xyes"; then +- xrdlibdir="$tmpxrdlibdir" +- if test "x$enable_bonjour" = "xyes"; then +- check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" +- if test $found_symbol -eq 0 ; then +- bonjourcppflags= +- fi +- fi +- fi ++ # This check is broken. The xrootd libraries are C++ hence their ++ # symbol names are mangled. The check_symbol macro is designed ++ # to check for unmangled symbol names in C libraries. ++ # # ++ # # Check if bonjour is available for code potentially using it ... ++ # if test "x$enable_xrootd" = "xyes"; then ++ # xrdlibdir="$tmpxrdlibdir" ++ # if test "x$enable_bonjour" = "xyes"; then ++ # check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" ++ # if test $found_symbol -eq 0 ; then ++ # bonjourcppflags= ++ # fi ++ # fi ++ # fi + fi - else -@@ -191,10 +189,10 @@ - $(LD) $(LDFLAGS) -o $@ $(PROOFDEXEO) $(RPDUTILO) $(GLBPATCHO) \ - $(RSAO) $(SNPRINTFO) $(CRYPTLIBS) $(AUTHLIBS) $(STRLCPYO) $(SYSLIBS) - --$(XPROOFDEXE): $(XPDO) $(XPROOFDEXELIBS) $(XRDPROOFXD) $(RPDCONNO) -+$(XPROOFDEXE): $(XPDO) $(XRDPROOFXD) $(RPDCONNO) - $(LD) $(LDFLAGS) -o $@ $(XPDO) $(RPDCONNO) $(XPROOFDEXELIBS) $(SYSLIBS) $(XPROOFDEXESYSLIBS) - --$(XPDLIB): $(XPDO) $(XPDH) $(ORDER_) $(XPROOFDEXELIBS) $(MAINLIBS) $(XRDPROOFXD) $(RPDCONNO) -+$(XPDLIB): $(XPDO) $(XPDH) $(ORDER_) $(MAINLIBS) $(XRDPROOFXD) $(RPDCONNO) - @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ - "$(SOFLAGS)" libXrdProofd.$(SOEXT) $@ "$(XPDO) $(RPDCONNO)" \ - "$(XPDLIBEXTRA)" + check_explicit "$enable_xrootd" "$enable_xrootd_explicit" \ diff --git a/root.spec b/root.spec index 2faa310..6424f24 100644 --- a/root.spec +++ b/root.spec @@ -7,7 +7,7 @@ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif -%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]' 2>/dev/null)} +%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)} %if %($(pkg-config emacs) ; echo $?) %global emacs_version 21.4 @@ -18,9 +18,9 @@ %endif Name: root -Version: 5.30.04 +Version: 5.32.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -47,10 +47,23 @@ Patch0: %{name}-ftgl.patch Patch1: %{name}-fontconfig.patch # Use system unuran: Patch2: %{name}-unuran.patch -# Workaround for broken Form() on ppc -Patch3: %{name}-cern-ppc.patch -# Fixes for external xrootd -Patch4: %{name}-xrootd.patch +# Fixes for xrootd bonjour +Patch3: %{name}-xrootd.patch +# Fix rfio configure +# https://savannah.cern.ch/bugs/index.php?91460 +Patch4: %{name}-rfio.patch +# Missing globus auth module deps +# https://savannah.cern.ch/bugs/index.php?91462 +Patch5: %{name}-globus-deps.patch +# Removed globals +# https://savannah.cern.ch/bugs/index.php?91463 +Patch6: %{name}-globals.patch +# Ruby 1.9 configuration +# https://savannah.cern.ch/bugs/index.php?91461 +Patch7: %{name}-ruby.patch +# Dictionary generation fails on i686 +# https://savannah.cern.ch/bugs/index.php?91459 +Patch8: %{name}-fit.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 @@ -107,6 +120,7 @@ BuildRequires: openssl-devel BuildRequires: globus-gss-assist-devel BuildRequires: globus-gsi-credential-devel BuildRequires: globus-proxy-utils +BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel @@ -119,6 +133,7 @@ BuildRequires: graphviz-devel %if "%{?rhel}" == "5" BuildRequires: graphviz-gd %endif +BuildRequires: expat-devel %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(liberationsans) BuildRequires: font(liberationserif) @@ -299,7 +314,11 @@ provide a Python interface to ROOT, and a ROOT interface to Python. Summary: Ruby extension for ROOT Group: Applications/Engineering Provides: ruby(libRuby) = %{version} -requires: ruby(abi) = 1.8 +%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +Requires: ruby(abi) = 1.9.1 +%else +Requires: ruby(abi) = 1.8 +%endif %description ruby This package contains the Ruby extension for ROOT. The interface @@ -1018,13 +1037,17 @@ package to use root with GNU Emacs. %prep %setup -q -%if %(pkg-config --max-version 2.1.2 ftgl 2>/dev/null && echo 1 || echo 0) +if pkg-config --max-version 2.1.2 ftgl ; then %patch0 -p1 -%endif +fi %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -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 \ @@ -1297,31 +1320,24 @@ mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils/pq2/pq2* \ # Remove some junk rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.plist rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.xinetd -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/cmsd.rc.d -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/olbd.rc.d -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/xrootd.rc.d rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/README rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/hostcert.conf rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/*.sample rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/root.desktop rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/system.plugins-ios rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/svninfo.txt %if %{?fedora}%{!?fedora:0} < 13 && %{?rhel}%{!?rhel:0} < 6 rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libAfterImage.a %endif -rm ${RPM_BUILD_ROOT}%{_bindir}/drop_from_path +rm ${RPM_BUILD_ROOT}%{_bindir}/setxrd* rm ${RPM_BUILD_ROOT}%{_bindir}/thisroot* rm ${RPM_BUILD_ROOT}%{_mandir}/man1/cint.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/cmsd.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/g2rootold.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/makecint.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/olbd.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/proofserva.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/roota.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/setup-pq2.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/xprep.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/xrd*.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/xrootd.1 %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.cw rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.pri @@ -1391,7 +1407,8 @@ mv htmldoc ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/html # Create includelist files ... for module in `find * -name Module.mk` ; do module=`dirname $module` - make -f %{SOURCE1} includelist MODULE=$module ROOT_SRCDIR=$PWD + make -f %{SOURCE1} includelist MODULE=$module ROOT_SRCDIR=$PWD \ + HASXRD=yes CRYPTOLIB=yes SSLLIB=yes done # ... and merge some of them @@ -1707,6 +1724,7 @@ fi %dir %{_datadir}/%{name} %{_datadir}/%{name}/class.rules %{_datadir}/%{name}/gdb-backtrace.sh +%{_datadir}/%{name}/Makefile.arch %{_datadir}/%{name}/root.mimes %{_datadir}/%{name}/system.rootauthrc %{_datadir}/%{name}/system.rootdaemonrc @@ -2137,6 +2155,8 @@ fi %{_datadir}/%{name}/plugins/TApplication/P020_TApplicationServer.C %{_datadir}/%{name}/plugins/TFile/P010_TWebFile.C %{_datadir}/%{name}/plugins/TFile/P120_TNetFile.C +%{_datadir}/%{name}/plugins/TFile/P130_TAS3File.C +%{_datadir}/%{name}/plugins/TFile/P140_TGSFile.C %{_datadir}/%{name}/plugins/TFileStager/P020_TNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P050_TWebSystem.C %{_datadir}/%{name}/plugins/TSystem/P070_TNetSystem.C @@ -2286,6 +2306,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Feb 10 2012 Mattias Ellert - 5.32.00-1 +- Update to 5.32.00 + * Fri Feb 10 2012 Petr Pisar - 5.30.04-3 - Rebuild against PCRE 8.30 diff --git a/sources b/sources index 27231d4..b8a3ff3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9fe36a18b07119bdd02527fc5a2d2651 root-5.30.04.tar.gz +fb81fab8b41c657a12d2dd32ee008521 root-5.32.00.tar.gz From 530201be85b58d04cd2ff023ea63eb88e2fa44b5 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 13 Feb 2012 14:46:44 +0100 Subject: [PATCH 006/344] Update to 5.30.06 --- root-cern-ppc.patch | 11 ----------- root-includelist | 10 ++++------ root.spec | 17 +++++++++-------- sources | 2 +- 4 files changed, 14 insertions(+), 26 deletions(-) delete mode 100644 root-cern-ppc.patch diff --git a/root-cern-ppc.patch b/root-cern-ppc.patch deleted file mode 100644 index dfba748..0000000 --- a/root-cern-ppc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- root-5.26.00d.orig/tutorials/tree/cernbuild.C 2010-08-29 10:20:56.069801363 +0200 -+++ root-5.26.00d/tutorials/tree/cernbuild.C 2010-08-29 15:52:51.000000000 +0200 -@@ -22,7 +22,7 @@ - TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); - dir.ReplaceAll("cernbuild.C",""); - dir.ReplaceAll("/./","/"); -- FILE *fp = fopen(Form("%scernstaff.dat",dir.Data()),"r"); -+ FILE *fp = fopen((dir+"cernstaff.dat").Data(),"r"); - - TFile *hfile = 0; - if (get) { diff --git a/root-includelist b/root-includelist index 0eccf90..cd7842c 100644 --- a/root-includelist +++ b/root-includelist @@ -3,11 +3,9 @@ includelist: @list=includelist-`tr / - <<< $(MODULE)` ; \ rm -f $$list ; \ for h in $(filter-out %.cw %.pri, $(ALLHDRS)) ; do \ - if [ "$(MODULE)" = "cint/cint7" ] ; then \ - sed 's!^include!%{_includedir}/%{name}/cint7!' <<< $$h >> $$list ; \ - else \ - sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ - fi ; \ + sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ + done ; \ + if [ -r $$list ] ; then \ sort -u $$list > $$list.unique ; \ mv $$list.unique $$list ; \ - done + fi diff --git a/root.spec b/root.spec index fc31e45..07e8df1 100644 --- a/root.spec +++ b/root.spec @@ -18,7 +18,7 @@ %endif Name: root -Version: 5.30.04 +Version: 5.30.06 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -48,9 +48,7 @@ Patch1: %{name}-fontconfig.patch # Use system unuran: Patch2: %{name}-unuran.patch # Workaround for broken Form() on ppc -Patch3: %{name}-cern-ppc.patch -# Fixes for external xrootd -Patch4: %{name}-xrootd.patch +Patch3: %{name}-xrootd.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 @@ -107,6 +105,7 @@ BuildRequires: openssl-devel BuildRequires: globus-gss-assist-devel BuildRequires: globus-gsi-credential-devel BuildRequires: globus-proxy-utils +BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel @@ -299,7 +298,7 @@ provide a Python interface to ROOT, and a ROOT interface to Python. Summary: Ruby extension for ROOT Group: Applications/Engineering Provides: ruby(libRuby) = %{version} -requires: ruby(abi) = 1.8 +Requires: ruby(abi) = 1.8 %description ruby This package contains the Ruby extension for ROOT. The interface @@ -1018,13 +1017,12 @@ package to use root with GNU Emacs. %prep %setup -q -%if %(pkg-config --max-version 2.1.2 ftgl 2>/dev/null && echo 1 || echo 0) +if pkg-config --max-version 2.1.2 ftgl ; then %patch0 -p1 -%endif +fi %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -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 \ @@ -2286,6 +2284,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Feb 13 2012 Mattias Ellert - 5.30.06-1 +- Update to 5.30.06 + * Wed Nov 16 2011 Mattias Ellert - 5.30.04-1 - Update to 5.30.04 diff --git a/sources b/sources index 27231d4..b43c23e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9fe36a18b07119bdd02527fc5a2d2651 root-5.30.04.tar.gz +0a0e24e890f33b3606f8983fe8765a09 root-5.30.06.tar.gz From 0b60ec7d477096efe647706b83c6a04470d2eb4e Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 13 Feb 2012 16:18:18 +0100 Subject: [PATCH 007/344] Update to 5.28.00h --- root-includelist | 10 ++++------ root.spec | 10 +++++++--- sources | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/root-includelist b/root-includelist index 0eccf90..cd7842c 100644 --- a/root-includelist +++ b/root-includelist @@ -3,11 +3,9 @@ includelist: @list=includelist-`tr / - <<< $(MODULE)` ; \ rm -f $$list ; \ for h in $(filter-out %.cw %.pri, $(ALLHDRS)) ; do \ - if [ "$(MODULE)" = "cint/cint7" ] ; then \ - sed 's!^include!%{_includedir}/%{name}/cint7!' <<< $$h >> $$list ; \ - else \ - sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ - fi ; \ + sed 's!^include!%{_includedir}/%{name}!' <<< $$h >> $$list ; \ + done ; \ + if [ -r $$list ] ; then \ sort -u $$list > $$list.unique ; \ mv $$list.unique $$list ; \ - done + fi diff --git a/root.spec b/root.spec index 383e195..572b0f0 100644 --- a/root.spec +++ b/root.spec @@ -18,7 +18,7 @@ %endif Name: root -Version: 5.28.00g +Version: 5.28.00h %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -108,6 +108,7 @@ BuildRequires: openssl-devel BuildRequires: globus-gss-assist-devel BuildRequires: globus-gsi-credential-devel BuildRequires: globus-proxy-utils +BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel @@ -1012,9 +1013,9 @@ package to use root with GNU Emacs. %prep %setup -q -%if %(pkg-config --max-version 2.1.2 ftgl 2>/dev/null && echo 1 || echo 0) +if pkg-config --max-version 2.1.2 ftgl ; then %patch0 -p1 -%endif +fi %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -2270,6 +2271,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Feb 13 2012 Mattias Ellert - 5.28.00h-1 +- Update to 5.28.00h + * Wed Sep 14 2011 Mattias Ellert - 5.28.00g-1 - Update to 5.28.00g diff --git a/sources b/sources index e136fb6..4b3101a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3db0a2db880f8744e4a01234d3020909 root-5.28.00g.tar.gz +db8bd261e56ae5dfbce75c1a5ce5e809 root-5.28.00h.tar.gz From 39bbb48145b8a0bd097d87973bd2d10d62e73a44 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 14 Feb 2012 00:44:37 +0100 Subject: [PATCH 008/344] PPC workaround --- root-cern-ppc.patch | 19 +++++++++++++++++-- root.spec | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/root-cern-ppc.patch b/root-cern-ppc.patch index dfba748..dc7a08c 100644 --- a/root-cern-ppc.patch +++ b/root-cern-ppc.patch @@ -1,5 +1,20 @@ ---- root-5.26.00d.orig/tutorials/tree/cernbuild.C 2010-08-29 10:20:56.069801363 +0200 -+++ root-5.26.00d/tutorials/tree/cernbuild.C 2010-08-29 15:52:51.000000000 +0200 +diff -ur root-5.28.00h.orig/core/base/doc/macros/fonts.C root-5.28.00h/core/base/doc/macros/fonts.C +--- root-5.28.00h.orig/core/base/doc/macros/fonts.C 2011-11-24 17:12:40.000000000 +0100 ++++ root-5.28.00h/core/base/doc/macros/fonts.C 2012-02-14 00:37:48.275434352 +0100 +@@ -16,7 +16,9 @@ + + void drawtext(double x, double y, int f, char *s) + { +- TLatex *t = new TLatex(x,y,Form("#font[41]{%d :} %s",f,s)); ++ std::stringstream ss; ++ ss << "#font[41]{" << f << " :} " << s; ++ TLatex *t = new TLatex(x,y,ss.str().c_str()); + t->SetTextFont(f); + t->SetTextAlign(12); + t->SetTextSize(0.048); +diff -ur root-5.28.00h.orig/tutorials/tree/cernbuild.C root-5.28.00h/tutorials/tree/cernbuild.C +--- root-5.28.00h.orig/tutorials/tree/cernbuild.C 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/tutorials/tree/cernbuild.C 2012-02-14 00:38:20.027019394 +0100 @@ -22,7 +22,7 @@ TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); dir.ReplaceAll("cernbuild.C",""); diff --git a/root.spec b/root.spec index 572b0f0..af5c0b1 100644 --- a/root.spec +++ b/root.spec @@ -2178,6 +2178,8 @@ fi %{_datadir}/%{name}/plugins/TProof/P010_TProofCondor.C %{_datadir}/%{name}/plugins/TProof/P020_TProofSuperMaster.C %{_datadir}/%{name}/plugins/TProof/P040_TProof.C +%{_datadir}/%{name}/plugins/TProofMonSender/P010_TProofMonSenderML.C +%{_datadir}/%{name}/plugins/TProofMonSender/P020_TProofMonSenderSQL.C %{_datadir}/%{name}/plugins/TVirtualProofPlayer/P010_TProofPlayer.C %{_datadir}/%{name}/plugins/TVirtualProofPlayer/P020_TProofPlayerRemote.C %{_datadir}/%{name}/plugins/TVirtualProofPlayer/P030_TProofPlayerLocal.C From 4e19fead5cb294f15888b4ae425d1994951c13ab Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 15 Feb 2012 00:21:19 +0100 Subject: [PATCH 009/344] Adapt to new ruby packaging guidelines --- root-globals.patch | 270 --------------------------------------------- root-html.C | 9 +- root-meta.patch | 20 ++++ root.spec | 33 +++--- 4 files changed, 44 insertions(+), 288 deletions(-) delete mode 100644 root-globals.patch create mode 100644 root-meta.patch diff --git a/root-globals.patch b/root-globals.patch deleted file mode 100644 index 325fa64..0000000 --- a/root-globals.patch +++ /dev/null @@ -1,270 +0,0 @@ -diff -ur root-5.32.00.orig/hist/hist/src/TGraph2DErrors.cxx root-5.32.00/hist/hist/src/TGraph2DErrors.cxx ---- root-5.32.00.orig/hist/hist/src/TGraph2DErrors.cxx 2011-12-02 12:42:07.000000000 +0100 -+++ root-5.32.00/hist/hist/src/TGraph2DErrors.cxx 2012-02-11 15:11:23.205768374 +0100 -@@ -71,7 +71,7 @@ - dte->SetLineColor(kBlue-3); - dte->SetLineWidth(2); - dte->Draw("err p0"); -- gPad->SetLogy(1); -+ TVirtualPad::Pad()->SetLogy(1); - return c; - } - End_Macro -diff -ur root-5.32.00.orig/hist/hist/src/TMultiGraph.cxx root-5.32.00/hist/hist/src/TMultiGraph.cxx ---- root-5.32.00.orig/hist/hist/src/TMultiGraph.cxx 2011-12-02 12:42:07.000000000 +0100 -+++ root-5.32.00/hist/hist/src/TMultiGraph.cxx 2012-02-11 16:23:09.975601997 +0100 -@@ -157,7 +157,7 @@ - mg->GetYaxis()->SetTitle("Coefficients"); - - // Change the axis limits -- gPad->Modified(); -+ TVirtualPad::Pad()->Modified(); - mg->GetXaxis()->SetLimits(1.5,7.5); - mg->SetMinimum(0.); - mg->SetMaximum(10.); -diff -ur root-5.32.00.orig/hist/histpainter/src/TGraphPainter.cxx root-5.32.00/hist/histpainter/src/TGraphPainter.cxx ---- root-5.32.00.orig/hist/histpainter/src/TGraphPainter.cxx 2011-12-02 12:42:07.000000000 +0100 -+++ root-5.32.00/hist/histpainter/src/TGraphPainter.cxx 2012-02-11 15:11:23.242767900 +0100 -@@ -334,8 +334,8 @@ - float y[] = {1,4,9}; - TGraphErrors tg(3,x,y,err_x,err_y); - c48->Divide(2,1); -- c48->cd(1); gPad->DrawFrame(0,0,4,8); tg.Draw("PC"); -- c48->cd(2); gPad->DrawFrame(0,0,4,8); tg.Draw("0PC"); -+ c48->cd(1); TVirtualPad::Pad()->DrawFrame(0,0,4,8); tg.Draw("PC"); -+ c48->cd(2); TVirtualPad::Pad()->DrawFrame(0,0,4,8); tg.Draw("0PC"); - return c48; - } - End_Macro -diff -ur root-5.32.00.orig/hist/histpainter/src/THistPainter.cxx root-5.32.00/hist/histpainter/src/THistPainter.cxx ---- root-5.32.00.orig/hist/histpainter/src/THistPainter.cxx 2011-12-02 12:42:07.000000000 +0100 -+++ root-5.32.00/hist/histpainter/src/THistPainter.cxx 2012-02-11 15:15:38.786479566 +0100 -@@ -665,14 +665,14 @@ - - // scale hint1 to the pad coordinates - Float_t rightmax = 1.1*hint1->GetMaximum(); -- Float_t scale = gPad->GetUymax()/rightmax; -+ Float_t scale = TVirtualPad::Pad()->GetUymax()/rightmax; - hint1->SetLineColor(kRed); - hint1->Scale(scale); - hint1->Draw("same"); - - // draw an axis on the right side -- TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(), -- gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L"); -+ TGaxis *axis = new TGaxis(TVirtualPad::Pad()->GetUxmax(),TVirtualPad::Pad()->GetUymin(), -+ TVirtualPad::Pad()->GetUxmax(), TVirtualPad::Pad()->GetUymax(),0,rightmax,510,"+L"); - axis->SetLineColor(kRed); - axis->SetTextColor(kRed); - axis->Draw(); -@@ -2178,7 +2178,7 @@ - - TMultiGraph *mg; - TKey *key; -- TIter nextkey(gDirectory->GetListOfKeys()); -+ TIter nextkey(TDirectory::CurrentDirectory()->GetListOfKeys()); - while (key = (TKey*)nextkey()) { - obj = key->ReadObj(); - if (obj->InheritsFrom("TMultiGraph")) { -diff -ur root-5.32.00.orig/hist/histpainter/src/TPaletteAxis.cxx root-5.32.00/hist/histpainter/src/TPaletteAxis.cxx ---- root-5.32.00.orig/hist/histpainter/src/TPaletteAxis.cxx 2011-12-02 12:42:07.000000000 +0100 -+++ root-5.32.00/hist/histpainter/src/TPaletteAxis.cxx 2012-02-11 16:28:01.762786179 +0100 -@@ -58,7 +58,7 @@ - } - gStyle->SetPalette(1); - h2->Draw("COLZ"); -- gPad->Update(); -+ TVirtualPad::Pad()->Update(); - TPaletteAxis *palette = (TPaletteAxis*)h2->GetListOfFunctions()->FindObject("palette"); - palette->SetY2NDC(0.7); - return c1; -diff -ur root-5.32.00.orig/tree/treeviewer/src/TParallelCoord.cxx root-5.32.00/tree/treeviewer/src/TParallelCoord.cxx ---- root-5.32.00.orig/tree/treeviewer/src/TParallelCoord.cxx 2011-12-02 12:42:02.000000000 +0100 -+++ root-5.32.00/tree/treeviewer/src/TParallelCoord.cxx 2012-02-11 16:30:34.884789287 +0100 -@@ -78,7 +78,7 @@ - TFile *f = TFile::Open("$ROOTSYS/tutorials/tree/cernstaff.root"); - TTree *T = (TTree*)f->Get("T"); - T->Draw("Age:Grade:Step:Cost:Division:Nation","","para"); -- TParallelCoord* para = (TParallelCoord*)gPad->GetListOfPrimitives()->FindObject("ParaCoord"); -+ TParallelCoord* para = (TParallelCoord*)TVirtualPad::Pad()->GetListOfPrimitives()->FindObject("ParaCoord"); - TParallelCoordVar* grade = (TParallelCoordVar*)para->GetVarList()->FindObject("Grade"); - grade->AddRange(new TParallelCoordRange(grade,11.5,14)); - para->AddSelection("less30"); -diff -ur root-5.32.00.orig/tutorials/graphics/earth.C root-5.32.00/tutorials/graphics/earth.C ---- root-5.32.00.orig/tutorials/graphics/earth.C 2011-12-02 12:41:50.000000000 +0100 -+++ root-5.32.00/tutorials/graphics/earth.C 2012-02-11 16:07:56.025452212 +0100 -@@ -19,7 +19,7 @@ - TH2F *hs = new TH2F("hs","Sinusoidal",180, -180, 180, 181, -90.5, 90.5); - TH2F *hp = new TH2F("hp","Parabolic", 180, -180, 180, 181, -90.5, 90.5); - -- TString dat = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); -+ TString dat = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); - dat.ReplaceAll("C","dat"); - dat.ReplaceAll("/./","/"); - -diff -ur root-5.32.00.orig/tutorials/hist/hbars.C root-5.32.00/tutorials/hist/hbars.C ---- root-5.32.00.orig/tutorials/hist/hbars.C 2011-12-02 12:41:49.000000000 +0100 -+++ root-5.32.00/tutorials/hist/hbars.C 2012-02-11 16:05:25.309365607 +0100 -@@ -1,10 +1,10 @@ - // Example of bar charts with 1-d histograms - // Author: Rene Brun - { -- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); -+ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); - dir.ReplaceAll("hbars.C","../tree/cernbuild.C"); - dir.ReplaceAll("/./","/"); -- if (!gInterpreter->IsLoaded(dir.Data())) gInterpreter->LoadMacro(dir.Data()); -+ if (!TInterpreter::Instance()->IsLoaded(dir.Data())) TInterpreter::Instance()->LoadMacro(dir.Data()); - TFile *f = (TFile*)gROOT->ProcessLineFast("cernbuild(1)"); - if (!f) return; - TTree *T = (TTree*)f->Get("T"); -@@ -14,13 +14,13 @@ - c1->Divide(1,2); - - //horizontal bar chart -- c1->cd(1); gPad->SetGrid(); gPad->SetLogx(); gPad->SetFrameFillColor(33); -+ c1->cd(1); TVirtualPad::Pad()->SetGrid(); TVirtualPad::Pad()->SetLogx(); TVirtualPad::Pad()->SetFrameFillColor(33); - T->Draw("Nation","","hbar2"); - - //vertical bar chart -- c1->cd(2); gPad->SetGrid(); gPad->SetFrameFillColor(33); -+ c1->cd(2); TVirtualPad::Pad()->SetGrid(); TVirtualPad::Pad()->SetFrameFillColor(33); - T->Draw("Division>>hDiv","","goff"); -- TH1F *hDiv = (TH1F*)gDirectory->Get("hDiv"); -+ TH1F *hDiv = (TH1F*)TDirectory::CurrentDirectory()->Get("hDiv"); - hDiv->SetStats(0); - TH1F *hDivFR = (TH1F*)hDiv->Clone("hDivFR"); - T->Draw("Division>>hDivFR","Nation==\"FR\"","goff"); -diff -ur root-5.32.00.orig/tutorials/hist/hstack.C root-5.32.00/tutorials/hist/hstack.C ---- root-5.32.00.orig/tutorials/hist/hstack.C 2011-12-02 12:41:49.000000000 +0100 -+++ root-5.32.00/tutorials/hist/hstack.C 2012-02-11 16:08:54.067671744 +0100 -@@ -33,18 +33,18 @@ - // in top right pad, draw the stack in non-stack mode - // and errors option - cst->cd(2); -- gPad->SetGrid(); -+ TVirtualPad::Pad()->SetGrid(); - hs->Draw("nostack,e1p"); - //in bottom left, draw in stack mode with "lego1" option - cst->cd(3); -- gPad->SetFrameFillColor(17); -- gPad->SetTheta(3.77); -- gPad->SetPhi(2.9); -+ TVirtualPad::Pad()->SetFrameFillColor(17); -+ TVirtualPad::Pad()->SetTheta(3.77); -+ TVirtualPad::Pad()->SetPhi(2.9); - hs->Draw("lego1"); - - cst->cd(4); - //create two 2-D histograms and draw them in stack mode -- gPad->SetFrameFillColor(17); -+ TVirtualPad::Pad()->SetFrameFillColor(17); - THStack *a = new THStack("a","Stacked 2D histograms"); - TF2 *f1 = new TF2("f1", - "xygaus + xygaus(5) + xylandau(10)",-4,4,-4,4); -diff -ur root-5.32.00.orig/tutorials/hsimple.C root-5.32.00/tutorials/hsimple.C ---- root-5.32.00.orig/tutorials/hsimple.C 2011-12-02 12:41:50.000000000 +0100 -+++ root-5.32.00/tutorials/hsimple.C 2012-02-11 15:11:23.468765021 +0100 -@@ -25,7 +25,7 @@ - // write access to this directory, otherwise the file is created in $PWD - - TString filename = "hsimple.root"; -- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); -+ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); - dir.ReplaceAll("hsimple.C",""); - dir.ReplaceAll("/./","/"); - TFile *hfile = 0; -diff -ur root-5.32.00.orig/tutorials/math/chi2test.C root-5.32.00/tutorials/math/chi2test.C ---- root-5.32.00.orig/tutorials/math/chi2test.C 2011-12-02 12:41:49.000000000 +0100 -+++ root-5.32.00/tutorials/math/chi2test.C 2012-02-11 15:11:23.535764169 +0100 -@@ -149,25 +149,25 @@ - - // Draw Histogramms and Graphs - c1->cd(1); -- gPad->SetFrameFillColor(21); -+ TVirtualPad::Pad()->SetFrameFillColor(21); - h1->SetMarkerColor(4); - h1->SetMarkerStyle(20); - - h1->Draw("E"); - - c1->cd(2); -- gPad->SetFrameFillColor(21); -+ TVirtualPad::Pad()->SetFrameFillColor(21); - h2->Draw(""); - h2->SetMarkerColor(4); - h2->SetMarkerStyle(20); - - c1->cd(3); -- gPad->SetFrameFillColor(21); -- gPad->SetGridy(); -+ TVirtualPad::Pad()->SetFrameFillColor(21); -+ TVirtualPad::Pad()->SetGridy(); - resgr->Draw("APL"); - - c1->cd(4); -- gPad->SetFrameFillColor(21); -+ TVirtualPad::Pad()->SetFrameFillColor(21); - qqplot->Draw("AP"); - - c1->cd(0); -diff -ur root-5.32.00.orig/tutorials/tree/cernbuild.C root-5.32.00/tutorials/tree/cernbuild.C ---- root-5.32.00.orig/tutorials/tree/cernbuild.C 2012-02-10 14:59:26.357917020 +0100 -+++ root-5.32.00/tutorials/tree/cernbuild.C 2012-02-11 17:52:20.988688923 +0100 -@@ -19,7 +19,7 @@ - //The input file cern.dat is a copy of the CERN staff data base - //from 1988 - TString filename = "cernstaff.root"; -- TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); -+ TString dir = gSystem->UnixPathName(TInterpreter::Instance()->GetCurrentMacroName()); - dir.ReplaceAll("cernbuild.C",""); - dir.ReplaceAll("/./","/"); - FILE *fp = fopen(Form("%scernstaff.dat",dir.Data()),"r"); -diff -ur root-5.32.00.orig/tutorials/tree/cernstaff.C root-5.32.00/tutorials/tree/cernstaff.C ---- root-5.32.00.orig/tutorials/tree/cernstaff.C 2011-12-02 12:41:49.000000000 +0100 -+++ root-5.32.00/tutorials/tree/cernstaff.C 2012-02-11 16:02:20.534771748 +0100 -@@ -10,17 +10,17 @@ - c1->SetFillColor(17); - c1->Divide(2,2); - // make table of number of people per Nation & Division -- c1->cd(1); gPad->SetGrid(); -+ c1->cd(1); TVirtualPad::Pad()->SetGrid(); - T->Draw("Nation:Division>>hN","","text"); -- TH2F *hN = (TH2F*)gDirectory->Get("hN"); -+ TH2F *hN = (TH2F*)TDirectory::CurrentDirectory()->Get("hN"); - hN->SetMarkerSize(1.6); - hN->SetStats(0); - - //make profile of Average cost per Nation -- c1->cd(2); gPad->SetGrid(); -- gPad->SetLeftMargin(0.12); -+ c1->cd(2); TVirtualPad::Pad()->SetGrid(); -+ TVirtualPad::Pad()->SetLeftMargin(0.12); - T->Draw("Cost:Nation>>hNation","","prof,goff"); -- TH1F *hNation = (TH1F*)gDirectory->Get("hNation"); -+ TH1F *hNation = (TH1F*)TDirectory::CurrentDirectory()->Get("hNation"); - hNation->SetTitle("Average Cost per Nation"); - hNation->LabelsOption(">"); //sort by decreasing bin contents - hNation->SetMaximum(13000); -@@ -30,7 +30,7 @@ - hNation->Draw(); - - //make stacked plot of Nations versus Grade -- c1->cd(3); gPad->SetGrid(); -+ c1->cd(3); TVirtualPad::Pad()->SetGrid(); - THStack *hGrades = new THStack("hGrades","Nations versus Grade"); - TH1F *hFR = new TH1F("hFR","FR",12,3,15); - hFR->SetFillColor(kCyan); -@@ -62,10 +62,10 @@ - legend->Draw(); - - //make histogram of age distribution -- c1->cd(4); gPad->SetGrid(); -+ c1->cd(4); TVirtualPad::Pad()->SetGrid(); - T->Draw("Age"); - T->Draw("Age>>hRetired","Age>(65-2002+1988)","same"); -- TH1F *hRetired = (TH1F*)gDirectory->Get("hRetired"); -+ TH1F *hRetired = (TH1F*)TDirectory::CurrentDirectory()->Get("hRetired"); - hRetired->SetFillColor(kRed); - hRetired->SetFillStyle(3010); - diff --git a/root-html.C b/root-html.C index 8d9633c..ac7f93f 100644 --- a/root-html.C +++ b/root-html.C @@ -6,13 +6,12 @@ gSystem->AddIncludePath("-I@PWD@/cint/cint/include"); gSystem->AddIncludePath("-I@PWD@/cint/cint/stl"); gSystem->AddIncludePath("-I@PWD@/cint/cint/lib"); - TInterpreter::Instance()->AddIncludePath("@PWD@/include"); - TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/include"); - TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/stl"); - TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/lib"); + gInterpreter->AddIncludePath("@PWD@/include"); + gInterpreter->AddIncludePath("@PWD@/cint/cint/include"); + gInterpreter->AddIncludePath("@PWD@/cint/cint/stl"); + gInterpreter->AddIncludePath("@PWD@/cint/cint/lib"); #include #include - #include #include gROOT->GetPluginManager()->LoadHandlersFromPluginDirs(""); gROOT->GetPluginManager()->AddHandler("TVirtualPS","image", diff --git a/root-meta.patch b/root-meta.patch new file mode 100644 index 0000000..819e87e --- /dev/null +++ b/root-meta.patch @@ -0,0 +1,20 @@ +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-14 13:36:39.840687660 +0100 +@@ -322,11 +322,14 @@ + + TString include; + // Add the root include directory to list searched by default +-#ifndef ROOTINCDIR + include = gSystem->Getenv("ROOTSYS"); ++#ifndef ROOTINCDIR + include.Append("/include"); + #else +- include = ROOTINCDIR; ++ if (include != "") ++ include.Append("/include"); ++ else ++ include = ROOTINCDIR; + #endif + TCint::AddIncludePath(include); + diff --git a/root.spec b/root.spec index 6424f24..a308906 100644 --- a/root.spec +++ b/root.spec @@ -7,7 +7,15 @@ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif -%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)} +%{!?ruby_sitearchdir: %global ruby_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)} + +%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +%global ruby_installdir %{ruby_vendorarchdir} +%global ruby_abi 1.9.1 +%else +%global ruby_installdir %{ruby_sitearchdir} +%global ruby_abi 1.8 +%endif %if %($(pkg-config emacs) ; echo $?) %global emacs_version 21.4 @@ -20,7 +28,7 @@ Name: root Version: 5.32.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -55,9 +63,9 @@ Patch4: %{name}-rfio.patch # Missing globus auth module deps # https://savannah.cern.ch/bugs/index.php?91462 Patch5: %{name}-globus-deps.patch -# Removed globals +# Fix hardcoded include path # https://savannah.cern.ch/bugs/index.php?91463 -Patch6: %{name}-globals.patch +Patch6: %{name}-meta.patch # Ruby 1.9 configuration # https://savannah.cern.ch/bugs/index.php?91461 Patch7: %{name}-ruby.patch @@ -314,11 +322,7 @@ provide a Python interface to ROOT, and a ROOT interface to Python. Summary: Ruby extension for ROOT Group: Applications/Engineering Provides: ruby(libRuby) = %{version} -%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 -Requires: ruby(abi) = 1.9.1 -%else -Requires: ruby(abi) = 1.8 -%endif +Requires: ruby(abi) = %{ruby_abi} %description ruby This package contains the Ruby extension for ROOT. The interface @@ -1307,10 +1311,10 @@ install -m 644 pyroot26/ROOT.py* ${RPM_BUILD_ROOT}%{python26_sitearch} %endif # Same for the Ruby interface library -mkdir -p ${RPM_BUILD_ROOT}%{ruby_sitearch} +mkdir -p ${RPM_BUILD_ROOT}%{ruby_installdir} mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} \ - ${RPM_BUILD_ROOT}%{ruby_sitearch}/libRuby.so -ln -s ..`sed 's!%{_libdir}!!' <<< %{ruby_sitearch}`/libRuby.so \ + ${RPM_BUILD_ROOT}%{ruby_installdir}/libRuby.so +ln -s ..`sed 's!%{_libdir}!!' <<< %{ruby_installdir}`/libRuby.so \ ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} # These should be in PATH @@ -1833,7 +1837,7 @@ fi %files ruby -f includelist-bindings-ruby %defattr(-,root,root,-) %{_libdir}/%{name}/libRuby.* -%{ruby_sitearch}/libRuby.* +%{ruby_installdir}/libRuby.* %files genetic -f includelist-math-genetic %defattr(-,root,root,-) @@ -2306,6 +2310,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Feb 14 2012 Mattias Ellert - 5.32.00-2 +- Adapt to new ruby packaging guidelines + * Fri Feb 10 2012 Mattias Ellert - 5.32.00-1 - Update to 5.32.00 From 54830dbb655f1454f2a2019ce18afafd9b66d73e Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 28 Feb 2012 13:59:46 -0600 Subject: [PATCH 010/344] - Rebuilt for c++ ABI breakage --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index a308906..d000e32 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.32.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2310,6 +2310,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Feb 28 2012 Fedora Release Engineering - 5.32.00-3 +- Rebuilt for c++ ABI breakage + * Tue Feb 14 2012 Mattias Ellert - 5.32.00-2 - Adapt to new ruby packaging guidelines From f53cf6e9e30045aa2532e0b78c7c7670f7e9422d Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 3 Mar 2012 10:27:27 +0100 Subject: [PATCH 011/344] Update to 5.32.01 - Drop patches fixed upstream --- root-fit.patch | 75 --------------- root-globus-deps.patch | 30 ------ root-html.C | 9 +- root-meta.patch | 50 +++++++--- root-rfio.patch | 74 --------------- root-ruby.patch | 211 ----------------------------------------- root.spec | 27 ++---- 7 files changed, 50 insertions(+), 426 deletions(-) delete mode 100644 root-fit.patch delete mode 100644 root-globus-deps.patch delete mode 100644 root-rfio.patch delete mode 100644 root-ruby.patch diff --git a/root-fit.patch b/root-fit.patch deleted file mode 100644 index 09a255f..0000000 --- a/root-fit.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/Chi2FCN.h root-5.32.00/math/mathcore/inc/Fit/Chi2FCN.h ---- root-5.32.00.orig/math/mathcore/inc/Fit/Chi2FCN.h 2011-12-02 12:41:53.000000000 +0100 -+++ root-5.32.00/math/mathcore/inc/Fit/Chi2FCN.h 2012-02-12 22:45:37.560460921 +0100 -@@ -61,17 +61,14 @@ - @ingroup FitMethodFunc - */ - template --class Chi2FCN : public ::ROOT::Math::BasicFitMethodFunction { -+class Chi2FCN : public ROOT::Math::BasicFitMethodFunction { - - public: -+ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; -+ typedef typename BaseObjFunction::BaseFunction BaseFunction; - -- -- -- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; -- typedef typename BaseObjFunction::BaseFunction BaseFunction; -- -- //typedef typename ::ROOT::Math::ParamFunctionTrait::PFType IModelFunction; -- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; -+ //typedef typename ROOT::Math::ParamFunctionTrait::PFType IModelFunction; -+ typedef ROOT::Math::IParamMultiFunction IModelFunction; - typedef typename BaseObjFunction::Type_t Type_t; - - /** -diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/LogLikelihoodFCN.h root-5.32.00/math/mathcore/inc/Fit/LogLikelihoodFCN.h ---- root-5.32.00.orig/math/mathcore/inc/Fit/LogLikelihoodFCN.h 2011-12-02 12:41:53.000000000 +0100 -+++ root-5.32.00/math/mathcore/inc/Fit/LogLikelihoodFCN.h 2012-02-12 22:48:57.058092616 +0100 -@@ -50,17 +50,13 @@ - @ingroup FitMethodFunc - */ - template --class LogLikelihoodFCN : public ::ROOT::Math::BasicFitMethodFunction { -+class LogLikelihoodFCN : public ROOT::Math::BasicFitMethodFunction { - - public: -+ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; -+ typedef typename BaseObjFunction::BaseFunction BaseFunction; - -- -- -- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; -- typedef typename BaseObjFunction::BaseFunction BaseFunction; -- -- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; -- -+ typedef ROOT::Math::IParamMultiFunction IModelFunction; - - /** - Constructor from unbin data set and model function (pdf) -diff -ur root-5.32.00.orig/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h root-5.32.00/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h ---- root-5.32.00.orig/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h 2011-12-02 12:41:53.000000000 +0100 -+++ root-5.32.00/math/mathcore/inc/Fit/PoissonLikelihoodFCN.h 2012-02-12 22:48:29.878448447 +0100 -@@ -50,16 +50,13 @@ - @ingroup FitMethodFunc - */ - template --class PoissonLikelihoodFCN : public ::ROOT::Math::BasicFitMethodFunction { -+class PoissonLikelihoodFCN : public ROOT::Math::BasicFitMethodFunction { - - public: -+ typedef ROOT::Math::BasicFitMethodFunction BaseObjFunction; -+ typedef typename BaseObjFunction::BaseFunction BaseFunction; - -- -- typedef ::ROOT::Math::BasicFitMethodFunction BaseObjFunction; -- typedef typename BaseObjFunction::BaseFunction BaseFunction; -- -- typedef ::ROOT::Math::IParamMultiFunction IModelFunction; -- -+ typedef ROOT::Math::IParamMultiFunction IModelFunction; - - /** - Constructor from unbin data set and model function (pdf) diff --git a/root-globus-deps.patch b/root-globus-deps.patch deleted file mode 100644 index fb99c36..0000000 --- a/root-globus-deps.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -ur root-5.32.00.orig/config/Makefile.depend root-5.32.00/config/Makefile.depend ---- root-5.32.00.orig/config/Makefile.depend 2011-12-02 12:42:19.000000000 +0100 -+++ root-5.32.00/config/Makefile.depend 2012-02-10 19:42:24.408218116 +0100 -@@ -100,7 +100,7 @@ - CINTEXLIBDEPM = $(REFLEXLIB) - REFLEXDICTLIBDEPM = $(REFLEXLIB) - RAUTHLIBDEPM = $(NETLIB) $(IOLIB) --GLBSAUTHLIBDEPM = $(RAUTHLIB) -+GLBSAUTHLIBDEPM = $(RAUTHLIB) $(NETLIB) - KRB5AUTHLIBDEPM = $(RAUTHLIB) $(NETLIB) - SRVAUTHLIBDEPM = $(NETLIB) - QTGSILIBDEPM = $(GUILIB) $(GPADLIB) -@@ -366,7 +366,7 @@ - CINTEXLIBEXTRA = lib/libReflex.lib - REFLEXDICTLIBEXTRA = lib/libReflex.lib - RAUTHLIBEXTRA = lib/libNet.lib lib/libRIO.lib --GLBSAUTHLIBEXTRA = lib/libRootAuth.lib -+GLBSAUTHLIBEXTRA = lib/libRootAuth.lib lib/libNet.lib - KRB5AUTHLIBEXTRA = lib/libRootAuth.lib lib/libNet.lib - SRVAUTHLIBEXTRA = lib/libNet.lib - QTGSILIBEXTRA = lib/libGui.lib lib/libGpad.lib -@@ -498,7 +498,7 @@ - CINTEXLIBEXTRA = -Llib -lReflex - REFLEXDICTLIBEXTRA = -Llib -lReflex - RAUTHLIBEXTRA = -Llib -lNet -lRIO --GLBSAUTHLIBEXTRA = -Llib -lRootAuth -+GLBSAUTHLIBEXTRA = -Llib -lRootAuth -lNet - KRB5AUTHLIBEXTRA = -Llib -lRootAuth -lNet - SRVAUTHLIBEXTRA = -Llib -lNet - QTGSILIBEXTRA = -Llib -lGui -lGpad diff --git a/root-html.C b/root-html.C index ac7f93f..82b0244 100644 --- a/root-html.C +++ b/root-html.C @@ -6,10 +6,11 @@ gSystem->AddIncludePath("-I@PWD@/cint/cint/include"); gSystem->AddIncludePath("-I@PWD@/cint/cint/stl"); gSystem->AddIncludePath("-I@PWD@/cint/cint/lib"); - gInterpreter->AddIncludePath("@PWD@/include"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/include"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/stl"); - gInterpreter->AddIncludePath("@PWD@/cint/cint/lib"); + TInterpreter::Instance()->AddIncludePath("@PWD@/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/include"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/stl"); + TInterpreter::Instance()->AddIncludePath("@PWD@/cint/cint/lib"); + #include #include #include #include diff --git a/root-meta.patch b/root-meta.patch index 819e87e..6395e3a 100644 --- a/root-meta.patch +++ b/root-meta.patch @@ -1,20 +1,44 @@ 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-14 13:36:39.840687660 +0100 -@@ -322,11 +322,14 @@ ++++ root-5.32.00/core/meta/src/TCint.cxx 2012-02-18 12:07:12.157520013 +0100 +@@ -320,23 +320,27 @@ + ProcessLine("#define ROOT_TError 0"); + ProcessLine("#define ROOT_TGenericClassInfo 0"); - TString include; - // Add the root include directory to list searched by default --#ifndef ROOTINCDIR - include = gSystem->Getenv("ROOTSYS"); -+#ifndef ROOTINCDIR - include.Append("/include"); +- TString include; +- // Add the root include directory to list searched by default ++ Int_t includes = gEnv->GetValue("Cint.Includes", 1); ++ if (includes > 0) { ++ TString include; ++ // Add the root include directory to list searched by default + #ifndef ROOTINCDIR +- include = gSystem->Getenv("ROOTSYS"); +- include.Append("/include"); ++ include = gSystem->Getenv("ROOTSYS"); ++ include.Append("/include"); #else - include = ROOTINCDIR; -+ if (include != "") -+ include.Append("/include"); -+ else -+ include = ROOTINCDIR; ++ include = ROOTINCDIR; #endif - TCint::AddIncludePath(include); +- TCint::AddIncludePath(include); ++ TCint::AddIncludePath(include); + +- // Allow the usage of ClassDef and ClassImp in interpreted macros +- // if RtypesCint.h can be found (think of static executable without include/) +- char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); +- if (whichTypesCint) { +- ProcessLine("#include "); +- delete[] whichTypesCint; +- } ++ // Allow the usage of ClassDef and ClassImp in interpreted macros ++ // if RtypesCint.h can be found (think of static executable without ++ // include/) ++ char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); ++ if (whichTypesCint) { ++ ProcessLine("#include "); ++ delete[] whichTypesCint; ++ } ++ } + + } diff --git a/root-rfio.patch b/root-rfio.patch deleted file mode 100644 index 1af3f2f..0000000 --- a/root-rfio.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -ur root-5.32.00.orig/configure root-5.32.00/configure ---- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 -+++ root-5.32.00/configure 2012-02-10 17:36:40.090907758 +0100 -@@ -3183,7 +3183,7 @@ - fi - fi - -- check_library "librfio libdpm libshift shiftmd shift" "$enable_shared" \ -+ check_library "librfio libdpm libcastorrfio libshift shiftmd shift" "$enable_shared" \ - "$shiftlibdir" \ - $RFIO ${RFIO:+$RFIO/lib} /cern/pro/lib /cern/new/lib /cern/old/lib \ - /opt/shift/lib /usr/local/shift/lib /usr/lib/shift \ -@@ -3194,6 +3194,10 @@ - if test "x$shiftincdir" = "x" || test "x$shiftlib" = "x"; then - enable_rfio="no" - else -+ case $shiftlib in -+ *dpm) shiftlib="$shiftlib -llcgdm" ;; -+ *castorrfio) shiftlib="$shiftlib -lcastorcommon" ;; -+ esac - case $platform in - linux | macosx) - for i in "" -ladns ; do -@@ -3203,14 +3207,7 @@ - break ; - fi - done -- # Explicit linking: which libraries are needed to satisfy symbols -- # from libshift? -- # 2.1.9 has new library layout -- shiftlibdep="-lcastorrfio -lcastorclient -lcastorcommon" -- check_link "$shiftlib $shiftlibdep" "$shiftlibdir" rfio_fchmod -- if test $link_result -eq 1 ; then -- shiftlib="$shiftlib $shiftlibdep" -- else -+ if test $link_result -ne 1 ; then - enable_rfio="no" - fi - ;; -@@ -3280,7 +3277,7 @@ - fi - fi - -- check_library "libshift shiftmd shift" "$enable_shared" "$castorlibdir" \ -+ check_library "libcastorrfio libshift shiftmd shift" "$enable_shared" "$castorlibdir" \ - $CASTOR ${CASTOR:+$CASTOR/lib} /cern/pro/lib /cern/new/lib \ - /cern/old/lib /opt/shift/lib /usr/local/shift/lib /usr/lib/shift \ - /usr/local/lib/shift /usr/lib /usr/local/lib -@@ -3290,6 +3287,9 @@ - if test "x$castorincdir" = "x" || test "x$castorlib" = "x"; then - enable_castor="no" - else -+ case $castorlib in -+ *castorrfio) castorlib="$castorlib -lcastorclient -lcastorns -lcastorcommon" ;; -+ esac - case $platform in - linux | macosx) - for i in "" -ladns ; do -@@ -3299,14 +3299,7 @@ - break ; - fi - done -- # Explicit linking: which libraries are needed to satisfy symbols -- # from libshift? -- # 2.1.9 has new library layout -- castorlibdep="-lcastorrfio -lcastorclient -lcastorns -lcastorcommon" -- check_link "$castorlib $castorlibdep" "$castorlibdir" rfio_fchmod -- if test $link_result -eq 1 ; then -- castorlib="$castorlib $castorlibdep" -- else -+ if test $link_result -ne 1 ; then - enable_castor="no" - fi - ;; diff --git a/root-ruby.patch b/root-ruby.patch deleted file mode 100644 index d616e5b..0000000 --- a/root-ruby.patch +++ /dev/null @@ -1,211 +0,0 @@ -diff -ur root-5.32.00.orig/bindings/ruby/src/drr.cxx root-5.32.00/bindings/ruby/src/drr.cxx ---- root-5.32.00.orig/bindings/ruby/src/drr.cxx 2011-12-02 12:41:55.000000000 +0100 -+++ root-5.32.00/bindings/ruby/src/drr.cxx 2012-02-12 16:20:46.248535290 +0100 -@@ -24,6 +24,17 @@ - - #include "ruby.h" - -+// Define macros for old ruby versions -+#ifndef RSTRING_PTR -+#define RSTRING_PTR(s) (RSTRING(s)->ptr) -+#endif -+#ifndef RFLOAT_VALUE -+#define RFLOAT_VALUE(v) (RFLOAT(v)->value) -+#endif -+#ifndef RARRAY_LEN -+#define RARRAY_LEN(s) (RARRAY(s)->len) -+#endif -+ - #include "rrcommon.h" - - /* ROOT's global enums. */ -@@ -34,7 +45,7 @@ - #include "dlfcn.h" - #endif - --#if ((R__RUBY_MAJOR<1) || (R__RUBY_MAJOR==1)&&(R__RUBY_MINOR<=9)) -+#if ((R__RUBY_MAJOR<1) || (R__RUBY_MAJOR==1)&&(R__RUBY_MINOR<=8)) - # define rb_frame_this_func rb_frame_last_func - #endif - -@@ -158,9 +169,9 @@ - switch (TYPE(o)) - { - case T_STRING: -- return (void *) RSTRING(o)->ptr; -+ return (void *) RSTRING_PTR(o); - case T_FLOAT: -- return (void *) &RFLOAT(o)->value; -+ return (void *) &RFLOAT_VALUE(o); - case T_FIXNUM: - /* FIXME: Memory leak until I find the correct way. Until - * then please use integers in TTrees with care. --elathan -@@ -172,8 +183,9 @@ - RRGRAB(o, void *, res); - return res; - default: -- rb_fatal ("Failed convertion of %d to void *.\n", -- STR2CSTR(CLASS_OF(o))); -+ VALUE tmp = CLASS_OF(o); -+ rb_fatal ("Failed convertion of %d to void *.\n", -+ StringValuePtr(tmp)); - break; - } - -@@ -392,7 +404,7 @@ - } - - VALUE keys = rb_funcall(parms, rb_intern("keys"), 0); -- for (int i = 0; i < RARRAY(keys)->len; i++) -+ for (int i = 0; i < RARRAY_LEN(keys); i++) - { - VALUE key = rb_ary_entry (keys, i); - rb_funcall (self, rb_to_id (ameth), 2, key, rb_hash_aref (parms, key)); -@@ -424,7 +436,7 @@ - * 3. When we want both 1 and 2 - */ - -- int nargs = RARRAY(inargs)->len - offset; -+ int nargs = RARRAY_LEN(inargs) - offset; - double *arr = NULL; - TObject *ptr = NULL; - VALUE v = 0; -@@ -446,7 +458,7 @@ - if (cproto) strcat(cproto, "double"); - break; - case T_STRING: -- if (f) f->SetArg((long) STR2CSTR(arg)); -+ if (f) f->SetArg((long) StringValuePtr(arg)); - if (cproto) strcat(cproto, "char*"); - break; - case T_ARRAY: -@@ -455,8 +467,8 @@ - */ - if (f) - { -- arr = ALLOC_N (double, RARRAY(arg)->len); -- for (int j = 0; j < RARRAY(arg)->len; j++) -+ arr = ALLOC_N (double, RARRAY_LEN(arg)); -+ for (int j = 0; j < RARRAY_LEN(arg); j++) - arr[j] = NUM2DBL(rb_ary_entry (arg, j)); - f->SetArg((long) arr); - } -@@ -469,7 +481,8 @@ - Data_Get_Struct (v, TObject, ptr); - if (f) f->SetArg((long) ptr); - if (cproto) { -- strcat(cproto, STR2CSTR(rb_iv_get (arg, "__rr_class__"))); -+ VALUE tmp = rb_iv_get (arg, "__rr_class__"); -+ strcat(cproto, StringValuePtr(tmp)); - if( ((reference_map>>ntobjects)&0x1) ) { - strcat(cproto, "*"); - } else { -@@ -637,11 +650,11 @@ - VALUE v; - - /* Check if there is a ROOT dict. available. */ -- TClass *c = TClass::GetClass(STR2CSTR(klass)); -+ TClass *c = TClass::GetClass(StringValuePtr(klass)); - if (c) - { - VALUE k; -- char *name = STR2CSTR(klass); -+ char *name = StringValuePtr(klass); - if (!rb_const_defined (rb_cObject, rb_intern(name))) - k = rb_define_class (name, drrAbstractClass); - else -@@ -652,7 +665,7 @@ - rb_iv_set (v, "__rr_class__", klass); - } - else -- rb_raise( rb_eArgError, "No TClass found for %s. Is this a Root type?", STR2CSTR(klass) ); -+ rb_raise( rb_eArgError, "No TClass found for %s. Is this a Root type?", StringValuePtr(klass) ); - - return v; - } -@@ -671,7 +684,7 @@ - - /* Call the requested ctor. */ - -- if (RARRAY(inargs)->len) { -+ if (RARRAY_LEN(inargs)) { - drr_find_method_prototype (&klass, classname, inargs, cproto, 0); - drr_set_method_args ( inargs, &func, 0); - } -@@ -767,7 +780,7 @@ - char * classname = (char *) rb_class2name(self); - - rb_scan_args (argc, argv, "0*", &inargs); -- nargs = RARRAY(inargs)->len - 1; -+ nargs = RARRAY_LEN(inargs) - 1; - - G__CallFunc *func = new G__CallFunc(); - G__ClassInfo *klass = new G__ClassInfo (classname); -@@ -816,12 +829,13 @@ - - /* Grab method, class and the instance pointer. */ - methname = (char*) rb_id2name (rb_to_id(argv[0])); -- classname = STR2CSTR(rb_iv_get (self, "__rr_class__")); -+ VALUE tmp = rb_iv_get (self, "__rr_class__"); -+ classname = StringValuePtr(tmp); - TObject *caller = drr_grab_object (self); - - rb_scan_args (argc, argv, "0*", &inargs); - -- nargs = RARRAY(inargs)->len - 1; -+ nargs = RARRAY_LEN(inargs) - 1; - VALUE rklass = rb_class_of (self); - - G__CallFunc *func = new G__CallFunc(); -@@ -890,7 +904,7 @@ - - rb_scan_args (argc, argv, "0*", &inargs); - -- nargs = RARRAY(inargs)->len; -+ nargs = RARRAY_LEN(inargs); - - G__CallFunc *func = NULL; - -diff -ur root-5.32.00.orig/configure root-5.32.00/configure ---- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 -+++ root-5.32.00/configure 2012-02-12 12:11:14.836641595 +0100 -@@ -4171,19 +4171,25 @@ - # Check for Ruby include and library - myruby=`$cwhich ruby 2> /dev/null` - if test ! "x$myruby" = "x" && test -x "$myruby" ; then -- rubysysincdir=`ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]'` -- rubysyslibdir=`ruby -rrbconfig -e 'puts Config::CONFIG["libdir"]'` -+ rubysysincdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["includedir"]'` -+ rubysysarchdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["archdir"]'` -+ rubysyslibdir=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["libdir"]'` -+ rubysysarch=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["arch"]'` - fi -- rubysysincdir2= -+ rubysysarchdir2= - if test "x$platform" = "xmacosx" ; then -- rubysysincdir2=`echo $rubysysincdir | sed -e 's/powerpc/universal/'` -+ rubysysarchdir2=`echo $rubysysarchdir | sed -e 's/powerpc/universal/'` - fi - check_header "ruby.h" "$rubyincdir" \ - $RUBYDIR ${RUBYDIR:+$RUBYDIR/include} \ -- $rubysysincdir $rubysysincdir2 \ -+ $rubysysincdir $rubysysarchdir $rubysysarchdir2 \ - /usr/local/include/ruby /usr/include/ruby - rubyinc=$found_hdr - rubyincdir=$found_dir -+ check_header "ruby/config.h" "" $rubysysincdir/$rubysysarch -+ if test "x$found_hdr" != "x" ; then -+ rubyincdir="$rubyincdir $found_dir" -+ fi - - if test "x$arch" = "xwin32" || \ - test "x$enable_shared" = "xno" ; then -@@ -6754,7 +6760,7 @@ - - if test ! "x$enable_ruby" = "xno"; then - echo "" >> RConfigOptions-out.tmp -- ruby -rrbconfig -e 'puts Config::CONFIG["ruby_version"]' | \ -+ ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]' | \ - sed 's/^\([0-9]\)\.\([0-9]\).*$/#define R__RUBY_MAJOR \1@#define R__RUBY_MINOR \2/' | \ - tr '@' '\n' >> RConfigOptions-out.tmp - fi diff --git a/root.spec b/root.spec index d000e32..0cb05e4 100644 --- a/root.spec +++ b/root.spec @@ -26,9 +26,9 @@ %endif Name: root -Version: 5.32.00 +Version: 5.32.01 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -57,21 +57,9 @@ Patch1: %{name}-fontconfig.patch Patch2: %{name}-unuran.patch # Fixes for xrootd bonjour Patch3: %{name}-xrootd.patch -# Fix rfio configure -# https://savannah.cern.ch/bugs/index.php?91460 -Patch4: %{name}-rfio.patch -# Missing globus auth module deps -# https://savannah.cern.ch/bugs/index.php?91462 -Patch5: %{name}-globus-deps.patch # Fix hardcoded include path # https://savannah.cern.ch/bugs/index.php?91463 -Patch6: %{name}-meta.patch -# Ruby 1.9 configuration -# https://savannah.cern.ch/bugs/index.php?91461 -Patch7: %{name}-ruby.patch -# Dictionary generation fails on i686 -# https://savannah.cern.ch/bugs/index.php?91459 -Patch8: %{name}-fit.patch +Patch4: %{name}-meta.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 @@ -1048,10 +1036,6 @@ fi %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -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 \ @@ -1400,6 +1384,7 @@ echo %{_libdir}/%{name} > \ # Generate documentation echo Rint.Includes: 0 > .rootrc +echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C @@ -2310,6 +2295,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Mar 03 2012 Mattias Ellert - 5.32.01-1 +- Update to 5.32.01 +- Drop patches fixed upstream + * Tue Feb 28 2012 Fedora Release Engineering - 5.32.00-3 - Rebuilt for c++ ABI breakage From 9ba71e4342eeaab5dc98ae8766bb8c03c3b503c1 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 3 Mar 2012 11:02:07 +0100 Subject: [PATCH 012/344] Update sources file --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index b8a3ff3..72f1ee7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fb81fab8b41c657a12d2dd32ee008521 root-5.32.00.tar.gz +b6c7368e756f912f619d18883cb10c70 root-5.32.01.tar.gz From 0bed893234065bfddc9122e2c8475bc3e1cad50d Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 17 Mar 2012 15:43:52 +0100 Subject: [PATCH 013/344] Rebuild for xrootd 3.1.1 --- root-xrootd.patch | 48 +++++++++++++++++------------------------------ root.spec | 5 ++++- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/root-xrootd.patch b/root-xrootd.patch index 6352682..9f7c113 100644 --- a/root-xrootd.patch +++ b/root-xrootd.patch @@ -1,36 +1,22 @@ ---- root-5.32.00.orig/configure 2011-12-02 12:42:22.000000000 +0100 -+++ root-5.32.00/configure 2012-02-11 20:15:07.910877372 +0100 -@@ -4463,18 +4463,22 @@ - fi - fi - done -+ xrdlibdir=$tmpxrdlibdir - -- # -- # Check if bonjour is available for code potentially using it ... -- if test "x$enable_xrootd" = "xyes"; then -- xrdlibdir="$tmpxrdlibdir" -- if test "x$enable_bonjour" = "xyes"; then +diff -ur root-5.32.01.orig/configure root-5.32.01/configure +--- root-5.32.01.orig/configure 2012-02-29 16:46:41.000000000 +0100 ++++ root-5.32.01/configure 2012-03-17 14:14:02.822111495 +0100 +@@ -4486,10 +4486,14 @@ + if test "x$enable_xrootd" = "xyes"; then + xrdlibdir="$tmpxrdlibdir" + if test "x$enable_bonjour" = "xyes"; then - check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" - if test $found_symbol -eq 0 ; then - bonjourcppflags= - fi -- fi -- fi -+ # This check is broken. The xrootd libraries are C++ hence their -+ # symbol names are mangled. The check_symbol macro is designed -+ # to check for unmangled symbol names in C libraries. -+ # # -+ # # Check if bonjour is available for code potentially using it ... -+ # if test "x$enable_xrootd" = "xyes"; then -+ # xrdlibdir="$tmpxrdlibdir" -+ # if test "x$enable_bonjour" = "xyes"; then -+ # check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" -+ # if test $found_symbol -eq 0 ; then -+ # bonjourcppflags= -+ # fi -+ # fi -+ # fi ++ # This check is broken. The xrootd libraries are C++ hence their ++ # symbol names are mangled. The check_symbol macro is designed ++ # to check for unmangled symbol names in C libraries. ++ # check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" ++ # if test $found_symbol -eq 0 ; then ++ # bonjourcppflags= ++ # fi ++ bonjourcppflags= + fi + fi fi - - check_explicit "$enable_xrootd" "$enable_xrootd_explicit" \ diff --git a/root.spec b/root.spec index 0cb05e4..1b54ff0 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.32.01 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2295,6 +2295,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Mar 17 2012 Mattias Ellert - 5.32.01-2 +- Rebuild for xrootd 3.1.1 + * Sat Mar 03 2012 Mattias Ellert - 5.32.01-1 - Update to 5.32.01 - Drop patches fixed upstream From 782c9c4d89d741220736371ee648d471c80439a8 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 17 Mar 2012 19:23:08 +0100 Subject: [PATCH 014/344] Rebuild for xrootd 3.1.1 --- root-html.C | 2 +- root-meta.patch | 44 ++++++++++++++++++++++++++++++++++++++++++++ root-xrootd.patch | 3 ++- root.spec | 13 +++++++++++-- 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 root-meta.patch diff --git a/root-html.C b/root-html.C index 413a8d3..a481a24 100644 --- a/root-html.C +++ b/root-html.C @@ -10,9 +10,9 @@ gInterpreter->AddIncludePath("@PWD@/cint/cint/include"); gInterpreter->AddIncludePath("@PWD@/cint/cint/stl"); gInterpreter->AddIncludePath("@PWD@/cint/cint/lib"); + #include #include #include - #include #include gROOT->GetPluginManager()->LoadHandlersFromPluginDirs(""); gROOT->GetPluginManager()->AddHandler("TVirtualPS","image", diff --git a/root-meta.patch b/root-meta.patch new file mode 100644 index 0000000..6395e3a --- /dev/null +++ b/root-meta.patch @@ -0,0 +1,44 @@ +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 @@ + ProcessLine("#define ROOT_TError 0"); + ProcessLine("#define ROOT_TGenericClassInfo 0"); + +- TString include; +- // Add the root include directory to list searched by default ++ Int_t includes = gEnv->GetValue("Cint.Includes", 1); ++ if (includes > 0) { ++ TString include; ++ // Add the root include directory to list searched by default + #ifndef ROOTINCDIR +- include = gSystem->Getenv("ROOTSYS"); +- include.Append("/include"); ++ include = gSystem->Getenv("ROOTSYS"); ++ include.Append("/include"); + #else +- include = ROOTINCDIR; ++ include = ROOTINCDIR; + #endif +- TCint::AddIncludePath(include); ++ TCint::AddIncludePath(include); + +- // Allow the usage of ClassDef and ClassImp in interpreted macros +- // if RtypesCint.h can be found (think of static executable without include/) +- char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); +- if (whichTypesCint) { +- ProcessLine("#include "); +- delete[] whichTypesCint; +- } ++ // Allow the usage of ClassDef and ClassImp in interpreted macros ++ // if RtypesCint.h can be found (think of static executable without ++ // include/) ++ char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); ++ if (whichTypesCint) { ++ ProcessLine("#include "); ++ delete[] whichTypesCint; ++ } ++ } + + } + diff --git a/root-xrootd.patch b/root-xrootd.patch index 51d4ab4..dc00b6e 100644 --- a/root-xrootd.patch +++ b/root-xrootd.patch @@ -1,7 +1,7 @@ diff -ur root-5.30.04.orig/configure root-5.30.04/configure --- root-5.30.04.orig/configure 2011-11-08 14:28:55.000000000 +0100 +++ root-5.30.04/configure 2011-11-16 05:48:21.224144395 +0100 -@@ -4424,13 +4424,14 @@ +@@ -4424,13 +4424,15 @@ if test "x$externalxrd" = "xyes"; then buildxrd="no" # Check if bonjour is available for code potentially using it ... @@ -20,6 +20,7 @@ diff -ur root-5.30.04.orig/configure root-5.30.04/configure + ## bonjourcppflags= + ## fi + ##fi ++ bonjourcppflags= fi else buildxrd="no" diff --git a/root.spec b/root.spec index 07e8df1..35271e2 100644 --- a/root.spec +++ b/root.spec @@ -20,7 +20,7 @@ Name: root Version: 5.30.06 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -47,8 +47,11 @@ Patch0: %{name}-ftgl.patch Patch1: %{name}-fontconfig.patch # Use system unuran: Patch2: %{name}-unuran.patch -# Workaround for broken Form() on ppc +# Fixes for xrootd bonjour Patch3: %{name}-xrootd.patch +# Fix hardcoded include path +# https://savannah.cern.ch/bugs/index.php?91463 +Patch4: %{name}-meta.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 @@ -118,6 +121,7 @@ BuildRequires: graphviz-devel %if "%{?rhel}" == "5" BuildRequires: graphviz-gd %endif +BuildRequires: expat-devel %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(liberationsans) BuildRequires: font(liberationserif) @@ -1023,6 +1027,7 @@ fi %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -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 \ @@ -1378,6 +1383,7 @@ echo %{_libdir}/%{name} > \ # Generate documentation echo Rint.Includes: 0 > .rootrc +echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C @@ -2284,6 +2290,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Mar 17 2012 Mattias Ellert - 5.30.06-2 +- Rebuild for xrootd 3.1.1 + * Mon Feb 13 2012 Mattias Ellert - 5.30.06-1 - Update to 5.30.06 From f84df07c3fe2dc6ce4b0a092c67bc1da397207ba Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 29 Mar 2012 15:43:46 +0200 Subject: [PATCH 015/344] Update to 5.32.02 --- root.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/root.spec b/root.spec index 1b54ff0..72ddb6f 100644 --- a/root.spec +++ b/root.spec @@ -26,9 +26,9 @@ %endif Name: root -Version: 5.32.01 +Version: 5.32.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2295,6 +2295,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Mar 29 2012 Mattias Ellert - 5.32.02-1 +- Update to 5.32.02 + * Sat Mar 17 2012 Mattias Ellert - 5.32.01-2 - Rebuild for xrootd 3.1.1 diff --git a/sources b/sources index 72f1ee7..de28ff4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b6c7368e756f912f619d18883cb10c70 root-5.32.01.tar.gz +035fcd656489aa0cc7ee6b7a98d4eece root-5.32.02.tar.gz From ce9d3642b5bdfef8f88e74ec2a01202dbff06dfc Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 17 May 2012 21:02:22 +0200 Subject: [PATCH 016/344] Update to 5.32.03 --- root.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index 72ddb6f..44d4ab2 100644 --- a/root.spec +++ b/root.spec @@ -26,7 +26,7 @@ %endif Name: root -Version: 5.32.02 +Version: 5.32.03 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -2295,6 +2295,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu May 17 2012 Mattias Ellert - 5.32.03-1 +- Update to 5.32.03 + * Thu Mar 29 2012 Mattias Ellert - 5.32.02-1 - Update to 5.32.02 diff --git a/sources b/sources index de28ff4..94d2889 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -035fcd656489aa0cc7ee6b7a98d4eece root-5.32.02.tar.gz +18a3b912155d2ec6e493d335a23d7abe root-5.32.03.tar.gz From f9dd6d5cb9ae45d30b37b39598cb02732470b214 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Jun 2012 17:15:48 +0200 Subject: [PATCH 017/344] Update to 5.34.00 - New sub-package: root-io-gfal --- root-fontconfig.patch | 62 +++++++++++++++++++++---------------------- root-glibc.patch | 44 ++++++++++++++++++++++++++++++ root.spec | 37 +++++++++++++++++++++----- sources | 2 +- 4 files changed, 107 insertions(+), 38 deletions(-) create mode 100644 root-glibc.patch diff --git a/root-fontconfig.patch b/root-fontconfig.patch index ac4e5a4..6609c76 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,7 +1,7 @@ -diff -ur root-5.30.01.orig/core/base/src/TApplication.cxx root-5.30.01/core/base/src/TApplication.cxx ---- root-5.30.01.orig/core/base/src/TApplication.cxx 2011-08-18 16:45:43.000000000 +0200 -+++ root-5.30.01/core/base/src/TApplication.cxx 2011-08-18 19:28:45.079497320 +0200 -@@ -252,20 +252,9 @@ +diff -ur root-5.34.00.orig/core/base/src/TApplication.cxx root-5.34.00/core/base/src/TApplication.cxx +--- root-5.34.00.orig/core/base/src/TApplication.cxx 2012-06-05 15:31:18.000000000 +0200 ++++ root-5.34.00/core/base/src/TApplication.cxx 2012-06-09 16:01:50.212196155 +0200 +@@ -239,20 +239,9 @@ // Try to load TrueType font renderer. Only try to load if not in batch // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. @@ -23,7 +23,7 @@ diff -ur root-5.30.01.orig/core/base/src/TApplication.cxx root-5.30.01/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 -@@ -279,7 +268,6 @@ +@@ -266,7 +255,6 @@ } } #endif @@ -31,9 +31,9 @@ diff -ur root-5.30.01.orig/core/base/src/TApplication.cxx root-5.30.01/core/base // Create WM dependent application environment if (fAppImp) -diff -ur root-5.30.01.orig/graf2d/graf/Module.mk root-5.30.01/graf2d/graf/Module.mk ---- root-5.30.01.orig/graf2d/graf/Module.mk 2011-08-18 16:46:08.000000000 +0200 -+++ root-5.30.01/graf2d/graf/Module.mk 2011-08-18 19:28:45.086497316 +0200 +diff -ur root-5.34.00.orig/graf2d/graf/Module.mk root-5.34.00/graf2d/graf/Module.mk +--- root-5.34.00.orig/graf2d/graf/Module.mk 2012-06-05 15:31:46.000000000 +0200 ++++ root-5.34.00/graf2d/graf/Module.mk 2012-06-09 16:01:50.212196155 +0200 @@ -45,7 +45,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ @@ -43,9 +43,9 @@ diff -ur root-5.30.01.orig/graf2d/graf/Module.mk root-5.30.01/graf2d/graf/Module $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.30.01.orig/graf2d/graf/src/TTF.cxx root-5.30.01/graf2d/graf/src/TTF.cxx ---- root-5.30.01.orig/graf2d/graf/src/TTF.cxx 2011-08-18 16:46:08.000000000 +0200 -+++ root-5.30.01/graf2d/graf/src/TTF.cxx 2011-08-18 19:28:45.130497322 +0200 +diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/TTF.cxx +--- root-5.34.00.orig/graf2d/graf/src/TTF.cxx 2012-06-05 15:31:46.000000000 +0200 ++++ root-5.34.00/graf2d/graf/src/TTF.cxx 2012-06-09 16:01:50.261196568 +0200 @@ -26,6 +26,7 @@ #include "TMath.h" #include "TError.h" @@ -239,9 +239,9 @@ diff -ur root-5.30.01.orig/graf2d/graf/src/TTF.cxx root-5.30.01/graf2d/graf/src/ } //______________________________________________________________________________ -diff -ur root-5.30.01.orig/graf3d/gl/Module.mk root-5.30.01/graf3d/gl/Module.mk ---- root-5.30.01.orig/graf3d/gl/Module.mk 2011-08-18 16:45:57.000000000 +0200 -+++ root-5.30.01/graf3d/gl/Module.mk 2011-08-18 19:30:30.171500251 +0200 +diff -ur root-5.34.00.orig/graf3d/gl/Module.mk root-5.34.00/graf3d/gl/Module.mk +--- root-5.34.00.orig/graf3d/gl/Module.mk 2012-06-05 15:31:34.000000000 +0200 ++++ root-5.34.00/graf3d/gl/Module.mk 2012-06-09 16:01:50.311196992 +0200 @@ -70,7 +70,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ @@ -251,9 +251,9 @@ diff -ur root-5.30.01.orig/graf3d/gl/Module.mk root-5.30.01/graf3d/gl/Module.mk $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.30.01.orig/graf3d/gl/src/TGLFontManager.cxx root-5.30.01/graf3d/gl/src/TGLFontManager.cxx ---- root-5.30.01.orig/graf3d/gl/src/TGLFontManager.cxx 2011-08-18 16:45:57.000000000 +0200 -+++ root-5.30.01/graf3d/gl/src/TGLFontManager.cxx 2011-08-18 19:28:45.153497322 +0200 +diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/gl/src/TGLFontManager.cxx +--- root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx 2012-06-05 15:31:34.000000000 +0200 ++++ root-5.34.00/graf3d/gl/src/TGLFontManager.cxx 2012-06-09 16:01:50.311196992 +0200 @@ -37,6 +37,8 @@ #endif @@ -379,9 +379,9 @@ diff -ur root-5.30.01.orig/graf3d/gl/src/TGLFontManager.cxx root-5.30.01/graf3d/ 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.30.01.orig/graf3d/gl/src/TGLText.cxx root-5.30.01/graf3d/gl/src/TGLText.cxx ---- root-5.30.01.orig/graf3d/gl/src/TGLText.cxx 2011-08-18 16:45:57.000000000 +0200 -+++ root-5.30.01/graf3d/gl/src/TGLText.cxx 2011-08-18 19:28:45.162497322 +0200 +diff -ur root-5.34.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/TGLText.cxx +--- root-5.34.00.orig/graf3d/gl/src/TGLText.cxx 2012-06-05 15:31:34.000000000 +0200 ++++ root-5.34.00/graf3d/gl/src/TGLText.cxx 2012-06-09 16:01:50.320197065 +0200 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -498,9 +498,9 @@ diff -ur root-5.30.01.orig/graf3d/gl/src/TGLText.cxx root-5.30.01/graf3d/gl/src/ + FcPatternDestroy (match); + FcPatternDestroy (pat); } -diff -ur root-5.30.01.orig/gui/gui/src/TGApplication.cxx root-5.30.01/gui/gui/src/TGApplication.cxx ---- root-5.30.01.orig/gui/gui/src/TGApplication.cxx 2011-08-18 16:46:02.000000000 +0200 -+++ root-5.30.01/gui/gui/src/TGApplication.cxx 2011-08-18 19:28:45.169497323 +0200 +diff -ur root-5.34.00.orig/gui/gui/src/TGApplication.cxx root-5.34.00/gui/gui/src/TGApplication.cxx +--- root-5.34.00.orig/gui/gui/src/TGApplication.cxx 2012-06-05 15:31:42.000000000 +0200 ++++ root-5.34.00/gui/gui/src/TGApplication.cxx 2012-06-09 16:01:50.327197123 +0200 @@ -83,25 +83,12 @@ gROOT->SetBatch(kFALSE); @@ -528,10 +528,10 @@ diff -ur root-5.30.01.orig/gui/gui/src/TGApplication.cxx root-5.30.01/gui/gui/sr } // Create the canvas colors early so they are allocated before -diff -ur root-5.30.01.orig/gui/gui/src/TGSpeedo.cxx root-5.30.01/gui/gui/src/TGSpeedo.cxx ---- root-5.30.01.orig/gui/gui/src/TGSpeedo.cxx 2011-08-18 16:46:02.000000000 +0200 -+++ root-5.30.01/gui/gui/src/TGSpeedo.cxx 2011-08-18 19:28:45.170497323 +0200 -@@ -117,8 +117,7 @@ +diff -ur root-5.34.00.orig/gui/gui/src/TGSpeedo.cxx root-5.34.00/gui/gui/src/TGSpeedo.cxx +--- root-5.34.00.orig/gui/gui/src/TGSpeedo.cxx 2012-06-05 15:31:42.000000000 +0200 ++++ root-5.34.00/gui/gui/src/TGSpeedo.cxx 2012-06-09 16:03:08.260851587 +0200 +@@ -119,8 +119,7 @@ TString sc; Float_t step, mark[5]; @@ -541,20 +541,20 @@ diff -ur root-5.30.01.orig/gui/gui/src/TGSpeedo.cxx root-5.30.01/gui/gui/src/TGS Int_t i, nexe, offset; const TGFont *counterFont = fClient->GetFont("-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*"); -@@ -521,8 +520,7 @@ - if (fImage2 && fImage2->IsValid()) +@@ -528,8 +527,7 @@ delete fImage2; fImage2 = (TImage*)fImage->Clone("fImage2"); + if (!fImage2 || !fImage2->IsValid()) return; - TString fp = gEnv->GetValue("Root.TTFontPath", ""); - TString ar = fp + "/arialbd.ttf"; + TString ar = "arialbd.ttf"; // format counter value Int_t nexe = 0; Int_t ww = fCounter; -@@ -601,8 +599,7 @@ - if (fImage2 && fImage2->IsValid()) +@@ -609,8 +607,7 @@ delete fImage2; fImage2 = (TImage*)fImage->Clone("fImage2"); + if (!fImage2 || !fImage2->IsValid()) return; - TString fp = gEnv->GetValue("Root.TTFontPath", ""); - TString ar = fp + "/arialbd.ttf"; + TString ar = "arialbd.ttf"; diff --git a/root-glibc.patch b/root-glibc.patch new file mode 100644 index 0000000..58b9afd --- /dev/null +++ b/root-glibc.patch @@ -0,0 +1,44 @@ +diff -ur root-5.34.00.orig/build/rmkdepend/main.c root-5.34.00/build/rmkdepend/main.c +--- root-5.34.00.orig/build/rmkdepend/main.c 2012-06-05 15:31:46.000000000 +0200 ++++ root-5.34.00/build/rmkdepend/main.c 2012-06-10 16:03:57.954057521 +0200 +@@ -52,7 +52,7 @@ + #else + #include + #endif +-#if !defined(__hpux) ++#if !defined(__USE_POSIX) && !defined(__hpux) + # if defined(__APPLE__) + # include + # if !defined(MAC_OS_X_VERSION_10_4) +@@ -60,7 +60,7 @@ + # endif + # elif defined(__CYGWIN__) + extern int fchmod(int, mode_t); +-#else ++# else + extern int fchmod(int, int); + # endif + #endif +diff -ur root-5.34.00.orig/cint/tool/rmkdepend/main.c root-5.34.00/cint/tool/rmkdepend/main.c +--- root-5.34.00.orig/cint/tool/rmkdepend/main.c 2012-06-05 15:31:30.000000000 +0200 ++++ root-5.34.00/cint/tool/rmkdepend/main.c 2012-06-10 16:03:58.327061162 +0200 +@@ -52,7 +52,7 @@ + #else + #include + #endif +-#if !defined(__hpux) ++#if !defined(__USE_POSIX) && !defined(__hpux) + #if defined(__APPLE__) + #include + #if !defined(MAC_OS_X_VERSION_10_4) +diff -ur root-5.34.00.orig/core/unix/src/TUnixSystem.cxx root-5.34.00/core/unix/src/TUnixSystem.cxx +--- root-5.34.00.orig/core/unix/src/TUnixSystem.cxx 2012-06-05 15:31:17.000000000 +0200 ++++ root-5.34.00/core/unix/src/TUnixSystem.cxx 2012-06-10 15:53:40.483485520 +0200 +@@ -98,6 +98,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/root.spec b/root.spec index 44d4ab2..f11b43d 100644 --- a/root.spec +++ b/root.spec @@ -26,7 +26,7 @@ %endif Name: root -Version: 5.32.03 +Version: 5.34.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -60,6 +60,8 @@ Patch3: %{name}-xrootd.patch # Fix hardcoded include path # https://savannah.cern.ch/bugs/index.php?91463 Patch4: %{name}-meta.patch +# Fixes for latest glibc headers +Patch5: %{name}-glibc.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 @@ -122,6 +124,8 @@ BuildRequires: dcap-devel BuildRequires: dpm-devel BuildRequires: xrootd-devel BuildRequires: cfitsio-devel +BuildRequires: gfal-devel +BuildRequires: srm-ifce-devel BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran @@ -565,6 +569,13 @@ Group: Applications/Engineering %description io-dcache This package contains the dCache extension for ROOT. +%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. + %package io-rfio Summary: Remote File input/output library for ROOT Group: Applications/Engineering @@ -1036,6 +1047,7 @@ fi %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -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 \ @@ -1138,11 +1150,13 @@ unset QTINC --enable-bonjour \ --enable-clarens \ --enable-dcache \ - --enable-exceptions \ --enable-explicitlink \ --enable-fftw3 \ --enable-fitsio \ --enable-gdml \ + --enable-gfal \ + --with-gfal-incdir=%{_includedir} \ + --with-gfal-libdir=%{_libdir} \ --enable-genvector \ --enable-globus \ --enable-gsl-shared \ @@ -1179,8 +1193,8 @@ unset QTINC --enable-tmva \ --enable-unuran \ --enable-x11 \ - --enable-xml \ --enable-xft \ + --enable-xml \ --enable-xrootd \ --with-xrootd-incdir=%{_includedir}/xrootd \ --with-xrootd-libdir=%{_libdir} \ @@ -1196,7 +1210,7 @@ unset QTINC --disable-castor \ --disable-chirp \ --disable-cling \ - --disable-gfal \ + --disable-cxx11 \ --disable-glite \ --disable-hdfs \ --disable-monalisa \ @@ -1349,7 +1363,6 @@ pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.C rm TFile/P030_TCastorFile.C -rm TFile/P050_TGFALFile.C rm TFile/P060_TChirpFile.C rm TFile/P070_TAlienFile.C rm TFile/P110_THDFSFile.C @@ -1371,6 +1384,7 @@ rm TVirtualX/P030_TGWin32.C %if %{?fedora}%{!?fedora:0} < 9 && %{?rhel}%{!?rhel:0} < 6 rm TVirtualX/P040_TGQt.C %endif +rm TVirtualX/P050_TGQuartz.C rmdir TAFS rmdir TDataProgressDialog rmdir TGrid @@ -1401,7 +1415,7 @@ for module in `find * -name Module.mk` ; do done # ... and merge some of them -cat includelist-core-[^w]* > includelist-core +cat includelist-core-{[^mw],m[^a]}* > includelist-core cat includelist-geom-geom* > includelist-geom cat includelist-roofit-roo* > includelist-roofit cat includelist-gui-qt* > includelist-gui-qt @@ -1584,6 +1598,8 @@ fi %postun io -p /sbin/ldconfig %post io-dcache -p /sbin/ldconfig %postun io-dcache -p /sbin/ldconfig +%post io-gfal -p /sbin/ldconfig +%postun io-gfal -p /sbin/ldconfig %post io-rfio -p /sbin/ldconfig %postun io-rfio -p /sbin/ldconfig %post io-sql -p /sbin/ldconfig @@ -2013,6 +2029,11 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C +%files io-gfal -f includelist-io-gfal +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGFAL.* +%{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C + %files io-rfio -f includelist-io-rfio %defattr(-,root,root,-) %{_libdir}/%{name}/libRFIO.* @@ -2295,6 +2316,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Jun 09 2012 Mattias Ellert - 5.34.00-1 +- Update to 5.34.00 +- New sub-package: root-io-gfal + * Thu May 17 2012 Mattias Ellert - 5.32.03-1 - Update to 5.32.03 diff --git a/sources b/sources index 94d2889..71bafd6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -18a3b912155d2ec6e493d335a23d7abe root-5.32.03.tar.gz +a2b2be237fbb8f3aed72c00b8d2aeee6 root-5.34.00.tar.gz From 380269c3e75c333b9cdde00a5ced7e8cbf2deb5d Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 29 Jun 2012 06:51:04 +0200 Subject: [PATCH 018/344] Backport fixes for using aclic with versioned libraries - New sub-package: root-io-gfal --- root-aclic-versioned-libs.patch | 82 +++++++++++++++++++++++++++++++++ root.spec | 32 +++++++++++-- 2 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 root-aclic-versioned-libs.patch diff --git a/root-aclic-versioned-libs.patch b/root-aclic-versioned-libs.patch new file mode 100644 index 0000000..935bf49 --- /dev/null +++ b/root-aclic-versioned-libs.patch @@ -0,0 +1,82 @@ +diff -ur root-5.30.06.orig/core/unix/src/TUnixSystem.cxx root-5.30.06/core/unix/src/TUnixSystem.cxx +--- root-5.30.06.orig/core/unix/src/TUnixSystem.cxx 2012-01-10 16:14:31.000000000 +0100 ++++ root-5.30.06/core/unix/src/TUnixSystem.cxx 2012-06-29 06:29:42.030017840 +0200 +@@ -440,6 +440,9 @@ + + TString lib = _dyld_get_image_name(i++); + ++ TRegexp sovers = "libCore\\.[0-9]+\\.*[0-9]*\\.so"; ++ TRegexp dyvers = "libCore\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ + #ifndef ROOTPREFIX + #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR + // first loaded is the app so set ROOTSYS to app bundle +@@ -454,7 +457,8 @@ + } + } + #else +- if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so")) { ++ if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so") || ++ lib.Index(sovers) != kNPOS || lib.Index(dyvers) != kNPOS) { + char respath[kMAXPATHLEN]; + if (!realpath(lib, respath)) { + if (!gSystem->Getenv("ROOTSYS")) +@@ -476,9 +480,23 @@ + + // add all libs loaded before libSystem.B.dylib + if (!gotFirstSo && (lib.EndsWith(".dylib") || lib.EndsWith(".so"))) { +- if (linkedDylibs.Length()) +- linkedDylibs += " "; +- linkedDylibs += lib; ++ sovers = "\\.[0-9]+\\.*[0-9]*\\.so"; ++ Ssiz_t idx = lib.Index(sovers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".so"; ++ } ++ dyvers = "\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ idx = lib.Index(dyvers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".dylib"; ++ } ++ if (!gSystem->AccessPathName(lib, kReadPermission)) { ++ if (linkedDylibs.Length()) ++ linkedDylibs += " "; ++ linkedDylibs += lib; ++ } + } + } + #endif +@@ -2838,9 +2856,11 @@ + delete [] exe; + exe = longerexe; + } ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #else + const char *cLDD="ldd"; + const char *cSOEXT=".so"; ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #endif + FILE *p = OpenPipe(TString::Format("%s %s", cLDD, exe), "r"); + TString ldd; +@@ -2858,10 +2878,15 @@ + } + if (solibName) { + TString solib = solibName->String(); +- if (solib.EndsWith(cSOEXT)) { +- if (!linkedLibs.IsNull()) +- linkedLibs += " "; +- linkedLibs += solib; ++ Ssiz_t idx = solib.Index(sovers); ++ if (solib.EndsWith(cSOEXT) || idx != kNPOS) { ++ if (idx != kNPOS) ++ solib.Remove(idx+3); ++ if (!AccessPathName(solib, kReadPermission)) { ++ if (!linkedLibs.IsNull()) ++ linkedLibs += " "; ++ linkedLibs += solib; ++ } + } + } + delete tok; diff --git a/root.spec b/root.spec index 35271e2..89f6964 100644 --- a/root.spec +++ b/root.spec @@ -20,7 +20,7 @@ Name: root Version: 5.30.06 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -52,6 +52,8 @@ Patch3: %{name}-xrootd.patch # Fix hardcoded include path # https://savannah.cern.ch/bugs/index.php?91463 Patch4: %{name}-meta.patch +# Backport fixes for using aclic with versioned libraries +Patch5: %{name}-aclic-versioned-libs.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 @@ -114,6 +116,8 @@ BuildRequires: dcap-devel BuildRequires: dpm-devel BuildRequires: xrootd-devel BuildRequires: cfitsio-devel +BuildRequires: gfal-devel +BuildRequires: srm-ifce-devel BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran @@ -557,6 +561,13 @@ Group: Applications/Engineering %description io-dcache This package contains the dCache extension for ROOT. +%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. + %package io-rfio Summary: Remote File input/output library for ROOT Group: Applications/Engineering @@ -1028,6 +1039,7 @@ fi %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -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 \ @@ -1135,6 +1147,9 @@ unset QTINC --enable-fftw3 \ --enable-fitsio \ --enable-gdml \ + --enable-gfal \ + --with-gfal-incdir=%{_includedir} \ + --with-gfal-libdir=%{_libdir} \ --enable-genvector \ --enable-globus \ --enable-gsl-shared \ @@ -1171,8 +1186,8 @@ unset QTINC --enable-tmva \ --enable-unuran \ --enable-x11 \ - --enable-xml \ --enable-xft \ + --enable-xml \ --enable-xrootd \ --with-xrootd-incdir=%{_includedir}/xrootd \ --with-xrootd-libdir=%{_libdir} \ @@ -1188,7 +1203,6 @@ unset QTINC --disable-castor \ --disable-chirp \ --disable-cling \ - --disable-gfal \ --disable-glite \ --disable-hdfs \ --disable-monalisa \ @@ -1348,7 +1362,6 @@ pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.C rm TFile/P030_TCastorFile.C -rm TFile/P050_TGFALFile.C rm TFile/P060_TChirpFile.C rm TFile/P070_TAlienFile.C rm TFile/P110_THDFSFile.C @@ -1582,6 +1595,8 @@ fi %postun io -p /sbin/ldconfig %post io-dcache -p /sbin/ldconfig %postun io-dcache -p /sbin/ldconfig +%post io-gfal -p /sbin/ldconfig +%postun io-gfal -p /sbin/ldconfig %post io-rfio -p /sbin/ldconfig %postun io-rfio -p /sbin/ldconfig %post io-sql -p /sbin/ldconfig @@ -2010,6 +2025,11 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C +%files io-gfal -f includelist-io-gfal +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGFAL.* +%{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C + %files io-rfio -f includelist-io-rfio %defattr(-,root,root,-) %{_libdir}/%{name}/libRFIO.* @@ -2290,6 +2310,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Jun 29 2012 Mattias Ellert - 5.30.06-3 +- Backport fixes for using aclic with versioned libraries +- New sub-package: root-io-gfal + * Sat Mar 17 2012 Mattias Ellert - 5.30.06-2 - Rebuild for xrootd 3.1.1 From bb8ff47db553badef7357648a282bab82045662c Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 29 Jun 2012 07:42:58 +0200 Subject: [PATCH 019/344] Backport fixes for using aclic with versioned libraries - New sub-package: root-io-gfal --- root-aclic-versioned-libs.patch | 82 +++++++++++++++++++++++++++++++++ root-html.C | 2 +- root-meta.patch | 44 ++++++++++++++++++ root.spec | 62 +++++++++++++++++++++++-- 4 files changed, 185 insertions(+), 5 deletions(-) create mode 100644 root-aclic-versioned-libs.patch create mode 100644 root-meta.patch diff --git a/root-aclic-versioned-libs.patch b/root-aclic-versioned-libs.patch new file mode 100644 index 0000000..6582c7d --- /dev/null +++ b/root-aclic-versioned-libs.patch @@ -0,0 +1,82 @@ +diff -ur root-5.28.00h.orig/core/unix/src/TUnixSystem.cxx root-5.28.00h/core/unix/src/TUnixSystem.cxx +--- root-5.28.00h.orig/core/unix/src/TUnixSystem.cxx 2011-11-24 17:12:39.000000000 +0100 ++++ root-5.28.00h/core/unix/src/TUnixSystem.cxx 2012-06-29 07:13:37.055012978 +0200 +@@ -425,6 +425,9 @@ + + TString lib = _dyld_get_image_name(i++); + ++ TRegexp sovers = "libCore\\.[0-9]+\\.*[0-9]*\\.so"; ++ TRegexp dyvers = "libCore\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ + #ifndef ROOTPREFIX + #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR + // first loaded is the app so set ROOTSYS to app bundle +@@ -440,7 +443,8 @@ + } + } + #else +- if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so")) { ++ if (lib.EndsWith("libCore.dylib") || lib.EndsWith("libCore.so") || ++ lib.Index(sovers) != kNPOS || lib.Index(dyvers) != kNPOS) { + char respath[kMAXPATHLEN]; + if (!realpath(lib, respath)) { + if (!gSystem->Getenv("ROOTSYS")) +@@ -462,9 +466,23 @@ + + // add all libs loaded before libSystem.B.dylib + if (!gotFirstSo && (lib.EndsWith(".dylib") || lib.EndsWith(".so"))) { +- if (linkedDylibs.Length()) +- linkedDylibs += " "; +- linkedDylibs += lib; ++ sovers = "\\.[0-9]+\\.*[0-9]*\\.so"; ++ Ssiz_t idx = lib.Index(sovers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".so"; ++ } ++ dyvers = "\\.[0-9]+\\.*[0-9]*\\.dylib"; ++ idx = lib.Index(dyvers); ++ if (idx != kNPOS) { ++ lib.Remove(idx); ++ lib += ".dylib"; ++ } ++ if (!gSystem->AccessPathName(lib, kReadPermission)) { ++ if (linkedDylibs.Length()) ++ linkedDylibs += " "; ++ linkedDylibs += lib; ++ } + } + } + #endif +@@ -2799,9 +2817,11 @@ + delete [] exe; + exe = longerexe; + } ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #else + const char *cLDD="ldd"; + const char *cSOEXT=".so"; ++ TRegexp sovers = "\\.so\\.[0-9]+"; + #endif + FILE *p = OpenPipe(TString::Format("%s %s", cLDD, exe), "r"); + TString ldd; +@@ -2819,10 +2839,15 @@ + } + if (solibName) { + TString solib = solibName->String(); +- if (solib.EndsWith(cSOEXT)) { +- if (!linkedLibs.IsNull()) +- linkedLibs += " "; +- linkedLibs += solib; ++ Ssiz_t idx = solib.Index(sovers); ++ if (solib.EndsWith(cSOEXT) || idx != kNPOS) { ++ if (idx != kNPOS) ++ solib.Remove(idx+3); ++ if (!AccessPathName(solib, kReadPermission)) { ++ if (!linkedLibs.IsNull()) ++ linkedLibs += " "; ++ linkedLibs += solib; ++ } + } + } + delete tok; diff --git a/root-html.C b/root-html.C index 413a8d3..a481a24 100644 --- a/root-html.C +++ b/root-html.C @@ -10,9 +10,9 @@ gInterpreter->AddIncludePath("@PWD@/cint/cint/include"); gInterpreter->AddIncludePath("@PWD@/cint/cint/stl"); gInterpreter->AddIncludePath("@PWD@/cint/cint/lib"); + #include #include #include - #include #include gROOT->GetPluginManager()->LoadHandlersFromPluginDirs(""); gROOT->GetPluginManager()->AddHandler("TVirtualPS","image", diff --git a/root-meta.patch b/root-meta.patch new file mode 100644 index 0000000..6395e3a --- /dev/null +++ b/root-meta.patch @@ -0,0 +1,44 @@ +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 @@ + ProcessLine("#define ROOT_TError 0"); + ProcessLine("#define ROOT_TGenericClassInfo 0"); + +- TString include; +- // Add the root include directory to list searched by default ++ Int_t includes = gEnv->GetValue("Cint.Includes", 1); ++ if (includes > 0) { ++ TString include; ++ // Add the root include directory to list searched by default + #ifndef ROOTINCDIR +- include = gSystem->Getenv("ROOTSYS"); +- include.Append("/include"); ++ include = gSystem->Getenv("ROOTSYS"); ++ include.Append("/include"); + #else +- include = ROOTINCDIR; ++ include = ROOTINCDIR; + #endif +- TCint::AddIncludePath(include); ++ TCint::AddIncludePath(include); + +- // Allow the usage of ClassDef and ClassImp in interpreted macros +- // if RtypesCint.h can be found (think of static executable without include/) +- char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); +- if (whichTypesCint) { +- ProcessLine("#include "); +- delete[] whichTypesCint; +- } ++ // Allow the usage of ClassDef and ClassImp in interpreted macros ++ // if RtypesCint.h can be found (think of static executable without ++ // include/) ++ char* whichTypesCint = gSystem->Which(include, "RtypesCint.h"); ++ if (whichTypesCint) { ++ ProcessLine("#include "); ++ delete[] whichTypesCint; ++ } ++ } + + } + diff --git a/root.spec b/root.spec index af5c0b1..1afafdf 100644 --- a/root.spec +++ b/root.spec @@ -7,6 +7,16 @@ %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_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]' 2>/dev/null)} %if %($(pkg-config emacs) ; echo $?) @@ -20,7 +30,7 @@ Name: root Version: 5.28.00h %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -53,6 +63,11 @@ Patch3: %{name}-cern-ppc.patch Patch4: %{name}-listbox-height.patch # Fixes for external xrootd Patch5: %{name}-xrootd.patch +# Fix hardcoded include path +# https://savannah.cern.ch/bugs/index.php?91463 +Patch6: %{name}-meta.patch +# Backport fixes for using aclic with versioned libraries +Patch7: %{name}-aclic-versioned-libs.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 @@ -114,6 +129,10 @@ BuildRequires: dcap-devel BuildRequires: dpm-devel BuildRequires: xrootd-devel BuildRequires: cfitsio-devel +%if %{gfal} +BuildRequires: gfal-devel +BuildRequires: srm-ifce-devel +%endif BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran @@ -301,7 +320,7 @@ provide a Python interface to ROOT, and a ROOT interface to Python. Summary: Ruby extension for ROOT Group: Applications/Engineering Provides: ruby(libRuby) = %{version} -requires: ruby(abi) = 1.8 +Requires: ruby(abi) = 1.8 %description ruby This package contains the Ruby extension for ROOT. The interface @@ -556,6 +575,15 @@ 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 + %package io-rfio Summary: Remote File input/output library for ROOT Group: Applications/Engineering @@ -1021,6 +1049,8 @@ fi %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -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 \ @@ -1126,6 +1156,13 @@ unset QTINC --enable-fftw3 \ --enable-fitsio \ --enable-gdml \ +%if %{gfal} + --enable-gfal \ + --with-gfal-incdir=%{_includedir} \ + --with-gfal-libdir=%{_libdir} \ +%else + --disable-gfal \ +%endif --enable-genvector \ --enable-globus \ --enable-gsl-shared \ @@ -1162,8 +1199,8 @@ unset QTINC --enable-tmva \ --enable-unuran \ --enable-x11 \ - --enable-xml \ --enable-xft \ + --enable-xml \ --enable-xrootd \ --with-xrootd-incdir=%{_includedir}/xrootd \ --with-xrootd-libdir=%{_libdir} \ @@ -1179,7 +1216,6 @@ unset QTINC --disable-castor \ --disable-chirp \ --disable-cling \ - --disable-gfal \ --disable-glite \ --disable-hdfs \ --disable-monalisa \ @@ -1338,7 +1374,9 @@ pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.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 rm TFile/P110_THDFSFile.C @@ -1373,6 +1411,7 @@ echo %{_libdir}/%{name} > \ # Generate documentation echo Rint.Includes: 0 > .rootrc +echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C @@ -1571,6 +1610,10 @@ 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 %post io-rfio -p /sbin/ldconfig %postun io-rfio -p /sbin/ldconfig %post io-sql -p /sbin/ldconfig @@ -1998,6 +2041,13 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C +%if %{gfal} +%files io-gfal -f includelist-io-gfal +%defattr(-,root,root,-) +%{_libdir}/%{name}/libGFAL.* +%{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C +%endif + %files io-rfio -f includelist-io-rfio %defattr(-,root,root,-) %{_libdir}/%{name}/libRFIO.* @@ -2273,6 +2323,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Jun 29 2012 Mattias Ellert - 5.28.00h-2 +- Backport fixes for using aclic with versioned libraries +- New sub-package: root-io-gfal + * Mon Feb 13 2012 Mattias Ellert - 5.28.00h-1 - Update to 5.28.00h From 13ab762d36110c994f825c9b1474b97d1c0a5caf Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 5 Jul 2012 22:22:04 +0200 Subject: [PATCH 020/344] Do the glibc 2.16 patch properly --- root-glibc.patch | 33 ++++++++++++--------------------- root.spec | 5 ++++- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/root-glibc.patch b/root-glibc.patch index 58b9afd..b2da159 100644 --- a/root-glibc.patch +++ b/root-glibc.patch @@ -1,39 +1,30 @@ diff -ur root-5.34.00.orig/build/rmkdepend/main.c root-5.34.00/build/rmkdepend/main.c --- root-5.34.00.orig/build/rmkdepend/main.c 2012-06-05 15:31:46.000000000 +0200 -+++ root-5.34.00/build/rmkdepend/main.c 2012-06-10 16:03:57.954057521 +0200 -@@ -52,7 +52,7 @@ - #else - #include - #endif --#if !defined(__hpux) -+#if !defined(__USE_POSIX) && !defined(__hpux) - # if defined(__APPLE__) - # include - # if !defined(MAC_OS_X_VERSION_10_4) ++++ root-5.34.00/build/rmkdepend/main.c 2012-07-05 20:42:58.938953353 +0200 @@ -60,7 +60,7 @@ # endif # elif defined(__CYGWIN__) extern int fchmod(int, mode_t); -#else -+# else ++# elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) extern int fchmod(int, int); # endif #endif diff -ur root-5.34.00.orig/cint/tool/rmkdepend/main.c root-5.34.00/cint/tool/rmkdepend/main.c --- root-5.34.00.orig/cint/tool/rmkdepend/main.c 2012-06-05 15:31:30.000000000 +0200 -+++ root-5.34.00/cint/tool/rmkdepend/main.c 2012-06-10 16:03:58.327061162 +0200 -@@ -52,7 +52,7 @@ - #else - #include - #endif --#if !defined(__hpux) -+#if !defined(__USE_POSIX) && !defined(__hpux) - #if defined(__APPLE__) - #include ++++ root-5.34.00/cint/tool/rmkdepend/main.c 2012-07-05 20:42:58.492949104 +0200 +@@ -58,7 +58,7 @@ #if !defined(MAC_OS_X_VERSION_10_4) + extern int fchmod(); + #endif +-#else ++#elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) + extern int fchmod(); + #endif + #endif diff -ur root-5.34.00.orig/core/unix/src/TUnixSystem.cxx root-5.34.00/core/unix/src/TUnixSystem.cxx --- root-5.34.00.orig/core/unix/src/TUnixSystem.cxx 2012-06-05 15:31:17.000000000 +0200 -+++ root-5.34.00/core/unix/src/TUnixSystem.cxx 2012-06-10 15:53:40.483485520 +0200 ++++ root-5.34.00/core/unix/src/TUnixSystem.cxx 2012-07-05 20:29:29.969242837 +0200 @@ -98,6 +98,7 @@ #include #include diff --git a/root.spec b/root.spec index f11b43d..ea9bdfd 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.34.00 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2316,6 +2316,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Jul 05 2012 Mattias Ellert - 5.34.00-2 +- Do the glibc 2.16 patch properly + * Sat Jun 09 2012 Mattias Ellert - 5.34.00-1 - Update to 5.34.00 - New sub-package: root-io-gfal From da06ad6977934a9a0a4cbcd3ad782bf6d96a5fb8 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 18 Jul 2012 10:01:47 +0200 Subject: [PATCH 021/344] Update to 5.34.01 - Remove sub-packages root-clarens and root-peac (dropped by upstream) --- root.spec | 54 ++++++++++-------------------------------------------- sources | 2 +- 2 files changed, 11 insertions(+), 45 deletions(-) diff --git a/root.spec b/root.spec index ea9bdfd..b657696 100644 --- a/root.spec +++ b/root.spec @@ -26,9 +26,9 @@ %endif Name: root -Version: 5.34.00 +Version: 5.34.01 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -89,7 +89,6 @@ BuildRequires: libtiff-devel BuildRequires: ncurses-devel BuildRequires: avahi-compat-libdns_sd-devel BuildRequires: avahi-devel -BuildRequires: xmlrpc-c-devel BuildRequires: libxml2-devel BuildRequires: fftw-devel BuildRequires: gsl-devel @@ -855,6 +854,8 @@ the xrootd server. %package proof Summary: PROOF extension for ROOT Group: Applications/Engineering +Obsoletes: %{name}-clarens < 5.34.01 +Obsoletes: %{name}-peac < 5.34.01 %description proof This package contains the proof extension for ROOT. This provides a @@ -882,31 +883,6 @@ Group: Applications/Engineering This package contains a library for browsing an interactive PROOF session in ROOT. -%package clarens -Summary: Clarens extension for ROOT -Group: Applications/Engineering - -%description clarens -This package contains the Clarens extension for ROOT, for use in a -GRID enabled analysis environment. - -The Clarens Grid-Enabled Web Services Framework is an open source, -secure, high-performance "portal" for ubiquitous access to data and -computational resources provided by computing grids. - -%package peac -Summary: PEAC extension for ROOT - run-time libraries -Group: Applications/Engineering - -%description peac -This package contains the PEAC (Proof Enabled Analysis Center) -extension for ROOT. - -PEAC is an interactive distributed analysis framework that uses -Clarens as a "glue" protocol to advertise and communicate amongst -SAM, Global Manager (GM), Local Manager (LM), DCache, and PROOF -services. - %package xproof Summary: XPROOF extension for ROOT Group: Applications/Engineering @@ -1148,7 +1124,6 @@ unset QTINC --enable-asimage \ --enable-astiff \ --enable-bonjour \ - --enable-clarens \ --enable-dcache \ --enable-explicitlink \ --enable-fftw3 \ @@ -1169,7 +1144,6 @@ unset QTINC --enable-mysql \ --enable-odbc \ --enable-opengl \ - --enable-peac \ --enable-pgsql \ --enable-python \ %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 @@ -1664,10 +1638,6 @@ fi %postun proof -p /sbin/ldconfig %post proof-sessionviewer -p /sbin/ldconfig %postun proof-sessionviewer -p /sbin/ldconfig -%post clarens -p /sbin/ldconfig -%postun clarens -p /sbin/ldconfig -%post peac -p /sbin/ldconfig -%postun peac -p /sbin/ldconfig %post xproof -p /sbin/ldconfig %postun xproof -p /sbin/ldconfig %post roofit -p /sbin/ldconfig @@ -1735,6 +1705,8 @@ fi %{_datadir}/%{name}/system.rootdaemonrc %{_datadir}/%{name}/system.rootrc %{_mandir}/man1/system.rootdaemonrc.1* +%dir %{_datadir}/%{name}/cmake +%{_datadir}/%{name}/cmake/FindROOT.cmake %dir %{_datadir}/%{name}/macros %{_datadir}/%{name}/macros/Dialogs.C %dir %{_datadir}/%{name}/plugins @@ -2244,16 +2216,6 @@ fi %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C -%files clarens -f includelist-proof-clarens -%defattr(-,root,root,-) -%{_libdir}/%{name}/libClarens.* - -%files peac -f includelist-proof-peac -%defattr(-,root,root,-) -%{_libdir}/%{name}/libPeac.* -%{_libdir}/%{name}/libPeacGui.* -%{_datadir}/%{name}/plugins/TProof/P030_TProofPEAC.C - %files xproof -f includelist-proof-proofx %defattr(-,root,root,-) %{_libdir}/%{name}/libProofx.* @@ -2316,6 +2278,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Jul 17 2012 Mattias Ellert - 5.34.01-1 +- Update to 5.34.01 +- Remove sub-packages root-clarens and root-peac (dropped by upstream) + * Thu Jul 05 2012 Mattias Ellert - 5.34.00-2 - Do the glibc 2.16 patch properly diff --git a/sources b/sources index 71bafd6..68f7a0a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a2b2be237fbb8f3aed72c00b8d2aeee6 root-5.34.00.tar.gz +4e0aae9ef9c21985973fca3dadaec9b8 root-5.34.01.tar.gz From 5f695dcd1adf6805085adb687efef7a6f50ac726 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 28 Jul 2012 23:52:02 +0200 Subject: [PATCH 022/344] Rebuild for glew 1.7 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index b657696..dd0db24 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.34.01 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2278,6 +2278,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Jul 28 2012 Mattias Ellert - 5.34.01-2 +- Rebuild for glew 1.7 + * Tue Jul 17 2012 Mattias Ellert - 5.34.01-1 - Update to 5.34.01 - Remove sub-packages root-clarens and root-peac (dropped by upstream) From 03af99697dc20a1a0b71803273d2f3f574cd07e8 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 12 Oct 2012 16:19:27 +0200 Subject: [PATCH 023/344] Update to 5.34.02 --- root.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/root.spec b/root.spec index dd0db24..98aa869 100644 --- a/root.spec +++ b/root.spec @@ -26,9 +26,9 @@ %endif Name: root -Version: 5.34.01 +Version: 5.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2278,6 +2278,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Oct 12 2012 Mattias Ellert - 5.34.02-1 +- Update to 5.34.02 + * Sat Jul 28 2012 Mattias Ellert - 5.34.01-2 - Rebuild for glew 1.7 diff --git a/sources b/sources index 68f7a0a..49f0898 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4e0aae9ef9c21985973fca3dadaec9b8 root-5.34.01.tar.gz +cf47c9e9f2b0b6b77eb2ded0f6acba94 root-5.34.02.tar.gz From 24a64f44438ac75a5726f9b66864a598d50fdb05 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 13 Oct 2012 16:45:40 +0200 Subject: [PATCH 024/344] Compilation and documentation fixes --- root-gfal-bits.patch | 15 +++++++++++++++ root-tclass-fix.patch | 24 ++++++++++++++++++++++++ root-thtml-revert.patch | 18 ++++++++++++++++++ root.spec | 9 +++++++++ 4 files changed, 66 insertions(+) create mode 100644 root-gfal-bits.patch create mode 100644 root-tclass-fix.patch create mode 100644 root-thtml-revert.patch diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch new file mode 100644 index 0000000..ab7afff --- /dev/null +++ b/root-gfal-bits.patch @@ -0,0 +1,15 @@ +diff -ur root-5.34.02.orig/io/gfal/src/TGFALFile.cxx root-5.34.02/io/gfal/src/TGFALFile.cxx +--- root-5.34.02.orig/io/gfal/src/TGFALFile.cxx 2012-09-21 16:29:07.000000000 +0200 ++++ root-5.34.02/io/gfal/src/TGFALFile.cxx 2012-10-12 22:59:42.785689152 +0200 +@@ -60,6 +60,11 @@ + // // + ////////////////////////////////////////////////////////////////////////// + ++#ifdef _FILE_OFFSET_BITS ++#undef _FILE_OFFSET_BITS ++#endif ++#define _FILE_OFFSET_BITS 64 ++ + #include "TGFALFile.h" + #include "TROOT.h" + #include "TUrl.h" diff --git a/root-tclass-fix.patch b/root-tclass-fix.patch new file mode 100644 index 0000000..98c11bf --- /dev/null +++ b/root-tclass-fix.patch @@ -0,0 +1,24 @@ +--- v5-34-00-patches/core/meta/src/TClass.cxx 2012/08/24 14:30:19 45695 ++++ v5-34-00-patches/core/meta/src/TClass.cxx 2012/10/05 21:03:30 46365 +@@ -2544,7 +2544,10 @@ + if (objType) { + const char *typdfName = objType->GetTypeName(); + if (typdfName && strcmp(typdfName, name)) { +- cl = TClass::GetClass(typdfName, load); ++ TString alternateName(typdfName); ++ // TClass::GetClass might get call GetTypeName and thus ++ // re-use the static storage use by GetTypeName! ++ cl = TClass::GetClass(alternateName, load); + return cl; + } + } +@@ -3206,9 +3209,6 @@ + fRealData->Delete(); + delete fRealData; fRealData=0; + +- if (fStreamerInfo) +- fStreamerInfo->Delete(); +- delete fStreamerInfo; fStreamerInfo=0; + } + } + diff --git a/root-thtml-revert.patch b/root-thtml-revert.patch new file mode 100644 index 0000000..a1d1960 --- /dev/null +++ b/root-thtml-revert.patch @@ -0,0 +1,18 @@ +--- v5-34-00-patches/html/src/THtml.cxx 2012/08/29 09:33:39 45728 ++++ v5-34-00-patches/html/src/THtml.cxx 2012/05/08 15:21:21 44178 +@@ -310,13 +310,11 @@ + if (!filename.EndsWith(fsentry->GetName())) + continue; + fsentry->GetFullName(filesysname, kTRUE); // get the short version +- filename = filesysname; + if (!filename.EndsWith(filesysname)) { +- // It's something - let's see whether we find something better +- // else leave it as plan B. This helps finding Reflex sources. +- //filesysname = ""; ++ filesysname = ""; + continue; + } ++ filename = filesysname; + fsentry->GetFullName(filesysname, kFALSE); // get the long version + if (fse) *fse = fsentry; + break; diff --git a/root.spec b/root.spec index 98aa869..b7368b8 100644 --- a/root.spec +++ b/root.spec @@ -62,6 +62,12 @@ Patch3: %{name}-xrootd.patch Patch4: %{name}-meta.patch # Fixes for latest glibc headers Patch5: %{name}-glibc.patch +# Missing Include +Patch6: %{name}-gfal-bits.patch +# Backport meta fixes +Patch7: %{name}-tclass-fix.patch +# Revert THtml change +Patch8: %{name}-thtml-revert.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 @@ -1024,6 +1030,9 @@ fi %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -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 \ From 3f94641dcd0526f2d121e355c9ae196d6f3b12cf Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 13 Dec 2012 13:41:05 -0500 Subject: [PATCH 025/344] Rebuild for glew 1.9.0 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index b7368b8..b1f1191 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2287,6 +2287,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Dec 13 2012 Adam Jackson - 5.34.02-2 +- Rebuild for glew 1.9.0 + * Fri Oct 12 2012 Mattias Ellert - 5.34.02-1 - Update to 5.34.02 From acb5cf4e3f9e1f211a2ff1c25f3119a67abf3093 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 14 Feb 2013 15:47:52 -0600 Subject: [PATCH 026/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index b1f1191..521b261 100644 --- a/root.spec +++ b/root.spec @@ -28,7 +28,7 @@ Name: root Version: 5.34.02 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2287,6 +2287,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Feb 14 2013 Fedora Release Engineering - 5.34.02-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Thu Dec 13 2012 Adam Jackson - 5.34.02-2 - Rebuild for glew 1.9.0 From 86f1cc80eeec0145ac1b9f70fa798ebe38c3e4b5 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 8 Mar 2013 07:10:26 +0100 Subject: [PATCH 027/344] Update to 5.34.05 - Rebuild for xrootd 3.3 - Patch for latest graphviz (libcgraph) - Drop patches root-glibc.patch and root-tclass-fix.patch --- root-fontconfig.patch | 1001 ++++++++++++++++++++++++++++++----- root-gfal-bits.patch | 24 +- root-glibc.patch | 35 -- root-gviz.patch | 116 ++++ root-no-extra-formats.patch | 20 + root-rev48681.patch | 199 +++++++ root-rev48831.patch | 619 ++++++++++++++++++++++ root-tclass-fix.patch | 24 - root.spec | 83 ++- sources | 2 +- 10 files changed, 1889 insertions(+), 234 deletions(-) delete mode 100644 root-glibc.patch create mode 100644 root-gviz.patch create mode 100644 root-no-extra-formats.patch create mode 100644 root-rev48681.patch create mode 100644 root-rev48831.patch delete mode 100644 root-tclass-fix.patch diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 6609c76..4c333e9 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,9 +1,12 @@ -diff -ur root-5.34.00.orig/core/base/src/TApplication.cxx root-5.34.00/core/base/src/TApplication.cxx ---- root-5.34.00.orig/core/base/src/TApplication.cxx 2012-06-05 15:31:18.000000000 +0200 -+++ root-5.34.00/core/base/src/TApplication.cxx 2012-06-09 16:01:50.212196155 +0200 -@@ -239,20 +239,9 @@ +diff -ur root-5.34.05.orig/core/base/src/TApplication.cxx root-5.34.05/core/base/src/TApplication.cxx +--- root-5.34.05.orig/core/base/src/TApplication.cxx 2013-02-14 23:27:37.000000000 +0100 ++++ root-5.34.05/core/base/src/TApplication.cxx 2013-02-26 19:27:54.452632349 +0100 +@@ -237,22 +237,11 @@ + LoadGraphicsLibs(); + // Try to load TrueType font renderer. Only try to load if not in batch - // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently +- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently ++ // mode and Root.UseTTFonts is true. Abort silently // if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib. - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -#ifdef TTFFONTDIR @@ -31,22 +34,45 @@ diff -ur root-5.34.00.orig/core/base/src/TApplication.cxx root-5.34.00/core/base // Create WM dependent application environment if (fAppImp) -diff -ur root-5.34.00.orig/graf2d/graf/Module.mk root-5.34.00/graf2d/graf/Module.mk ---- root-5.34.00.orig/graf2d/graf/Module.mk 2012-06-05 15:31:46.000000000 +0200 -+++ root-5.34.00/graf2d/graf/Module.mk 2012-06-09 16:01:50.212196155 +0200 -@@ -45,7 +45,7 @@ +diff -ur root-5.34.05.orig/graf2d/graf/inc/TTF.h root-5.34.05/graf2d/graf/inc/TTF.h +--- root-5.34.05.orig/graf2d/graf/inc/TTF.h 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/graf/inc/TTF.h 2013-02-26 19:27:54.452632349 +0100 +@@ -71,9 +71,8 @@ + static FT_BBox fgCBox; // string control box + static FT_CharMap fgCharMap[kTTMaxFonts]; // font character map + static Int_t fgCurFontIdx; // current font index +- static Int_t fgSymbItaFontIdx; // Symbol italic font index + static Int_t fgFontCount; // number of fonts loaded +- static char *fgFontName[kTTMaxFonts]; // font name ++ static Int_t fgFontID[kTTMaxFonts]; // font ID + 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.05.orig/graf2d/graf/Module.mk root-5.34.05/graf2d/graf/Module.mk +--- root-5.34.05.orig/graf2d/graf/Module.mk 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/graf/Module.mk 2013-02-26 19:27:54.452632349 +0100 +@@ -46,7 +46,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ "$(GRAFO) $(GRAFDO)" \ -- "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GRAFLIBEXTRA)" -+ "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GRAFLIBEXTRA) -lfontconfig" +- "$(GRAFLIBEXTRA) $(MATHTEXTLIB) $(FREETYPELDFLAGS) $(FREETYPELIB)" ++ "$(GRAFLIBEXTRA) $(MATHTEXTLIB) $(FREETYPELDFLAGS) $(FREETYPELIB) -lfontconfig" $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/TTF.cxx ---- root-5.34.00.orig/graf2d/graf/src/TTF.cxx 2012-06-05 15:31:46.000000000 +0200 -+++ root-5.34.00/graf2d/graf/src/TTF.cxx 2012-06-09 16:01:50.261196568 +0200 -@@ -26,6 +26,7 @@ +diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/TTF.cxx +--- root-5.34.05.orig/graf2d/graf/src/TTF.cxx 2013-02-14 23:27:52.000000000 +0100 ++++ root-5.34.05/graf2d/graf/src/TTF.cxx 2013-02-26 19:36:07.971088035 +0100 +@@ -17,15 +17,13 @@ + // // + ////////////////////////////////////////////////////////////////////////// + +-// RConfigure.h is needed for TTFFONTDIR +-#include "RConfigure.h" +- + #include "TTF.h" + #include "TSystem.h" + #include "TEnv.h" #include "TMath.h" #include "TError.h" @@ -54,24 +80,216 @@ diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/ // to scale fonts to the same size as the old TT version const Float_t kScale = 0.93376068; -@@ -112,10 +113,13 @@ +@@ -40,10 +38,9 @@ + Int_t TTF::fgWidth = 0; + Int_t TTF::fgAscent = 0; + Int_t TTF::fgCurFontIdx = -1; +-Int_t TTF::fgSymbItaFontIdx = -1; + Int_t TTF::fgFontCount = 0; + Int_t TTF::fgNumGlyphs = 0; +-char *TTF::fgFontName[kTTMaxFonts]; ++Int_t TTF::fgFontID[kTTMaxFonts]; + FT_Matrix *TTF::fgRotMatrix; + FT_Library TTF::fgLibrary; + FT_BBox TTF::fgCBox; +@@ -87,7 +84,6 @@ + if (!fgInit) return; + + for (int i = 0; i < fgFontCount; i++) { +- delete [] fgFontName[i]; + FT_Done_Face(fgFace[i]); + } + if (fgRotMatrix) delete fgRotMatrix; +@@ -112,12 +108,15 @@ charmap = fgFace[fgCurFontIdx]->charmaps[i]; platform = charmap->platform_id; encoding = charmap->encoding_id; - if ((platform == 3 && encoding == 1) || + if ((platform == 3 && encoding == 1 && -+ strcmp(fgFontName[fgCurFontIdx], "symbol.ttf")) || ++ (fgFontID[fgCurFontIdx] != 12 && fgFontID[fgCurFontIdx] != 15)) || (platform == 0 && encoding == 0) || (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || +- !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || ++ fgFontID[fgCurFontIdx] == 14) || + (platform == 7 && encoding == 2 && -+ !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf")) || ++ (fgFontID[fgCurFontIdx] == 12 || fgFontID[fgCurFontIdx] == 15)) || (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) +- !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) ++ (fgFontID[fgCurFontIdx] == 12 || fgFontID[fgCurFontIdx] == 15))) { -@@ -360,19 +364,86 @@ + fgCharMap[fgCurFontIdx] = charmap; + if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx])) +@@ -381,27 +380,147 @@ + + if (!fontname || !fontname[0]) { + Warning("TTF::SetTextFont", +- "no font name specified, using default font %s", fgFontName[0]); ++ "no font name specified, using default font"); + fgCurFontIdx = 0; return 0; } + const char *basename = gSystem->BaseName(fontname); + ++ if (strcmp(basename, "timesi.ttf") == 0 || ++ strcmp(basename, "FreeSerifItalic.otf") == 0) { ++ SetTextFont(12); ++ } ++ else if (strcmp(basename, "timesbd.ttf") == 0 || ++ strcmp(basename, "FreeSerifBold.otf") == 0) { ++ SetTextFont(22); ++ } ++ else if (strcmp(basename, "timesbi.ttf") == 0 || ++ strcmp(basename, "FreeSerifBoldItalic.otf") == 0) { ++ SetTextFont(32); ++ } ++ else if (strcmp(basename, "arial.ttf") == 0 || ++ strcmp(basename, "FreeSans.otf") == 0) { ++ SetTextFont(42); ++ } ++ else if (strcmp(basename, "ariali.ttf") == 0 || ++ strcmp(basename, "FreeSansOblique.otf") == 0) { ++ SetTextFont(52); ++ } ++ else if (strcmp(basename, "arialbd.ttf") == 0 || ++ strcmp(basename, "FreeSansBold.otf") == 0) { ++ SetTextFont(62); ++ } ++ else if (strcmp(basename, "arialbi.ttf") == 0 || ++ strcmp(basename, "FreeSansBoldOblique.otf") == 0) { ++ SetTextFont(72); ++ } ++ else if (strcmp(basename, "cour.ttf") == 0 || ++ strcmp(basename, "FreeMono.otf") == 0) { ++ SetTextFont(82); ++ } ++ else if (strcmp(basename, "couri.ttf") == 0 || ++ strcmp(basename, "FreeMonoOblique.otf") == 0) { ++ SetTextFont(92); ++ } ++ else if (strcmp(basename, "courbd.ttf") == 0 || ++ strcmp(basename, "FreeMonoBold.otf") == 0) { ++ SetTextFont(102); ++ } ++ else if (strcmp(basename, "courbi.ttf") == 0 || ++ strcmp(basename, "FreeMonoBoldOblique.otf") == 0) { ++ SetTextFont(112); ++ } ++ else if (strcmp(basename, "symbol.ttf") == 0) { ++ if (italic) ++ SetTextFont(152); ++ else ++ SetTextFont(122); ++ } ++ else if (strcmp(basename, "times.ttf") == 0 || ++ strcmp(basename, "FreeSerif.otf") == 0) { ++ SetTextFont(132); ++ } ++ else if (strcmp(basename, "wingding.ttf") == 0) { ++ SetTextFont(142); ++ } ++ else if (strcmp(basename, "STIXGeneral.otf") == 0) { ++ SetTextFont(162); ++ } ++ else if (strcmp(basename, "STIXGeneralItalic.otf") == 0) { ++ SetTextFont(172); ++ } ++ else if (strcmp(basename, "STIXGeneralBol.otf") == 0) { ++ SetTextFont(182); ++ } ++ else if (strcmp(basename, "STIXGeneralBolIta.otf") == 0) { ++ SetTextFont(192); ++ } ++ else if (strcmp(basename, "STIXSiz1Sym.otf") == 0) { ++ SetTextFont(202); ++ } ++ else if (strcmp(basename, "STIXSiz1SymBol.otf") == 0) { ++ SetTextFont(212); ++ } ++ else if (strcmp(basename, "STIXSiz2Sym.otf") == 0) { ++ SetTextFont(222); ++ } ++ else if (strcmp(basename, "STIXSiz2SymBol.otf") == 0) { ++ SetTextFont(232); ++ } ++ else if (strcmp(basename, "STIXSiz3Sym.otf") == 0) { ++ SetTextFont(242); ++ } ++ else if (strcmp(basename, "STIXSiz3SymBol.otf") == 0) { ++ SetTextFont(252); ++ } ++ else if (strcmp(basename, "STIXSiz4Sym.otf") == 0) { ++ SetTextFont(262); ++ } ++ else if (strcmp(basename, "STIXSiz4SymBol.otf") == 0) { ++ SetTextFont(272); ++ } ++ else if (strcmp(basename, "STIXSiz5Sym.otf") == 0) { ++ SetTextFont(282); ++ } ++ else if (strcmp(basename, "DroidSansFallback.ttf") == 0) { ++ SetTextFont(292); ++ } ++ else { ++ Error("TTF::SetTextFont", "font %s not known to ROOT", basename); ++ if (fgFontCount) { ++ Warning("TTF::SetTextFont", "using default font"); ++ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) ++ return 0; ++ } else { ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++//______________________________________________________________________________ ++void TTF::SetTextFont(Font_t fontnumber) ++{ ++ int fontid = fontnumber / 10; ++ if (fontid < 0 || fontid > 31) fontid = 0; ++ ++ Int_t italic = 0; ++ if (fontid==15) italic = 1; ++ ++ if (!fgInit) Init(); ++ ++ if (fontid == 0) { ++ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) ++ return; ++ } ++ + // check if font is in cache + int i; + for (i = 0; i < fgFontCount; i++) { +- if (!strcmp(fgFontName[i], basename)) { +- if (italic) { +- if (i==fgSymbItaFontIdx) { +- fgCurFontIdx = i; +- return 0; +- } +- } else { +- if (i!=fgSymbItaFontIdx) { +- fgCurFontIdx = i; +- return 0; +- } +- } ++ if (fgFontID[i] == fontid) { ++ fgCurFontIdx = i; ++ return; + } + } + +@@ -409,161 +528,228 @@ + if (fgFontCount >= kTTMaxFonts) { + Error("TTF::SetTextFont", "too many fonts opened (increase kTTMaxFont = %d)", + kTTMaxFonts); +- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); ++ Warning("TTF::SetTextFont", "using default font"); + fgCurFontIdx = 0; // use font 0 (default font, set in ctor) +- return 0; ++ return; + } - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", @@ -86,91 +304,191 @@ diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/ - - if (!ttfont) { - 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; + char *ttfont; + int ttindex; + + pat = FcPatternCreate (); + -+ if (strcmp(basename, /* 13 */ "times.ttf") == 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(basename, /* 1 */ "timesi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 2 */ "timesbd.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 3 */ "timesbi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 4 */ "arial.ttf") == 0) { ++ break; ++ case 4: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, /* 5 */ "ariali.ttf") == 0) { ++ break; ++ case 5: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, /* 6 and 0 */ "arialbd.ttf") == 0) { ++ break; ++ case 6: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else if (strcmp(basename, /* 7 */ "arialbi.ttf") == 0) { ++ break; ++ case 7: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); -+ } -+ else if (strcmp(basename, /* 8 */ "cour.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 9 */ "couri.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 10 */ "courbd.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 11 */ "courbi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 12 and 15 */ "symbol.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(basename, /* 14 */ "wingding.ttf") == 0) { ++ 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; ++ case 14: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); -+ } -+ else { -+ Error("TTF::SetTextFont", "font %s not known to ROOT", basename); ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ default: ++ Error("TTF::SetTextFont", "font %i not known to ROOT", fontid); + FcPatternDestroy (pat); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); - fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -@@ -382,11 +453,18 @@ - } ++ Warning("TTF::SetTextFont", "using default font"); ++ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) ++ return; ++ break; } + FcConfigSubstitute (NULL, pat, FcMatchPattern); @@ -188,28 +506,113 @@ diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/ + FcPatternDestroy (match); + FcPatternDestroy (pat); if (tface) FT_Done_Face(tface); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); -@@ -397,7 +475,8 @@ - } +- if (fgFontCount) { +- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); +- fgCurFontIdx = 0; +- return 0; +- } else { +- return 1; +- } ++ Warning("TTF::SetTextFont", "using default font"); ++ fgCurFontIdx = 0; ++ return; } - delete [] ttfont; + FcPatternDestroy (match); + FcPatternDestroy (pat); - fgFontName[fgFontCount] = StrDup(basename); +- fgFontName[fgFontCount] = StrDup(basename); ++ if (set) FcCharSetDestroy (set); ++ ++ fgFontID[fgFontCount] = fontid; fgCurFontIdx = fgFontCount; -@@ -464,37 +543,12 @@ - /*15 */ { "symbol.ttf", "symbol.ttf" } - }; + fgFace[fgCurFontIdx] = tface; + fgCharMap[fgCurFontIdx] = 0; + fgFontCount++; +- if (italic) { +- fgSymbItaFontIdx = fgCurFontIdx; ++ if (fontid == 15) { + FT_Matrix slantMat; + slantMat.xx = (1 << 16); + slantMat.xy = ((1 << 16) >> 2); + slantMat.yx = 0; + slantMat.yy = (1 << 16); +- FT_Set_Transform( fgFace[fgSymbItaFontIdx], &slantMat, NULL ); ++ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, NULL ); + } +- +- return 0; +-} +- +-//______________________________________________________________________________ +-void TTF::SetTextFont(Font_t fontnumber) +-{ +- // Set specified font. +- // List of the currently supported fonts (screen and PostScript) +- // ============================================================= +- // Font ID X11 TTF +- // 1 : times-medium-i-normal timesi.ttf +- // 2 : times-bold-r-normal timesbd.ttf +- // 3 : times-bold-i-normal timesi.ttf +- // 4 : helvetica-medium-r-normal arial.ttf +- // 5 : helvetica-medium-o-normal ariali.ttf +- // 6 : helvetica-bold-r-normal arialbd.ttf +- // 7 : helvetica-bold-o-normal arialbi.ttf +- // 8 : courier-medium-r-normal cour.ttf +- // 9 : courier-medium-o-normal couri.ttf +- // 10 : courier-bold-r-normal courbd.ttf +- // 11 : courier-bold-o-normal courbi.ttf +- // 12 : symbol-medium-r-normal symbol.ttf +- // 13 : times-medium-r-normal times.ttf +- // 14 : wingding.ttf +- // 15 : symbol oblique is emulated from symbol.ttf +- +- // Added by cholm for use of DFSG - fonts - based on Kevins fix. +- // Table of Microsoft and (for non-MSFT operating systems) backup +- // FreeFont TTF fonts. +- static const char *fonttable[][2] = { +- { "Root.TTFont.0", "FreeSansBold.otf" }, +- { "Root.TTFont.1", "FreeSerifItalic.otf" }, +- { "Root.TTFont.2", "FreeSerifBold.otf" }, +- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, +- { "Root.TTFont.4", "FreeSans.otf" }, +- { "Root.TTFont.5", "FreeSansOblique.otf" }, +- { "Root.TTFont.6", "FreeSansBold.otf" }, +- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, +- { "Root.TTFont.8", "FreeMono.otf" }, +- { "Root.TTFont.9", "FreeMonoOblique.otf" }, +- { "Root.TTFont.10", "FreeMonoBold.otf" }, +- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, +- { "Root.TTFont.12", "symbol.ttf" }, +- { "Root.TTFont.13", "FreeSerif.otf" }, +- { "Root.TTFont.14", "wingding.ttf" }, +- { "Root.TTFont.15", "symbol.ttf" }, +- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, +- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, +- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, +- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, +- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, +- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, +- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, +- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, +- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, +- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, +- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, +- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, +- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, +- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKGothic", "DroidSansFallback.ttf" } +- }; +- - static int fontset = -1; - int thisset = fontset; - - int fontid = fontnumber / 10; - if (fontid < 0 || fontid > 15) fontid = 0; - +- int fontid = fontnumber / 10; +- if (fontid < 0 || fontid > 31) fontid = 0; +- - if (thisset == -1) { - // try to load font (font must be in Root.TTFontPath resource) - // to see which fontset we have available @@ -220,7 +623,7 @@ diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/ - "$(ROOTSYS)/fonts" -#endif - ); -- char *ttfont = gSystem->Which(ttpath, fonttable[fontid][0], kReadPermission); +- char *ttfont = gSystem->Which(ttpath, gEnv->GetValue(fonttable[fontid][0], fonttable[fontid][1]), kReadPermission); - if (ttfont) { - delete [] ttfont; - thisset = 0; @@ -229,20 +632,318 @@ diff -ur root-5.34.00.orig/graf2d/graf/src/TTF.cxx root-5.34.00/graf2d/graf/src/ - thisset = 1; - } - } - Int_t italic = 0; - if (fontid==15) italic = 1; -- int ret = SetTextFont(fonttable[fontid][thisset], italic); +- Int_t italic = 0; +- if (fontid==15) italic = 1; +- int ret = SetTextFont(gEnv->GetValue(fonttable[fontid][thisset], fonttable[fontid][1]), italic); - // Do not define font set is we're loading the symbol.ttf - it's - // the same in both cases. - if (ret == 0 && fontid != 12) fontset = thisset; -+ SetTextFont(fonttable[fontid][0], italic); } //______________________________________________________________________________ -diff -ur root-5.34.00.orig/graf3d/gl/Module.mk root-5.34.00/graf3d/gl/Module.mk ---- root-5.34.00.orig/graf3d/gl/Module.mk 2012-06-05 15:31:34.000000000 +0200 -+++ root-5.34.00/graf3d/gl/Module.mk 2012-06-09 16:01:50.311196992 +0200 -@@ -70,7 +70,7 @@ +diff -ur root-5.34.05.orig/graf2d/postscript/Module.mk root-5.34.05/graf2d/postscript/Module.mk +--- root-5.34.05.orig/graf2d/postscript/Module.mk 2013-02-14 23:27:54.000000000 +0100 ++++ root-5.34.05/graf2d/postscript/Module.mk 2013-02-26 19:27:54.453632355 +0100 +@@ -50,7 +50,7 @@ + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \ + "$(POSTSCRIPTO) $(POSTSCRIPTDO)" \ +- "$(POSTSCRIPTLIBEXTRA) $(MATHTEXTLIB) $(FREETYPELDFLAGS) $(FREETYPELIB)" ++ "$(POSTSCRIPTLIBEXTRA) $(MATHTEXTLIB) $(FREETYPELDFLAGS) $(FREETYPELIB) -lfontconfig" + + $(POSTSCRIPTDS): $(POSTSCRIPTH) $(POSTSCRIPTL) $(ROOTCINTTMPDEP) + $(MAKEDIR) +diff -ur root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.05/graf2d/postscript/src/TPostScript.cxx +--- root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx 2013-02-14 23:27:54.000000000 +0100 ++++ root-5.34.05/graf2d/postscript/src/TPostScript.cxx 2013-02-26 19:45:18.377106631 +0100 +@@ -238,6 +238,7 @@ + #include + #include + #include ++#include + + #include "Riostream.h" + #include "Byteswap.h" +@@ -1511,78 +1512,206 @@ + { + // Embed font in PS file. + +- static const char *fonttable[32][2] = { +- { "Root.TTFont.0", "FreeSansBold.otf" }, +- { "Root.TTFont.1", "FreeSerifItalic.otf" }, +- { "Root.TTFont.2", "FreeSerifBold.otf" }, +- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, +- { "Root.TTFont.4", "FreeSans.otf" }, +- { "Root.TTFont.5", "FreeSansOblique.otf" }, +- { "Root.TTFont.6", "FreeSansBold.otf" }, +- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, +- { "Root.TTFont.8", "FreeMono.otf" }, +- { "Root.TTFont.9", "FreeMonoOblique.otf" }, +- { "Root.TTFont.10", "FreeMonoBold.otf" }, +- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, +- { "Root.TTFont.12", "symbol.ttf" }, +- { "Root.TTFont.13", "FreeSerif.otf" }, +- { "Root.TTFont.14", "wingding.ttf" }, +- { "Root.TTFont.15", "symbol.ttf" }, +- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, +- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, +- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, +- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, +- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, +- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, +- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, +- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, +- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, +- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, +- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, +- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, +- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, +- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" } +- }; +- + PrintStr("%%IncludeResource: ProcSet (FontSetInit)@"); + +- // try to load font (font must be in Root.TTFontPath resource) +- const char *ttpath = gEnv->GetValue("Root.TTFontPath", +-#ifdef TTFFONTDIR +- TTFFONTDIR +-#else // TTFFONTDIR +- "$(ROOTSYS)/fonts" +-#endif // TTFFONTDIR +- ); +- + for (Int_t fontid = 1; fontid < 30; fontid++) { +- if (fontid != 15) { +- const char *filename = gEnv->GetValue( +- fonttable[fontid][0], fonttable[fontid][1]); +- char *ttfont = gSystem->Which(ttpath, filename, +- kReadPermission); +- +- if(!ttfont) { +- Error("TPostScript::FontEmbed", +- "font %d (filename `%s') not found in path", +- fontid, filename); +- } else { +- if (FontEmbedType2(ttfont)) { +- // nothing +- } else if(FontEmbedType1(ttfont)) { +- // nothing +- } else if(FontEmbedType42(ttfont)) { +- // nothing +- } else { +- Error("TPostScript::FontEmbed", +- "failed to embed font %d (filename `%s')", +- fontid, filename); +- } +- delete [] ttfont; +- } +- } ++ if (fontid != 15) { ++ ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; ++ char *ttfont; ++ ++ pat = FcPatternCreate (); ++ ++ 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; ++ 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; ++ 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; ++ case 4: ++ 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; ++ case 6: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 12: ++ 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; ++ case 14: ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 29: ++ 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; ++ } ++ ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); ++ ++ if(!ttfont) { ++ Error("TPostScript::FontEmbed", "font %d not found in path", ++ fontid); ++ } else { ++ if (FontEmbedType2(ttfont)) { ++ // nothing ++ } else if(FontEmbedType1(ttfont)) { ++ // nothing ++ } else if(FontEmbedType42(ttfont)) { ++ // nothing ++ } else { ++ Error("TPostScript::FontEmbed", "failed to embed font %d)", ++ fontid); ++ } ++ } ++ ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); ++ ++ if (set) FcCharSetDestroy (set); ++ } + } + PrintStr("%%IncludeResource: font Times-Roman@"); + PrintStr("%%IncludeResource: font Times-Italic@"); +diff -ur root-5.34.05.orig/graf3d/gl/Module.mk root-5.34.05/graf3d/gl/Module.mk +--- root-5.34.05.orig/graf3d/gl/Module.mk 2013-02-14 23:27:47.000000000 +0100 ++++ root-5.34.05/graf3d/gl/Module.mk 2013-02-26 19:27:54.454632361 +0100 +@@ -78,7 +78,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ "$(GLLIBEXTRA) $(FTGLLIBDIR) $(FTGLLIBS) \ @@ -251,19 +952,18 @@ diff -ur root-5.34.00.orig/graf3d/gl/Module.mk root-5.34.00/graf3d/gl/Module.mk $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/gl/src/TGLFontManager.cxx ---- root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx 2012-06-05 15:31:34.000000000 +0200 -+++ root-5.34.00/graf3d/gl/src/TGLFontManager.cxx 2012-06-09 16:01:50.311196992 +0200 -@@ -37,6 +37,8 @@ +diff -ur root-5.34.05.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.05/graf3d/gl/src/TGLFontManager.cxx +--- root-5.34.05.orig/graf3d/gl/src/TGLFontManager.cxx 2013-02-14 23:27:47.000000000 +0100 ++++ root-5.34.05/graf3d/gl/src/TGLFontManager.cxx 2013-02-26 19:27:54.454632361 +0100 +@@ -36,6 +36,7 @@ + # include "FTGLBitmapFont.h" #endif - +#include -+ + //______________________________________________________________________________ // TGLFont - // -@@ -391,17 +393,91 @@ +@@ -391,17 +392,91 @@ FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode)); if (it == fFontMap.end()) { @@ -286,12 +986,7 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/ + + pat = FcPatternCreate (); + -+ 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, /* 1 */ "timesi") == 0) { ++ 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); @@ -316,16 +1011,16 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/ + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, /* 6 and 0 */ "arialbd") == 0) { ++ 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); @@ -346,11 +1041,16 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/ + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + } -+ else if (strcmp(fontname, /* 12 and 15 */ "symbol") == 0) { ++ 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); @@ -365,7 +1065,7 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/ FTFont* ftfont = 0; switch (mode) -@@ -427,9 +503,13 @@ +@@ -427,9 +502,13 @@ break; default: Error("TGLFontManager::GetFont", "invalid FTGL type"); @@ -379,9 +1079,9 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.00/graf3d/ 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.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/TGLText.cxx ---- root-5.34.00.orig/graf3d/gl/src/TGLText.cxx 2012-06-05 15:31:34.000000000 +0200 -+++ root-5.34.00/graf3d/gl/src/TGLText.cxx 2012-06-09 16:01:50.320197065 +0200 +diff -ur root-5.34.05.orig/graf3d/gl/src/TGLText.cxx root-5.34.05/graf3d/gl/src/TGLText.cxx +--- root-5.34.05.orig/graf3d/gl/src/TGLText.cxx 2013-02-14 23:27:47.000000000 +0100 ++++ root-5.34.05/graf3d/gl/src/TGLText.cxx 2013-02-26 19:27:54.455632367 +0100 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -391,10 +1091,27 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/ #define FTGL_BITMAP 0 #define FTGL_PIXMAP 1 #define FTGL_OUTLINE 2 -@@ -190,16 +192,89 @@ - if (fontid == 13) fontname = "times.ttf"; - if (fontid == 14) fontname = "wingding.ttf"; +@@ -173,33 +175,91 @@ + { + int fontid = fontnumber / 10; +- const char *fontname=0; +- if (fontid == 0) fontname = "arialbd.ttf"; +- if (fontid == 1) fontname = "timesi.ttf"; +- if (fontid == 2) fontname = "timesbd.ttf"; +- if (fontid == 3) fontname = "timesbi.ttf"; +- if (fontid == 4) fontname = "arial.ttf"; +- if (fontid == 5) fontname = "ariali.ttf"; +- if (fontid == 6) fontname = "arialbd.ttf"; +- if (fontid == 7) fontname = "arialbi.ttf"; +- if (fontid == 8) fontname = "cour.ttf"; +- if (fontid == 9) fontname = "couri.ttf"; +- if (fontid == 10) fontname = "courbd.ttf"; +- if (fontid == 11) fontname = "courbi.ttf"; +- if (fontid == 12) fontname = "symbol.ttf"; +- if (fontid == 13) fontname = "times.ttf"; +- if (fontid == 14) fontname = "wingding.ttf"; +- - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -# ifdef TTFFONTDIR @@ -410,75 +1127,77 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/ + + pat = FcPatternCreate (); + -+ if (strcmp(fontname, /* 13 */ "times.ttf") == 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, /* 1 */ "timesi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 2 */ "timesbd.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 3 */ "timesbi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 4 */ "arial.ttf") == 0) { ++ break; ++ case 4: + 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.ttf") == 0) { ++ break; ++ case 5: + 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 and 0 */ "arialbd.ttf") == 0) { ++ break; ++ case 6: + 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.ttf") == 0) { ++ break; ++ case 7: + 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.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 9 */ "couri.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 10 */ "courbd.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 11 */ "courbi.ttf") == 0) { ++ 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); -+ } -+ else if (strcmp(fontname, /* 12 */ "symbol.ttf") == 0) { ++ break; ++ case 12: + 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, /* 14 */ "wingding.ttf") == 0) { ++ 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; ++ case 14: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; + } - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); @@ -490,7 +1209,7 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/ if (fGLTextFont) delete fGLTextFont; -@@ -209,5 +284,6 @@ +@@ -209,5 +269,6 @@ if (!fGLTextFont->FaceSize(1)) Error("SetGLTextFont","Cannot set FTGL::FaceSize"), @@ -498,9 +1217,9 @@ diff -ur root-5.34.00.orig/graf3d/gl/src/TGLText.cxx root-5.34.00/graf3d/gl/src/ + FcPatternDestroy (match); + FcPatternDestroy (pat); } -diff -ur root-5.34.00.orig/gui/gui/src/TGApplication.cxx root-5.34.00/gui/gui/src/TGApplication.cxx ---- root-5.34.00.orig/gui/gui/src/TGApplication.cxx 2012-06-05 15:31:42.000000000 +0200 -+++ root-5.34.00/gui/gui/src/TGApplication.cxx 2012-06-09 16:01:50.327197123 +0200 +diff -ur root-5.34.05.orig/gui/gui/src/TGApplication.cxx root-5.34.05/gui/gui/src/TGApplication.cxx +--- root-5.34.05.orig/gui/gui/src/TGApplication.cxx 2013-02-14 23:27:51.000000000 +0100 ++++ root-5.34.05/gui/gui/src/TGApplication.cxx 2013-02-26 19:27:54.455632367 +0100 @@ -83,25 +83,12 @@ gROOT->SetBatch(kFALSE); @@ -528,9 +1247,9 @@ diff -ur root-5.34.00.orig/gui/gui/src/TGApplication.cxx root-5.34.00/gui/gui/sr } // Create the canvas colors early so they are allocated before -diff -ur root-5.34.00.orig/gui/gui/src/TGSpeedo.cxx root-5.34.00/gui/gui/src/TGSpeedo.cxx ---- root-5.34.00.orig/gui/gui/src/TGSpeedo.cxx 2012-06-05 15:31:42.000000000 +0200 -+++ root-5.34.00/gui/gui/src/TGSpeedo.cxx 2012-06-09 16:03:08.260851587 +0200 +diff -ur root-5.34.05.orig/gui/gui/src/TGSpeedo.cxx root-5.34.05/gui/gui/src/TGSpeedo.cxx +--- root-5.34.05.orig/gui/gui/src/TGSpeedo.cxx 2013-02-14 23:27:51.000000000 +0100 ++++ root-5.34.05/gui/gui/src/TGSpeedo.cxx 2013-02-26 19:27:54.455632367 +0100 @@ -119,8 +119,7 @@ TString sc; diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch index ab7afff..edf424e 100644 --- a/root-gfal-bits.patch +++ b/root-gfal-bits.patch @@ -1,15 +1,9 @@ -diff -ur root-5.34.02.orig/io/gfal/src/TGFALFile.cxx root-5.34.02/io/gfal/src/TGFALFile.cxx ---- root-5.34.02.orig/io/gfal/src/TGFALFile.cxx 2012-09-21 16:29:07.000000000 +0200 -+++ root-5.34.02/io/gfal/src/TGFALFile.cxx 2012-10-12 22:59:42.785689152 +0200 -@@ -60,6 +60,11 @@ - // // - ////////////////////////////////////////////////////////////////////////// - -+#ifdef _FILE_OFFSET_BITS -+#undef _FILE_OFFSET_BITS -+#endif -+#define _FILE_OFFSET_BITS 64 -+ - #include "TGFALFile.h" - #include "TROOT.h" - #include "TUrl.h" +diff -ur root-5.34.05.orig/io/gfal/Module.mk root-5.34.05/io/gfal/Module.mk +--- root-5.34.05.orig/io/gfal/Module.mk 2013-02-14 23:27:54.000000000 +0100 ++++ root-5.34.05/io/gfal/Module.mk 2013-02-26 20:58:00.150088502 +0100 +@@ -71,3 +71,5 @@ + $(GFALO) $(GFALDO): CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) + $(GFALO): CXXFLAGS += $(GFALINCDIR:%=-I%) + $(GFALO): CXXFLAGS += $(SRMIFCEINCDIR:%=-I%) ++$(GFALO): CXXFLAGS += $(shell pkg-config --cflags glib-2.0) ++$(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/root-glibc.patch b/root-glibc.patch deleted file mode 100644 index b2da159..0000000 --- a/root-glibc.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur root-5.34.00.orig/build/rmkdepend/main.c root-5.34.00/build/rmkdepend/main.c ---- root-5.34.00.orig/build/rmkdepend/main.c 2012-06-05 15:31:46.000000000 +0200 -+++ root-5.34.00/build/rmkdepend/main.c 2012-07-05 20:42:58.938953353 +0200 -@@ -60,7 +60,7 @@ - # endif - # elif defined(__CYGWIN__) - extern int fchmod(int, mode_t); --#else -+# elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) - extern int fchmod(int, int); - # endif - #endif -diff -ur root-5.34.00.orig/cint/tool/rmkdepend/main.c root-5.34.00/cint/tool/rmkdepend/main.c ---- root-5.34.00.orig/cint/tool/rmkdepend/main.c 2012-06-05 15:31:30.000000000 +0200 -+++ root-5.34.00/cint/tool/rmkdepend/main.c 2012-07-05 20:42:58.492949104 +0200 -@@ -58,7 +58,7 @@ - #if !defined(MAC_OS_X_VERSION_10_4) - extern int fchmod(); - #endif --#else -+#elif !defined(__GLIBC__) || __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 16) - extern int fchmod(); - #endif - #endif -diff -ur root-5.34.00.orig/core/unix/src/TUnixSystem.cxx root-5.34.00/core/unix/src/TUnixSystem.cxx ---- root-5.34.00.orig/core/unix/src/TUnixSystem.cxx 2012-06-05 15:31:17.000000000 +0200 -+++ root-5.34.00/core/unix/src/TUnixSystem.cxx 2012-07-05 20:29:29.969242837 +0200 -@@ -98,6 +98,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/root-gviz.patch b/root-gviz.patch new file mode 100644 index 0000000..8631327 --- /dev/null +++ b/root-gviz.patch @@ -0,0 +1,116 @@ +diff -ur root-5.34.05.orig/configure root-5.34.05/configure +--- root-5.34.05.orig/configure 2013-02-14 23:27:56.000000000 +0100 ++++ root-5.34.05/configure 2013-03-07 19:40:36.108220359 +0100 +@@ -3639,7 +3639,7 @@ + gvizlib1=$found_lib + gvizlib1raw=$found_raw_lib + gvizlibir=$found_dir +- check_library "libgraph graph" "no" "$gvizlibdir" \ ++ check_library "libgraph graph libcgraph cgraph" "no" "$gvizlibdir" \ + $GVIZ ${GVIZ:+$GVIZ/lib/graphviz} ${GVIZ:+$GVIZ/lib} ${GVIZ:+$GVIZ/.libs} \ + ${finkdir:+$finkdir/lib} \ + /usr/local/lib /usr/lib +diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphEdge.h root-5.34.05/graf2d/gviz/inc/TGraphEdge.h +--- root-5.34.05.orig/graf2d/gviz/inc/TGraphEdge.h 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/inc/TGraphEdge.h 2013-03-07 19:35:10.936220359 +0100 +@@ -20,8 +20,13 @@ + #include "TAttLine.h" + #endif + ++#if !defined(__CINT__) ++#include ++#else + struct Agraph_t; + struct Agedge_t; ++#endif ++ + class TGraphNode; + + ////////////////////////////////////////////////////////////////////////// +diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphNode.h root-5.34.05/graf2d/gviz/inc/TGraphNode.h +--- root-5.34.05.orig/graf2d/gviz/inc/TGraphNode.h 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/inc/TGraphNode.h 2013-03-07 19:35:10.946220359 +0100 +@@ -28,9 +28,12 @@ + #include "TAttLine.h" + #endif + ++#if !defined(__CINT__) ++#include ++#else + struct Agraph_t; + struct Agnode_t; +- ++#endif + + ////////////////////////////////////////////////////////////////////////// + // // +diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphStruct.h root-5.34.05/graf2d/gviz/inc/TGraphStruct.h +--- root-5.34.05.orig/graf2d/gviz/inc/TGraphStruct.h 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/inc/TGraphStruct.h 2013-03-07 19:35:10.954220359 +0100 +@@ -25,7 +25,12 @@ + #include "TList.h" + #endif + ++#if !defined(__CINT__) ++#include ++#else + struct Agraph_t; ++#endif ++ + struct GVC_s; + + ////////////////////////////////////////////////////////////////////////// +diff -ur root-5.34.05.orig/graf2d/gviz/Module.mk root-5.34.05/graf2d/gviz/Module.mk +--- root-5.34.05.orig/graf2d/gviz/Module.mk 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/Module.mk 2013-03-07 19:35:10.921220359 +0100 +@@ -68,4 +68,4 @@ + distclean:: distclean-$(MODNAME) + + ##### extra rules ###### +-$(GVIZO): CXXFLAGS += $(GRAPHVIZINCDIR:%=-I%) $(GRAPHVIZCFLAGS) ++$(GVIZO) $(GVIZDO): CXXFLAGS += $(GRAPHVIZINCDIR:%=-I%) $(GRAPHVIZCFLAGS) +diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphEdge.cxx root-5.34.05/graf2d/gviz/src/TGraphEdge.cxx +--- root-5.34.05.orig/graf2d/gviz/src/TGraphEdge.cxx 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/src/TGraphEdge.cxx 2013-03-07 19:35:10.892220359 +0100 +@@ -81,7 +81,11 @@ + if (gv) { + Agnode_t *n1 = fNode1->GetGVNode(); + Agnode_t *n2 = fNode2->GetGVNode(); ++#ifdef WITH_CGRAPH ++ fGVEdge = agedge(gv, n1, n2, NULL, 1); ++#else + fGVEdge = agedge(gv, n1, n2); ++#endif + } else { + Error("CreateGVEdge","Invalid graphviz graph"); + } +diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphNode.cxx root-5.34.05/graf2d/gviz/src/TGraphNode.cxx +--- root-5.34.05.orig/graf2d/gviz/src/TGraphNode.cxx 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/src/TGraphNode.cxx 2013-03-07 19:35:10.904220359 +0100 +@@ -65,7 +65,11 @@ + // Create the GraphViz node into the GraphViz data structure gv. + + if (gv) { ++#ifdef WITH_CGRAPH ++ fGVNode = agnode(gv, (char *)GetName(), 1); ++#else + fGVNode = agnode(gv, (char *)GetName()); ++#endif + } else { + Error("CreateGVNode","Invalid graphviz graph"); + } +diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphStruct.cxx root-5.34.05/graf2d/gviz/src/TGraphStruct.cxx +--- root-5.34.05.orig/graf2d/gviz/src/TGraphStruct.cxx 2013-02-14 23:27:53.000000000 +0100 ++++ root-5.34.05/graf2d/gviz/src/TGraphStruct.cxx 2013-03-07 19:35:10.913220359 +0100 +@@ -226,7 +226,11 @@ + gvFreeLayout(fGVC,fGVGraph); + agclose(fGVGraph); + } ++#ifdef WITH_CGRAPH ++ fGVGraph = agopen((char*)"GVGraph", Agdirected, 0); ++#else + fGVGraph = agopen((char*)"GVGraph", AGDIGRAPH); ++#endif + + // Put the GV nodes into the GV graph + if (fNodes) { diff --git a/root-no-extra-formats.patch b/root-no-extra-formats.patch new file mode 100644 index 0000000..a3924f4 --- /dev/null +++ b/root-no-extra-formats.patch @@ -0,0 +1,20 @@ +diff -ur root-5.34.05.orig/tutorials/graphics/tmathtext.C root-5.34.05/tutorials/graphics/tmathtext.C +--- root-5.34.05.orig/tutorials/graphics/tmathtext.C 2013-02-14 23:27:35.000000000 +0100 ++++ root-5.34.05/tutorials/graphics/tmathtext.C 2013-03-01 19:00:01.437565765 +0100 +@@ -17,11 +17,11 @@ + l.DrawMathText(0.27, 0.110, "\\mathbb{N} \\subset \\mathbb{R}"); + l.DrawMathText(0.63, 0.100, "\\hbox{RHIC スピン物理 Нью-Йорк}"); + +- c1->Print("c1.gif"); +- c1->Print("c1.jpg"); +- c1->Print("c1.png"); +- c1->Print("c1.ps"); +- c1->Print("c1.eps"); ++ // c1->Print("c1.gif"); ++ // c1->Print("c1.jpg"); ++ // c1->Print("c1.png"); ++ // c1->Print("c1.ps"); ++ // c1->Print("c1.eps"); + + return c1; + } diff --git a/root-rev48681.patch b/root-rev48681.patch new file mode 100644 index 0000000..409ae83 --- /dev/null +++ b/root-rev48681.patch @@ -0,0 +1,199 @@ +Index: proof/proofd/src/XrdProofdProofServMgr.cxx +=================================================================== +--- proof/proofd/src/XrdProofdProofServMgr.cxx (revision 48680) ++++ proof/proofd/src/XrdProofdProofServMgr.cxx (revision 48681) +@@ -32,8 +32,7 @@ + #include "XrdOuc/XrdOucRash.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdSys/XrdSysPriv.hh" +-#include "XrdSut/XrdSutAux.hh" +- ++#include "XrdSys/XrdSysPlugin.hh" + #include "XrdProofdClient.h" + #include "XrdProofdClientMgr.h" + #include "XrdProofdManager.h" +@@ -287,6 +286,8 @@ + fCurrentSessions = 0; + + fSeqSessionN = 0; ++ ++ fCredsSaver = 0; + + // Defaults can be changed via 'proofservmgr' + fCheckFrequency = 30; +@@ -3091,22 +3092,13 @@ + ev[len] = 0; + putenv(ev); + TRACE(DBG, "XrdSecCREDS set"); +- +- // If 'pwd', save AFS key, if any +- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = udir; + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- len = strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2; +- ev = new char[len]; +- snprintf(ev, len, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- putenv(ev); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<fOld); + TRACE(DBG, "XrdSecCREDS set"); + +- // If 'pwd', save AFS key, if any +- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = p->Client()->Sandbox()->Dir(); + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- len = strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2; +- ev = new char[len]; +- snprintf(ev, len, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- PutEnv(ev, in->fOld); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<size]; +- if (XrdSutFromHex(c->buffer, out, lout) != 0) { +- TRACE(XERR, "problems unparsing hex string"); +- delete [] out; +- return -1; +- } +- +- // Locate the key +- char *key = out + 5; +- if (strncmp(key, "afs:", 4)) { +- TRACE(DBG, "string does not contain an AFS key"); +- delete [] out; +- return 0; +- } +- key += 4; +- +- // Save to file, if not existing already +- XrdOucString fn = dir; +- fn += "/.afs"; +- int rc = 0; +- +- // Open the file, truncating if already existing +- int fd = open(fn.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0600); +- if (fd < 0) { +- TRACE(XERR, "problems creating file - errno: " << errno); +- delete [] out; +- return -1; +- } +- // Write out the key +- int lkey = lout - 9; +- if (XrdProofdAux::Write(fd, key, lkey) != lkey) { +- TRACE(XERR, "problems writing to file - errno: " << errno); +- rc = -1; +- } +- +- // Cleanup +- delete [] out; +- close(fd); +- +- // Make sure the file is owned by the user +- if (XrdProofdAux::ChangeOwn(fn.c_str(), ui) != 0) { +- TRACE(XERR, "can't change ownership of "<= 0 && t < PSMMAXCNTS) + ++// Security handle ++typedef int (*XrdSecCredsSaver_t)(XrdSecCredentials *, const char *fn, const XrdProofUI &ui); ++ + // Aux structure for session set env inputs + typedef struct { + XrdProofdProofServ *fPS; +@@ -161,6 +164,8 @@ + + std::map fDestroyTimes; // Tracks destroyed sessions + ++ XrdSecCredsSaver_t fCredsSaver; // If defined, function to be used to save the credentials ++ + int DoDirectiveProofServMgr(char *, XrdOucStream *, bool); + int DoDirectivePutEnv(char *, XrdOucStream *, bool); + int DoDirectivePutRc(char *, XrdOucStream *, bool); +@@ -268,8 +273,6 @@ + + int SetProofServEnv(XrdProofdProtocol *p, void *in); + int SetProofServEnvOld(XrdProofdProtocol *p, void *in); +- +- int SaveAFSkey(XrdSecCredentials *c, const char *fn, XrdProofUI ui); + int SetUserEnvironment(XrdProofdProtocol *p); + + static int SetProofServEnv(XrdProofdManager *m, XrdROOT *r); diff --git a/root-rev48831.patch b/root-rev48831.patch new file mode 100644 index 0000000..2b016c3 --- /dev/null +++ b/root-rev48831.patch @@ -0,0 +1,619 @@ +Index: cmake/modules/FindXROOTD.cmake +=================================================================== +--- cmake/modules/FindXROOTD.cmake (revision 48830) ++++ cmake/modules/FindXROOTD.cmake (revision 48831) +@@ -28,32 +28,37 @@ + ) + + if (XROOTD_INCLUDE_DIR) +- file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION") ++ file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION ") + string(REGEX REPLACE "#define[ ]+XrdVERSION[ ]+" "" xrdvers ${xrdvers}) + string(REGEX REPLACE "[^v\\.]+" "" xrdversdots ${xrdvers}) + if (${xrdversdots} STREQUAL "v..") + # Regular version string; parse it out + string(REGEX MATCH "[0-9\\.]+" xrdvers ${xrdvers}) +- string(REGEX MATCH "[0-9]" xrdversmajor ${xrdvers}) +- string(REPLACE "${xrdversmajor}." "" xrdversminor ${xrdvers}) +- string(REGEX MATCH "[0-9]" xrdversminor ${xrdversminor}) +- string(REPLACE "${xrdversmajor}.${xrdversminor}." "" xrdverspatch ${xrdvers}) +- string(REGEX MATCH "[0-9]+" xrdverspatch ${xrdverspatch}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\1" xrdversmajor ${xrdvers}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\2" xrdversminor ${xrdvers}) ++ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\3" xrdverspatch ${xrdvers}) + math(EXPR xrdversnum ${xrdversmajor}*100000000+${xrdversminor}*10000+${xrdverspatch}) + else () + # Old version string: we keep only the first numerics, i.e. the date + string(REGEX REPLACE "[v\"]" "" xrdvers ${xrdvers}) +- message(STATUS "Found Xrootd version ${xrdvers}") +- string(REGEX REPLACE "[^0-9-]+" " " xrdvers ${xrdvers}) + string(SUBSTRING ${xrdvers} 0 8 xrdversnum) + endif () ++ if ( ${xrdversnum} EQUAL 300030000 ) ++ SET(XROOTD_FOUND FALSE) ++ message(WARNING " >>> Cannot build with XRootD version 3.3.0: please install >=3.3.1 or <= 3.2.x") ++ else() ++ SET(XROOTD_FOUND TRUE) ++ endif () ++endif() ++ ++if(XROOTD_FOUND) + # This we used as a compiler macro variable + if(NOT XROOTD_FIND_QUIETLY ) +- message(STATUS "Found Xrootd version num: ${xrdvers}") ++ message(STATUS "Found Xrootd version num: ${xrdvers} (setting -DROOTXRDVERS=${xrdversnum})") + endif() + SET(XROOTD_CFLAGS "-DROOTXRDVERS=${xrdversnum}") + +- if ( ${xrdversnum} LESS 300010000 ) ++ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) + SET(XROOTD_OLDPACK TRUE) + message(STATUS "Setting OLDPACK TRUE") + else() +@@ -72,14 +77,16 @@ + XrdOuc/XrdOucPthread.hh + XrdOuc/XrdOucSemWait.hh + XrdOuc/XrdOucTimer.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + else() +- if ( ${xrdversnum} LESS 300010000 ) ++ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) + # DNS stuff was under XrdNet + find_path(XROOTD_INCLUDE_DIR + NAMES + XrdNet/XrdNetDNS.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + else () +@@ -87,6 +94,7 @@ + find_path(XROOTD_INCLUDE_DIR + NAMES + XrdSys/XrdSysDNS.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + endif () +@@ -101,9 +109,20 @@ + XrdSys/XrdSysPthread.hh + XrdSys/XrdSysSemWait.hh + XrdSys/XrdSysTimer.hh ++ PATHS + ${XROOTD_INCLUDE_DIR} + ) + endif() ++ ++ if (XROOTD_INCLUDE_DIR) ++ # Check for additional headers in new directories ++ find_path(XROOTD_PRIVATE_INCLUDE_DIR ++ NAMES ++ XrdSys/XrdSysPriv.hh ++ PATHS ++ ${XROOTD_INCLUDE_DIR}/private ++ ) ++ endif() + endif() + if (XROOTD_INCLUDE_DIR) + SET(XROOTD_FOUND TRUE) +@@ -152,7 +171,7 @@ + if(XROOTD_LIBRARIES) + set(XROOTD_FOUND TRUE) + if(NOT XROOTD_FIND_QUIETLY ) +- message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR}") ++ message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}") + message(STATUS " libraries: ${XROOTD_LIBRARIES}") + endif() + else () +@@ -160,7 +179,8 @@ + endif () + endif() + +-mark_as_advanced(XROOTD_INCLUDE_DIR ++mark_as_advanced(XROOTD_INCLUDE_DIR ++ XROOTD_PRIVATE_INCLUDE_DIR + XROOTD_XrdMain_LIBRARY + XROOTD_XrdUtils_LIBRARY + XROOTD_XrdClient_LIBRARY +Index: configure +=================================================================== +--- configure (revision 48830) ++++ configure (revision 48831) +@@ -4577,9 +4577,16 @@ + fi + fi + fi +- echo "$xrdver" ++ # Protect against 3.3.0, first version with 'include/xrootd/private' ++ if [ $decver -eq 300030000 ] ; then ++ echo "Cannot build against version $xrdver (missing headers)" ++ enable_xrootd="no" ++ else ++ echo "$xrdver" ++ fi + fi + ++xrdincprivate="no" + if test "x$enable_xrootd" = "xyes" ; then + + extraxrdflags="-DROOTXRDVERS=$decver" +@@ -4635,6 +4642,15 @@ + fi + + # ++ # Check also if 'include/private' exists: we need to signal this to the build modules ++ # for correct location of some headers available form the dlevel packages for version >= 3.3.x ++ if test "x$enable_xrootd" = "xyes"; then ++ if test -d "$xrdincdir/private"; then ++ xrdincprivate="yes" ++ fi ++ fi ++ ++ # + # Check if bonjour is available for code potentially using it ... + if test "x$enable_xrootd" = "xyes"; then + xrdlibdir="$tmpxrdlibdir" +@@ -6730,6 +6746,7 @@ + -e "s|@xpmlibdir@|$xpmlibdir|" \ + -e "s|@xrdlibdir@|$xrdlibdir|" \ + -e "s|@xrdincdir@|$xrdincdir|" \ ++ -e "s|@xrdincprivate@|$xrdincprivate|" \ + -e "s|@xrdversion@|$decver|" \ + -e "s|@hasxrdutils@|$hasxrdutils|" \ + -e "s|@cfitsioincdir@|$cfitsioincdir|" \ +Index: proof/proofd/src/XrdProofConn.cxx +=================================================================== +--- proof/proofd/src/XrdProofConn.cxx (revision 48830) ++++ proof/proofd/src/XrdProofConn.cxx (revision 48831) +@@ -32,7 +32,6 @@ + + #include "XrdClient/XrdClientConnMgr.hh" + #include "XrdClient/XrdClientConst.hh" +-#include "XrdClient/XrdClientDebug.hh" + #include "XrdClient/XrdClientEnv.hh" + #include "XrdClient/XrdClientLogConnection.hh" + #include "XrdClient/XrdClientPhyConnection.hh" +@@ -41,6 +40,7 @@ + #include "XrdOuc/XrdOucErrInfo.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XrdSys/XrdSysLogger.hh" + #include "XrdSys/XrdSysPlatform.hh" + + // Dynamic libs +Index: proof/proofd/src/XpdObject.cxx +=================================================================== +--- proof/proofd/src/XpdObject.cxx (revision 0) ++++ proof/proofd/src/XpdObject.cxx (revision 48831) +@@ -0,0 +1,125 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#include "XpdObject.h" ++#include "XrdProofdAux.h" ++#include "XrdProofdProtocol.h" ++#include "Xrd/XrdScheduler.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++ ++//_______________________________________________________________________ ++XrdProofdProtocol *XpdObjectQ::Pop() ++{ ++ // Pop up a protocol object ++ ++ XpdObject *node; ++ fQMutex.Lock(); ++ if ((node = fFirst)) { ++ fFirst = fFirst->fNext; ++ fCount--; ++ } ++ fQMutex.UnLock(); ++ if (node) return node->fItem; ++ return (XrdProofdProtocol *)0; ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Push(XpdObject *node) ++{ ++ // Push back a protocol ++ ++ node->fQTime = fCurage; ++ fQMutex.Lock(); ++ if (fCount >= fMaxinQ) { ++ delete node->fItem; ++ } else { ++ node->fNext = fFirst; ++ fFirst = node; ++ fCount++; ++ } ++ fQMutex.UnLock(); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Set(int inQMax, time_t agemax) ++{ ++ // Lock the data area and set the values ++ ++ fQMutex.Lock(); ++ fMaxinQ = inQMax; fMaxage = agemax; ++ if (!(fMininQ = inQMax/2)) fMininQ = 1; ++ fQMutex.UnLock(); ++ ++ // Schedule ourselves using the new values ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax + time(0)); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::DoIt() ++{ ++ // Process method ++ ++ XpdObject *pp, *p; ++ int oldcnt, agemax; ++ ++ // Lock the anchor and see if we met the threshold for deletion ++ // ++ fQMutex.Lock(); ++ agemax = fMaxage; ++ if ((oldcnt = fCount) > fMininQ) { ++ ++ // Prepare to scan down the queue. ++ if ((pp = fFirst)) { ++ p = pp->fNext; ++ } else { p = 0; } ++ ++ // Find the first object that's been idle for too long ++ while(p && (p->fQTime >= fCurage)) { pp = p; p = p->fNext;} ++ ++ // Now delete half of the idle objects. The object queue element must be ++ // part of the actual object being deleted for this to properly work. ++ if (pp) { ++ while (p) { ++ pp->fNext = p->fNext; ++ delete p->fItem; ++ fCount--; ++ p = ((pp = pp->fNext) ? pp->fNext : 0); ++ } ++ } ++ } ++ ++ // Increase the age and unlock the queue ++ fCurage++; ++ fQMutex.UnLock(); ++ ++ // Trace as needed ++ if (fTraceON && fTrace->Tracing(fTraceON)) ++ {fTrace->Beg(fTraceID); ++ cerr <End(); ++ } ++ ++ // Reschedule ourselves if we must do so ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax+time(0)); ++} ++ + +Egenskapsändringar för: proof/proofd/src/XpdObject.cxx +___________________________________________________________________ +Added: svn:eol-style +## -0,0 +1 ## ++LF +\ No newline at end of property +Added: svn:keywords +## -0,0 +1 ## ++Id +\ No newline at end of property +Index: proof/proofd/src/XrdProofdProtocol.cxx +=================================================================== +--- proof/proofd/src/XrdProofdProtocol.cxx (revision 48830) ++++ proof/proofd/src/XrdProofdProtocol.cxx (revision 48831) +@@ -29,6 +29,7 @@ + + #include "XrdVersion.hh" + #include "Xrd/XrdBuffer.hh" ++#include "Xrd/XrdScheduler.hh" + + #include "XrdProofdClient.h" + #include "XrdProofdClientMgr.h" +@@ -54,8 +55,7 @@ + // + // Static area: general protocol managing section + int XrdProofdProtocol::fgCount = 0; +-XrdObjectQ +- XrdProofdProtocol::fgProtStack("ProtStack", ++XpdObjectQ XrdProofdProtocol::fgProtStack("ProtStack", + "xproofd protocol anchor"); + XrdSysRecMutex XrdProofdProtocol::fgBMutex; // Buffer management mutex + XrdBuffManager *XrdProofdProtocol::fgBPool = 0; +@@ -542,8 +542,12 @@ + // Schedule protocol object cleanup; the maximum number of objects + // and the max age are taken from XrdXrootdProtocol: this may need + // some optimization in the future. ++#if 1 + fgProtStack.Set(pi->Sched, XrdProofdTrace, TRACE_MEM); + fgProtStack.Set((pi->ConnMax/3 ? pi->ConnMax/3 : 30), 60*60); ++#else ++ fgProtStack.Set(pi->Sched, 3600); ++#endif + + // Default tracing options: always trace logins and errors for all + // domains; if the '-d' option was specified on the command line then +@@ -789,6 +793,13 @@ + + // Push ourselves on the stack + fgProtStack.Push(&fProtLink); ++#if 0 ++ if(fgProtStack.Push(&fProtLink) != 0) { ++ XrdProofdProtocol *xp = fProtLink.objectItem(); ++ fProtLink.setItem(0); ++ delete xp; ++ } ++#endif + } + + //______________________________________________________________________________ +Index: proof/proofd/inc/XrdProofdProtocol.h +=================================================================== +--- proof/proofd/inc/XrdProofdProtocol.h (revision 48830) ++++ proof/proofd/inc/XrdProofdProtocol.h (revision 48831) +@@ -38,10 +38,10 @@ + #include "XpdSysPthread.h" + + #include "Xrd/XrdLink.hh" +-#include "Xrd/XrdObject.hh" + #include "Xrd/XrdProtocol.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XpdObject.h" + #include "XProofProtocol.h" + + class XrdBuffer; +@@ -131,7 +131,7 @@ + // + // Protocol variables + +- XrdObject fProtLink; ++ XpdObject fProtLink; + XrdBuffer *fArgp; + + XrdLink *fLink; +@@ -176,7 +176,7 @@ + // + static bool fgConfigDone; + static int fgCount; +- static XrdObjectQ fgProtStack; ++ static XpdObjectQ fgProtStack; + static XrdBuffManager *fgBPool; // Buffer manager + static int fgMaxBuffsz; // Maximum buffer size we can have + static XrdSysRecMutex fgBMutex; // Buffer management mutex +Index: proof/proofd/inc/XpdObject.h +=================================================================== +--- proof/proofd/inc/XpdObject.h (revision 0) ++++ proof/proofd/inc/XpdObject.h (revision 48831) +@@ -0,0 +1,100 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// Adapted version of XrdObject. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#ifndef ROOT_XpdObject ++#define ROOT_XpdObject ++ ++#include ++#include ++#include ++#include ++#include "Xrd/XrdJob.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++#include "XrdSys/XrdSysPthread.hh" ++ ++class XpdObjectQ; ++class XrdProofdProtocol; ++class XrdScheduler; ++ ++class XpdObject { ++public: ++ friend class XpdObjectQ; ++ ++ // Item() supplies the item value associated with itself (used with Next()). ++ XrdProofdProtocol *objectItem() { return fItem; } ++ ++ // Next() supplies the next list node. ++ XpdObject *nextObject() { return fNext; } ++ ++ // Set the item pointer ++ void setItem(XrdProofdProtocol *ival) { fItem = ival; } ++ ++ XpdObject(XrdProofdProtocol *ival=0) { fNext = 0; fItem = ival; fQTime = 0; } ++ ~XpdObject() {} ++ ++private: ++ XpdObject *fNext; ++ XrdProofdProtocol *fItem; ++ time_t fQTime; // Only used for time-managed objects ++}; ++ ++/******************************************************************************/ ++/* x r d _ O b j e c t Q */ ++/******************************************************************************/ ++ ++// Note to properly cleanup this type of queue you must call Set() at least ++// once to cause the time element to be sceduled. ++ ++class XrdOucTrace; ++ ++class XpdObjectQ : public XrdJob { ++public: ++ ++ XrdProofdProtocol *Pop(); ++ void Push(XpdObject *Node); ++ void Set(int inQMax, time_t agemax=1800); ++ void Set(XrdScheduler *sp, XrdOucTrace *tp, int traceChk = 0) ++ {fSched = sp; fTrace = tp; fTraceON = traceChk;} ++ void DoIt(); ++ ++ XpdObjectQ(const char *id, const char *desc) : XrdJob(desc) ++ {fCurage = fCount = 0; fMaxage = 0; fTraceID = id; ++ fMaxinQ = 32; fMininQ = 16; fFirst = 0; } ++ ++ ~XpdObjectQ() {} ++ ++private: ++ ++ XrdSysMutex fQMutex; ++ XpdObject *fFirst; ++ int fCount; ++ int fCurage; ++ int fMininQ; ++ int fMaxinQ; ++ time_t fMaxage; ++ XrdOucTrace *fTrace; ++ XrdScheduler *fSched; ++ int fTraceON; ++ const char *fTraceID; ++}; ++ ++#endif + +Egenskapsändringar för: proof/proofd/inc/XpdObject.h +___________________________________________________________________ +Added: svn:keywords +## -0,0 +1 ## ++Id +\ No newline at end of property +Added: svn:eol-style +## -0,0 +1 ## ++LF +\ No newline at end of property +Index: proof/proofd/Module.mk +=================================================================== +--- proof/proofd/Module.mk (revision 48830) ++++ proof/proofd/Module.mk (revision 48831) +@@ -127,7 +127,11 @@ + ifeq ($(HASXRD),yes) + XPDINCEXTRA := $(XROOTDDIRI:%=-I%) + XPDINCEXTRA += $(PROOFDDIRI:%=-I%) ++ifeq ($(XRDINCPRIVATE),yes) ++XPDINCEXTRA += -I$(XRDINCDIR)/private ++endif + ++ + ifeq ($(HASXRDUTILS),no) + + XPDLIBEXTRA += $(XROOTDDIRL) -lXrdClient -lXrdNet -lXrdOuc \ +Index: proof/proofd/CMakeLists.txt +=================================================================== +--- proof/proofd/CMakeLists.txt (revision 48830) ++++ proof/proofd/CMakeLists.txt (revision 48831) +@@ -7,7 +7,7 @@ + ROOT_USE_PACKAGE(net/rpdutils) + ROOT_USE_PACKAGE(net/auth) + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + add_definitions(${XROOTD_CFLAGS}) + + if(WIN32) +Index: proof/proofx/Module.mk +=================================================================== +--- proof/proofx/Module.mk (revision 48830) ++++ proof/proofx/Module.mk (revision 48831) +@@ -63,6 +63,9 @@ + PROOFXINCEXTRA := $(PROOFXDIRI:%=-I%) + PROOFXINCEXTRA += $(XROOTDDIRI:%=-I%) + PROOFXINCEXTRA += $(PROOFDDIRI:%=-I%) ++ifeq ($(XRDINCPRIVATE),yes) ++PROOFXINCEXTRA += -I$(XRDINCDIR)/private ++endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) +Index: proof/proofx/CMakeLists.txt +=================================================================== +--- proof/proofx/CMakeLists.txt (revision 48830) ++++ proof/proofx/CMakeLists.txt (revision 48831) +@@ -16,7 +16,7 @@ + ROOT_GLOB_SOURCES(sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cxx) + endif() + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + link_directories(${XROOTD_LIBRARY_DIR}) + add_definitions(${XROOTD_CFLAGS}) + +Index: net/netx/Module.mk +=================================================================== +--- net/netx/Module.mk (revision 48830) ++++ net/netx/Module.mk (revision 48831) +@@ -55,6 +55,9 @@ + ifneq ($(EXTRA_XRDFLAGS),) + NETXINCEXTRA += -I$(ROOT_SRCDIR)/proof/proofd/inc + endif ++ifeq ($(XRDINCPRIVATE),yes) ++NETXINCEXTRA += -I$(XRDINCDIR)/private ++endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) +Index: net/netx/CMakeLists.txt +=================================================================== +--- net/netx/CMakeLists.txt (revision 48830) ++++ net/netx/CMakeLists.txt (revision 48831) +@@ -6,7 +6,7 @@ + ROOT_USE_PACKAGE(net/net) + ROOT_USE_PACKAGE(proof/proofd) + +-include_directories(${XROOTD_INCLUDE_DIR}) ++include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) + add_definitions(${XROOTD_CFLAGS}) + #--------------------------------------------------------------------------- + +Index: config/Makefile.in +=================================================================== +--- config/Makefile.in (revision 48830) ++++ config/Makefile.in (revision 48831) +@@ -255,6 +255,7 @@ + EXTRA_XRDFLAGS := @extraxrdflags@ + XRDVERSION := @xrdversion@ + HASXRDUTILS := @hasxrdutils@ ++XRDINCPRIVATE := @xrdincprivate@ + + SRPLIBDIR := @srplibdir@ + SRPLIB := @srplib@ diff --git a/root-tclass-fix.patch b/root-tclass-fix.patch deleted file mode 100644 index 98c11bf..0000000 --- a/root-tclass-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- v5-34-00-patches/core/meta/src/TClass.cxx 2012/08/24 14:30:19 45695 -+++ v5-34-00-patches/core/meta/src/TClass.cxx 2012/10/05 21:03:30 46365 -@@ -2544,7 +2544,10 @@ - if (objType) { - const char *typdfName = objType->GetTypeName(); - if (typdfName && strcmp(typdfName, name)) { -- cl = TClass::GetClass(typdfName, load); -+ TString alternateName(typdfName); -+ // TClass::GetClass might get call GetTypeName and thus -+ // re-use the static storage use by GetTypeName! -+ cl = TClass::GetClass(alternateName, load); - return cl; - } - } -@@ -3206,9 +3209,6 @@ - fRealData->Delete(); - delete fRealData; fRealData=0; - -- if (fStreamerInfo) -- fStreamerInfo->Delete(); -- delete fStreamerInfo; fStreamerInfo=0; - } - } - diff --git a/root.spec b/root.spec index 521b261..766711b 100644 --- a/root.spec +++ b/root.spec @@ -26,9 +26,9 @@ %endif Name: root -Version: 5.34.02 +Version: 5.34.05 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -55,19 +55,22 @@ Patch0: %{name}-ftgl.patch Patch1: %{name}-fontconfig.patch # Use system unuran: Patch2: %{name}-unuran.patch -# Fixes for xrootd bonjour +# Remove broken xrootd test: Patch3: %{name}-xrootd.patch -# Fix hardcoded include path +# Fix hardcoded include path: # https://savannah.cern.ch/bugs/index.php?91463 Patch4: %{name}-meta.patch -# Fixes for latest glibc headers -Patch5: %{name}-glibc.patch -# Missing Include -Patch6: %{name}-gfal-bits.patch -# Backport meta fixes -Patch7: %{name}-tclass-fix.patch -# Revert THtml change -Patch8: %{name}-thtml-revert.patch +# Missing include path: +Patch5: %{name}-gfal-bits.patch +# Revert THtml change: +Patch6: %{name}-thtml-revert.patch +# Don't save in all image formats: +Patch7: %{name}-no-extra-formats.patch +# Graphviz libgraph deprecated: +Patch8: %%{name}-gviz.patch +# Backport xrootd 3.3 support: +Patch9: %{name}-rev48681.patch +Patch10: %{name}-rev48831.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 @@ -113,9 +116,6 @@ BuildRequires: python26-devel %endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: qt4-devel -%if %{?fedora}%{!?fedora:0} >= 14 -BuildRequires: qt4-webkit-devel -%endif %endif BuildRequires: ruby BuildRequires: ruby-devel @@ -127,7 +127,8 @@ BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel -BuildRequires: xrootd-devel +BuildRequires: xrootd-client-devel +BuildRequires: xrootd-private-devel BuildRequires: cfitsio-devel BuildRequires: gfal-devel BuildRequires: srm-ifce-devel @@ -148,6 +149,22 @@ BuildRequires: liberation-fonts %endif # This contains a Symbol font that can be used by fontconfig BuildRequires: urw-fonts +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +BuildRequires: font(droidsansfallback) +%endif +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 +BuildRequires: font(stix) +%else +%if %{?fedora}%{!?fedora:0} >= 14 +BuildRequires: font(stixgeneral) +BuildRequires: font(stixsizeonesym) +%else +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +BuildRequires: font(stixgeneral) +BuildRequires: font(stixsize1) +%endif +%endif +%endif Requires: hicolor-icon-theme %description @@ -227,6 +244,22 @@ Requires: liberation-fonts %endif # This contains a Symbol font that can be used by fontconfig Requires: urw-fonts +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +Requires: font(droidsansfallback) +%endif +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 +Requires: font(stix) +%else +%if %{?fedora}%{!?fedora:0} >= 14 +Requires: font(stixgeneral) +Requires: font(stixsizeonesym) +%else +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +Requires: font(stixgeneral) +Requires: font(stixsize1) +%endif +%endif +%endif %description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -1033,6 +1066,8 @@ fi %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p0 +%patch10 -p0 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 \ @@ -1107,7 +1142,8 @@ sed s/c1/c1simp/g -i tutorials/hsimple.C %if "%{?rhel}" == "5" # Build PyROOT for python 2.6 cp -pr bindings/pyroot bindings/pyroot26 -sed 's/python /python26 /' -i bindings/pyroot26/Module.mk +sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ + -i bindings/pyroot26/Module.mk %endif %build @@ -1138,10 +1174,10 @@ unset QTINC --enable-fftw3 \ --enable-fitsio \ --enable-gdml \ + --enable-genvector \ --enable-gfal \ --with-gfal-incdir=%{_includedir} \ --with-gfal-libdir=%{_libdir} \ - --enable-genvector \ --enable-globus \ --enable-gsl-shared \ --enable-gviz \ @@ -1315,6 +1351,7 @@ rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/svninfo.txt %if %{?fedora}%{!?fedora:0} < 13 && %{?rhel}%{!?rhel:0} < 6 rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libAfterImage.a %endif +rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libmathtext.a rm ${RPM_BUILD_ROOT}%{_bindir}/setxrd* rm ${RPM_BUILD_ROOT}%{_bindir}/thisroot* rm ${RPM_BUILD_ROOT}%{_mandir}/man1/cint.1 @@ -1345,6 +1382,7 @@ rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/macros/fileopen.C pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.C +rm TDataSetManager/P020_TDataSetManagerAliEn.C rm TFile/P030_TCastorFile.C rm TFile/P060_TChirpFile.C rm TFile/P070_TAlienFile.C @@ -1403,6 +1441,7 @@ cat includelist-geom-geom* > includelist-geom cat includelist-roofit-roo* > includelist-roofit cat includelist-gui-qt* > includelist-gui-qt cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 +cat includelist-graf2d-mathtext >> includelist-graf2d-x11 cat includelist-gui-guihtml >> includelist-gui-gui cat includelist-io-xmlparser >> includelist-io-xml cat includelist-proof-proofplayer >> includelist-proof-proof @@ -1781,9 +1820,11 @@ fi %{_bindir}/proofserv %{_bindir}/proofserv.exe %{_bindir}/xproofd +%{_bindir}/xpdtest %{_mandir}/man1/proofd.1* %{_mandir}/man1/proofserv.1* %{_mandir}/man1/xproofd.1* +%{_mandir}/man1/xpdtest.1* %{_initrddir}/proofd %files rootd @@ -2287,6 +2328,12 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Wed Feb 27 2013 Mattias Ellert - 5.34.05-1 +- Update to 5.34.05 +- Rebuild for xrootd 3.3 +- Patch for latest graphviz (libcgraph) +- Drop patches root-glibc.patch and root-tclass-fix.patch + * Thu Feb 14 2013 Fedora Release Engineering - 5.34.02-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild diff --git a/sources b/sources index 49f0898..b0b813c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cf47c9e9f2b0b6b77eb2ded0f6acba94 root-5.34.02.tar.gz +0dd415d539f5bb8ec21c9f49b2f9c5fd root-5.34.05.tar.gz From 8faae32f8201773d80c165f7556a0e4b470123dd Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 8 Mar 2013 13:20:42 +0100 Subject: [PATCH 028/344] Rebuild for xrootd 3.3 - Backport gfal fixes --- root-gfal-bits.patch | 61 ++ root-qt.patch | 25 + root-xrootd.patch | 1322 +++++++++++++++++++++++++++++++++++++++++- root.spec | 33 +- 4 files changed, 1397 insertions(+), 44 deletions(-) create mode 100644 root-gfal-bits.patch create mode 100644 root-qt.patch diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch new file mode 100644 index 0000000..050e522 --- /dev/null +++ b/root-gfal-bits.patch @@ -0,0 +1,61 @@ +diff -ur root-5.28.00h.orig/config/Makefile.in root-5.28.00h/config/Makefile.in +--- root-5.28.00h.orig/config/Makefile.in 2011-11-24 17:12:55.000000000 +0100 ++++ root-5.28.00h/config/Makefile.in 2013-03-02 08:09:02.230002472 +0100 +@@ -154,6 +154,7 @@ + GFALLIBDIR := @gfallibdir@ + GFALCLILIB := @gfallib@ + GFALINCDIR := $(filter-out /usr/include, @gfalincdir@) ++SRMIFCEINCDIR := $(filter-out /usr/include, @srmifceincdir@) + + BUILDGLITE := @buildglite@ + GLITELIBDIR := @glitelibdir@ +diff -ur root-5.28.00h.orig/configure root-5.28.00h/configure +--- root-5.28.00h.orig/configure 2011-11-24 17:12:57.000000000 +0100 ++++ root-5.28.00h/configure 2013-03-02 08:10:33.684863607 +0100 +@@ -1426,6 +1426,7 @@ + gviz-incdir Graphviz support, location of gvc.h + gviz-libdir Graphviz support, location of libgvplugin_core + gfal-incdir GFAL support, location of gfal_api.h ++ srm-ifce-incdir GFAL support, location of gfal_srm_ifce_types.h + gfal-libdir GFAL support, location of libgfal + glew-incdir GLEW support, location of glew.h + glew-libdir GLEW support, location of libGLEW +@@ -1733,6 +1734,7 @@ + --with-gviz-libdir=*) gvizlibdir=$optarg ; enable_gviz="yes" ;; + --with-gfal-incdir=*) gfalincdir=$optarg ; enable_gfal="yes" ;; + --with-gfal-libdir=*) gfallibdir=$optarg ; enable_gfal="yes" ;; ++ --with-srm-ifce-incdir=*) srmifceincdir=$optarg;; + --with-glew-incdir=*) glewincdir=$optarg ; enable_builtin_glew=no;; + --with-glew-libdir=*) glewlibdir=$optarg ; enable_builtin_glew=no;; + --with-gsl-incdir=*) gslincdir=$optarg ; enable_gsl="yes" ;; +@@ -3199,6 +3201,12 @@ + gfallib=$found_lib + gfallibdir=$found_dir + ++ check_header "gfal_srm_ifce_types.h" "$srmifceincdir" \ ++ /opt/lcg/include /opt/srm-ifce/include /usr/local/lcg/include \ ++ /usr/local/srm-ifce/include ++ srmifceinc=$found_hdr ++ srmifceincdir=$found_dir ++ + if test "x$gfalincdir" = "x" || test "x$gfallib" = "x"; then + enable_gfal="no" + fi +@@ -6341,6 +6349,7 @@ + -e "s|@exceptions@|$enable_exceptions|" \ + -e "s|@explicitlink@|$enable_explicitlink|" \ + -e "s|@gfalincdir@|$gfalincdir|" \ ++ -e "s|@srmifceincdir@|$srmifceincdir|" \ + -e "s|@gfallib@|$gfallib|" \ + -e "s|@gfallibdir@|$gfallibdir|" \ + -e "s|@enable_xft@|$enable_xft|" \ +diff -ur root-5.28.00h.orig/io/gfal/Module.mk root-5.28.00h/io/gfal/Module.mk +--- root-5.28.00h.orig/io/gfal/Module.mk 2011-11-24 17:12:56.000000000 +0100 ++++ root-5.28.00h/io/gfal/Module.mk 2013-03-02 08:04:00.349761906 +0100 +@@ -70,3 +70,6 @@ + ##### extra rules ###### + $(GFALO) $(GFALDO): CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) + $(GFALO): CXXFLAGS += $(GFALINCDIR:%=-I%) ++$(GFALO): CXXFLAGS += $(SRMIFCEINCDIR:%=-I%) ++$(GFALO): CXXFLAGS += $(shell pkg-config --cflags glib-2.0) ++$(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/root-qt.patch b/root-qt.patch new file mode 100644 index 0000000..353b6fb --- /dev/null +++ b/root-qt.patch @@ -0,0 +1,25 @@ +diff -ur root-5.28.00h.orig/configure root-5.28.00h/configure +--- root-5.28.00h.orig/configure 2011-11-24 17:12:57.000000000 +0100 ++++ root-5.28.00h/configure 2013-03-02 12:52:21.823338782 +0100 +@@ -2955,21 +2955,6 @@ + check_library "libQt3Support Qt3Support Qt3Support$qt4suffix Qt3Support4" \ + "$enable_shared" "$found_raw_dir" "" + qtlib="$qtlib $found_lib" +- check_library "libQtOpenGL QtOpenGL QtOpenGL$qt4suffix QtOpenGL4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtSvg QtSvg QtSvg$qt4suffix QtSvg4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtXml QtXml QtXml$qt4suffix QtXml4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtWebKit QtWebKit QtWebKit$qt4suffix QtWebKit4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" +- check_library "libQtNetwork QtNetwork QtNetwork$qt4suffix QtNetwork4" \ +- "$enable_shared" "$found_raw_dir" "" +- qtlib="$qtlib $found_lib" + else + qtinc= + qtmainincdir= diff --git a/root-xrootd.patch b/root-xrootd.patch index 7e02e05..77bded2 100644 --- a/root-xrootd.patch +++ b/root-xrootd.patch @@ -1,10 +1,402 @@ -diff -ur root-5.28.00c.orig/configure root-5.28.00c/configure ---- root-5.28.00c.orig/configure 2011-04-15 17:34:20.000000000 +0200 -+++ root-5.28.00c/configure 2011-04-23 13:02:29.385052080 +0200 -@@ -4307,13 +4307,14 @@ - if test "x$externalxrd" = "xyes"; then - buildxrd="no" - # Check if bonjour is available for code potentially using it ... +diff -Nur root-5.28.00h.orig/config/Makefile.in root-5.28.00h/config/Makefile.in +--- root-5.28.00h.orig/config/Makefile.in 2011-11-24 17:12:55.000000000 +0100 ++++ root-5.28.00h/config/Makefile.in 2013-03-08 11:54:45.058375695 +0100 +@@ -241,12 +241,12 @@ + XMLINCDIR := $(filter-out /usr/include, @xmlincdir@) + + HASXRD := @hasxrd@ +-BUILDXRD := @buildxrd@ + XRDINCDIR := @xrdincdir@ + XRDLIBDIR := @xrdlibdir@ +-XRDADDOPTS := @xrdaddopts@ + EXTRA_XRDFLAGS := @extraxrdflags@ + XRDVERSION := @xrdversion@ ++HASXRDUTILS := @hasxrdutils@ ++XRDINCPRIVATE := @xrdincprivate@ + + SRPLIBDIR := @srplibdir@ + SRPLIB := @srplib@ +@@ -284,7 +284,6 @@ + GLOBUSLIB := @globuslib@ + GLOBUSLIBDIR := @globuslibdir@ + GLOBUSINCDIR := $(filter-out /usr/include, @globusincdir@) +-BUILDXRDGSI := @buildxrdgsi@ + + BUILDMONALISA := @buildmonalisa@ + MONALISALIBDIR := @monalisalibdir@ +diff -Nur root-5.28.00h.orig/configure root-5.28.00h/configure +--- root-5.28.00h.orig/configure 2011-11-24 17:12:57.000000000 +0100 ++++ root-5.28.00h/configure 2013-03-08 11:54:41.987349372 +0100 +@@ -1385,7 +1385,7 @@ + winrtdebug Link against the Windows debug runtime library + x11 X11 support + xml XML parser interface +- xrootd Build xrootd file server and its client (if supported) ++ xrootd Build xrootd-dependent plugins for remote file access and PROOF (if supported) + xft Xft support (X11 antialiased fonts) + + minimal set of libraries, can be combined with above --enable-... options +@@ -1484,10 +1484,9 @@ + xpm-libdir XPM support, path to libXpm + xft-libdir Xft support, path to libXft + xext-libdir Xext support, path to libXext +- xrootd XROOTD support, path to external XROOTD distribution +- xrootd-incdir XROOTD support, path to external XROOTD header files (XrdVersion.hh, ...) +- xrootd-libdir XROOTD support, path to external XROOTD libraries +- xrootd-opts XROOTD support, additional options to be passed to XROOTD-configure ++ xrootd XROOTD support, path to XROOTD distribution ++ xrootd-incdir XROOTD support, path to XROOTD header files (XrdVersion.hh, ...) ++ xrootd-libdir XROOTD support, path to XROOTD libraries (libXrdClient, ...) + + with compiler options, prefix with --with-, overrides default value + +@@ -1792,7 +1791,6 @@ + --with-xft-libdir=*) xftlibdir=$optarg ;; + --with-xext-libdir=*) xextlibdir=$optarg ;; + --with-xrootd=*) xrootddir=$optarg ; enable_xrootd="yes" ;; +- --with-xrootd-opts=*) xrdaddopts=$optarg ; enable_xrootd="yes" ;; + --with-xrootd-incdir=*) xrdincdir=$optarg ; enable_xrootd="yes" ;; + --with-xrootd-libdir=*) xrdlibdir=$optarg ; enable_xrootd="yes" ;; + --with-cc=*) altcc=$optarg ;; +@@ -4138,81 +4136,97 @@ + # + ### echo %%% Check for xrootd support + # +-message "Checking whether to build xrootd" +-xrdcomm="" +-vercomm= +- +-# If we are required to use an external XROOTD distribution +-# we just define the pointers +-extraxrdflags="-DUSENEWHDRS" +- +-# Check if we are asked to use an external XROOTD; priority to specific +-# inc and lib settings +-externalxrd="no" +-if test ! "x$xrdlibdir" = "x" && test ! "x$xrdincdir" = "x"; then +- externalxrd="yes" +- xrdcomm="no, using xrootd at $xrdlibdir, $xrdincdir" +- if test ! -f "$xrdincdir/XrdVersion.hh" ; then +- enable_xrootd="no" +- xrdcomm="no, asked to use installation at $xrdincdir, but version file missing: disabling" +- xrdincdir="" +- xrdlibdir="" +- fi +-elif test ! "x$xrootddir" = "x"; then +- externalxrd="yes" ++if test "x$enable_xrootd" = "xyes" ; then ++ xrdcomm="" ++ vercomm="" ++ extraxrdflags="" ++ ++ # Localize the version header; priority to specific inc and lib settings, ++ # followed by global dir setting and standard paths ++ xrdincone="" ++ xrdinctwoa="" ++ xrdinctwob="" ++ xrdinctmp="" + if test ! "x$xrdlibdir" = "x" && test ! "x$xrdincdir" = "x"; then +- xrdcomm="no, using xrootd at $xrdlibdir, $xrdincdir" +- if test ! -f "$xrdincdir/XrdVersion.hh" ; then +- enable_xrootd="no" +- xrdcomm="no, asked to use installation at $xrdincdir, but version file missing: disabling" +- xrdincdir="" +- xrdlibdir="" +- fi ++ xrdincone="$xrdincdir/XrdVersion.hh" ++ xrdlibone="$xrdlibdir" ++ xrdinctmp="$xrdincdir $xrdinctmp" + elif test ! "x$xrootddir" = "x"; then +- xrdlibdir="$xrootddir/lib" +- xrdcomm="no, using xrootd at $xrootddir" +- if test -f "$xrootddir/include/xrootd/XrdVersion.hh" ; then +- xrdincdir="$xrootddir/include/xrootd" +- elif test -f "$xrootddir/src/XrdVersion.hh" ; then +- xrdincdir="$xrootddir/src" ++ xrdlibtwo="$xrootddir" ++ xrdinctwoa="$xrootddir/include/xrootd/XrdVersion.hh" ++ xrdinctwob="$xrootddir/src/XrdVersion.hh" ++ xrdinctmp="$xrootddir/include/xrootd $xrootddir/src $xrdinctmp" ++ else ++ # Standard paths ++ xrdpaths="$XRDSYS /opt/xrootd /usr/local /usr" ++ for stdp in $xrdpaths ; do ++ if test -d "$stdp/lib" || test -d "$stdp/lib64" ; then ++ xrdlibthree="$xrdlibthree $stdp/lib" ++ xrdinctmp="$xrdinctmp $stdp/include/xrootd $stdp/include" ++ fi ++ done ++ fi ++ # Run the search now ++ check_header "XrdVersion.hh" "" "$xrdinctmp" ++ if test ! "x$found_hdr" = "x" ; then ++ xrdinc="$found_dir/$found_hdr" ++ # Find out which path was the good one ++ if test "x$xrdinc" = "x$xrdincone" ; then ++ xrdincdir="$found_dir" ++ xrdlibdir="$xrdlibone" ++ elif test "x$xrdinc" = "x$xrdinctwoa" ; then ++ xrdincdir="$xrdlibtwo/include/xrootd" ++ xrdlibdir="$xrdlibtwo/lib" ++ elif test "x$xrdinc" = "x$xrdinctwob" ; then ++ xrdincdir="$xrdlibtwo/src" ++ xrdlibdir="$xrdlibtwo/lib" + else +- enable_xrootd="no" +- xrdcomm="no, asked to use installation at $xrootddir, but version file missing: disabling" +- xrdincdir="" +- xrdlibdir="" ++ for ll in $xrdlibthree ; do ++ rdir=`dirname $ll` ++ xinca="$rdir/include/xrootd/XrdVersion.hh" ++ xincb="$rdir/include/XrdVersion.hh" ++ if test "x$xrdinc" = "x$xinca" ; then ++ xrdincdir="$rdir/include/xrootd" ++ xrdlibdir="$ll" ++ elif test "x$xrdinc" = "x$xincb" ; then ++ xrdincdir="$rdir/include" ++ xrdlibdir="$ll" ++ fi ++ if test ! "x$xrdincdir" = "x" ; then ++ break ++ fi ++ done ++ # Only here if something inconsistent was found ++ if test "x$xrdincdir" = "x" ; then ++ enable_xrootd="no" ++ xrdincdir="" ++ xrdlibdir="" ++ fi + fi ++ else ++ enable_xrootd="no" ++ xrdincdir="" ++ xrdlibdir="" + fi + fi ++ + # Decode version + xrdver= + decver=0 +-if test ! "x$enable_xrootd" = "xno" ; then ++if test "x$enable_xrootd" = "xyes" ; then + +- newver="no" +- if test "x$externalxrd" = "xyes"; then +- verh=$xrdincdir/XrdVersion.hh +- else +- newver="yes" +- verh=$top_srcdir/net/xrootd/src/xrootd/VERSION_INFO +- if test ! -f $verh ; then +- newver="no" +- verh=$top_srcdir/net/xrootd/src/xrootd/src/XrdVersion.hh +- fi +- fi +- xrdver="unknown" +- if test "x$newver" = "xyes" ; then +- xrdver=`grep RefNames $verh` +- if test $? -eq 0 ; then +- set $xrdver +- xrdver=`echo $4 | sed -e 's|,||'` +- fi ++ message "Checking for xrootd version" ++ ++ verh=$xrdincdir/XrdVersion.hh ++ ++ xrdver=`grep XrdVERSION $verh` ++ if test $? -eq 0 ; then ++ set $xrdver ++ xrdver=$3 + else +- xrdver=`grep XrdVERSION $verh` +- if test $? -eq 0 ; then +- set $xrdver +- xrdver=$3 +- fi ++ xrdver="unknown" + fi ++ + if test ! "x$xrdver" = "xunknown"; then + tmpver=`echo $xrdver | sed -e 's|"\(.*\)"|\1|' -e 's|^v||' -e 's|-.*||'` + if test "x$tmpver" = "xuntagged" ; then +@@ -4241,117 +4255,96 @@ + fi + fi + fi ++ # Protect against 3.3.0, first version with 'include/xrootd/private' ++ if [ $decver -eq 300030000 ] ; then ++ echo "Cannot build against version $xrdver (missing headers)" ++ enable_xrootd="no" ++ else ++ echo "$xrdver" ++ fi + fi +-bjrcomm= +-if test "x$enable_xrootd" = "xyes" && test "x$externalxrd" = "xyes"; then + +- if test "x$enable_xrootd" = "xyes" ; then ++xrdincprivate="no" ++if test "x$enable_xrootd" = "xyes" ; then + +- # Check version +- decrefone=20070628 +- decreftwo=20070723 +- decrefthree=20071004 +- if [ $decver -gt $decrefone ] ; then +- if [ $decver -gt $decrefthree ] ; then +- xrdcomm="$xrdcomm" +- extraxrdflags="$extraxrdflags" +- elif [ $decver -gt $decreftwo ] ; then +- vercomm=" (>$decreftwo, <=$decrefthree: setting -DOLDXRDLOCATE)" +- extraxrdflags="-DOLDXRDLOCATE $extraxrdflags" +- else +- vercomm=" (>$decrefone, <=$decreftwo: setting -DOLDXRDLOCATE -DOLDXRDOUC)" +- extraxrdflags="-DOLDXRDOUC -DOLDXRDLOCATE $extraxrdflags" +- fi ++ extraxrdflags="-DROOTXRDVERS=$decver" ++ vercomm="setting $extraxrdflags" ++ ++ # ++ # Check libraries now ++ hasxrdutils="no" ++ libxrdoucbjr="" ++ # ++ # Release date of version 3.1.0 containing the new lib packaging ++ decreftre=300000000 ++ decrefutils=300010000 ++ if [ $decver -lt $decreftre ] ; then ++ decrefutils=20111021 ++ fi ++ decrefnetut=20100729 ++ if [ $decver -ge $decrefutils ] ; then ++ xrdlibs="libXrdMain libXrdUtils libXrdClient" ++ hasxrdutils="yes" ++ elif [ $decver -ge $decrefnetut ] ; then ++ xrdlibs="libXrdNet libXrdNetUtil libXrdOuc libXrdSys libXrdClient libXrd" ++ else ++ xrdlibs="libXrdNet libXrdOuc libXrdSys libXrdClient libXrd" ++ fi ++ tmpxrdlibdir="" ++ xrdlibext="" ++ for ll in $xrdlibs ; do ++ # ++ # Check if packaging has libXrdUtils or the old libXrdOuc, libXrdSys, ... ++ check_library $ll "$enable_shared" "$xrdlibdir" "$xrdlibdir" ++ if test "x$found_lib" = "x" ; then ++ enable_xrootd="no" ++ xrdincdir="" ++ xrdlibdir="" ++ break + else +- vercomm=" (<= $decrefone: setting -DOLDXRDLOCATE -DOLDXRDOUC -DOLDXRCPHYCONN)" +- extraxrdflags="-DOLDXRCPHYCONN -DOLDXRDOUC -DOLDXRDLOCATE $extraxrdflags" ++ xrdlibext="$found_ext" ++ tmpxrdlibdir="$found_dir" ++ if test "x$ll" = "xlibXrdUtils" || test "x$ll" = "xlibXrdOuc"; then ++ libxrdoucbjr="$found_lib" ++ fi + fi ++ done ++ ++ # ++ # If not 'so' or 'a', comunicate the extension for the library loadings ++ # in XrdProofd. This may be temporary, as xrootd may do it automatically, ++ # one day ... ++ if test ! "x$xrdlibext" = "x" && test ! "x$xrdlibext" = "xso" && test ! "x$xrdlibext" = "xa"; then ++ # The \'s are needed to produce -DLT_MODULE_EXT=\".ext\" in Makefile.config ++ extraxrdflags="$extraxrdflags -DLT_MODULE_EXT=\\\\\".$xrdlibext\\\\\"" + fi + +-else +- if test "x$enable_xrootd" = "x" && test "x$DEFAULTENABLE" = "xno"; then +- enable_xrootd="no" +- xrdincdir="" +- xrdlibdir="" +- else +- # Xrootd and its client need thread support +- if test "x$enable_thread" = "xyes"; then +- # Ok, now check the architecture +- case $arch in +- # xrootd does not build on all platforms yet +- linux*) +- if test "x$enable_xrootd" = "x"; then +- enable_xrootd="yes" +- fi +- ;; +- macos*) +- if test "x$enable_xrootd" = "x"; then +- enable_xrootd="yes" +- fi +- ;; +- solaris*) +- if test "x$enable_xrootd" = "x"; then +- enable_xrootd="yes" +- fi +- ;; +- win32) +- if test "x$enable_xrootd" = "x"; then +- enable_xrootd="yes" +- fi +- ;; +- *) +- if test "x$enable_xrootd" = "xyes"; then +- enable_xrootd="yes" +- xrdcomm=", but not officially supported" +- else +- enable_xrootd="no" +- fi +- xrdincdir="" +- xrdlibdir="" +- ;; +- esac +- else +- if test "x$enable_xrootd" = "xyes"; then +- enable_xrootd="no" +- xrdcomm=", needs thread support (make sure pthread lib is found)" +- else +- enable_xrootd="no" +- fi +- xrdincdir="" +- xrdlibdir="" +- fi ++ # ++ # Check also if 'include/private' exists: we need to signal this to the build modules ++ # for correct location of some headers available form the dlevel packages for version >= 3.3.x ++ if test "x$enable_xrootd" = "xyes"; then ++ if test -d "$xrdincdir/private"; then ++ xrdincprivate="yes" ++ fi + fi + +- xrdcomm="$enable_xrootd$xrdcomm" ++ # ++ # Check if bonjour is available for code potentially using it ... ++ if test "x$enable_xrootd" = "xyes"; then ++ xrdlibdir="$tmpxrdlibdir" ++ if test "x$enable_bonjour" = "xyes"; then ++ # This check is broken. The xrootd libraries are C++ hence their ++ # symbol names are mangled. The check_symbol macro is designed ++ # to check for unmangled symbol names in C libraries. ++ # check_symbol XrdOucBonjour "$libxrdoucbjr" "$xrdlibdir" ++ # if test $found_symbol -eq 0 ; then ++ # bonjourcppflags= ++ # fi ++ bonjourcppflags= ++ fi ++ fi + fi + +-xrdcomm="$xrdcomm" +-result $xrdcomm +-if test "x$enable_xrootd" = "xyes"; then +- hasxrd="" +- hasnotxrd="#" +- message "Checking for xrootd version" +- result "$xrdver $vercomm" +- buildxrd="yes" +- if test "x$externalxrd" = "xyes"; then +- buildxrd="no" +- # Check if bonjour is available for code potentially using it ... - if test "x$enable_bonjour" = "xyes"; then - check_symbol XrdOucBonjour "libXrdOuc.a" "$xrdlibdir" - if test $found_symbol -eq 0 ; then @@ -12,21 +404,291 @@ diff -ur root-5.28.00c.orig/configure root-5.28.00c/configure - bonjourcppflags= - fi - fi -+ ## This test is broken and will always fail. -+ ##if test "x$enable_bonjour" = "xyes"; then -+ ## check_symbol XrdOucBonjour "libXrdOuc.a" "$xrdlibdir" -+ ## if test $found_symbol -eq 0 ; then -+ ## bjrcomm="External xrootd has no bonjour support: disabling bonjour in XrdProofd" -+ ## bonjourcppflags= -+ ## fi -+ ##fi - fi +- fi +-else +- buildxrd="no" +- hasxrd="#" +- hasnotxrd="" +-fi +-if test ! "x$bjrcomm" = "x"; then +- echo "$bjrcomm" +-fi + check_explicit "$enable_xrootd" "$enable_xrootd_explicit" \ + "Explicitly required Xrootd dependencies not fulfilled" + +@@ -4364,11 +4357,6 @@ + # If the user has set the flags "--disable-globus", we don't check for + # Globus at all. + # +-# By default, always try to build the XRD GSI plug-in; this can be +-# disabled with +-# --with-xrootd-opts="--disable-gsi" +-buildxrdgsi="yes" +-# + glbextracflags="" + glbpatchcflags="" + haveglobus="" +@@ -6282,7 +6270,6 @@ + -e "s|@buildglew@|$enable_builtin_glew|" \ + -e "s|@builtinfreetype@|$enable_builtin_freetype|" \ + -e "s|@builtinpcre@|$enable_builtin_pcre|" \ +- -e "s|@buildxrd@|$buildxrd|" \ + -e "s|@hasxrd@|$enable_xrootd|" \ + -e "s|@castorincdir@|$castorincdir|" \ + -e "s|@castorlib@|$castorlib|" \ +@@ -6467,10 +6454,11 @@ + -e "s|@x11libdir@|$x11libdir|" \ + -e "s|@xpmlib@|$xpmlib|" \ + -e "s|@xpmlibdir@|$xpmlibdir|" \ +- -e "s|@xrdaddopts@|$xrdaddopts|" \ + -e "s|@xrdlibdir@|$xrdlibdir|" \ + -e "s|@xrdincdir@|$xrdincdir|" \ ++ -e "s|@xrdincprivate@|$xrdincprivate|" \ + -e "s|@xrdversion@|$decver|" \ ++ -e "s|@hasxrdutils@|$hasxrdutils|" \ + -e "s|@cursesincdir@|$cursesincdir|" \ + -e "s|@curseshdr@|$curseshdr|" \ + -e "s|@curseslib@|$curseslib|" \ +@@ -6508,7 +6496,6 @@ + -e "s|@buildsrputil@|$enable_srputil|" \ + -e "s|@buildkrb5@|$enable_krb5|" \ + -e "s|@buildglobus@|$enable_globus|" \ +- -e "s|@buildxrdgsi@|$buildxrdgsi|" \ + -e "s|@buildclarens@|$enable_clarens|" \ + -e "s|@buildpeac@|$buildpeac|" \ + -e "s|@buildafdsmgrd@|$enable_afdsmgrd|" \ +diff -Nur root-5.28.00h.orig/net/netx/Module.mk root-5.28.00h/net/netx/Module.mk +--- root-5.28.00h.orig/net/netx/Module.mk 2011-11-24 17:12:53.000000000 +0100 ++++ root-5.28.00h/net/netx/Module.mk 2013-03-08 11:54:43.607363254 +0100 +@@ -51,15 +51,21 @@ + # Xrootd includes + NETXINCEXTRA := $(XROOTDDIRI:%=-I%) + ifneq ($(EXTRA_XRDFLAGS),) +-NETXINCEXTRA += -Iproof/proofd/inc ++NETXINCEXTRA += -I$(ROOT_SRCDIR)/proof/proofd/inc ++endif ++ifeq ($(XRDINCPRIVATE),yes) ++NETXINCEXTRA += -I$(XRDINCDIR)/private + endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) + NETXLIBEXTRA += $(XROOTDDIRL)/libXrdClient.lib else - buildxrd="no" -diff -ur root-5.28.00c.orig/proof/proofd/Module.mk root-5.28.00c/proof/proofd/Module.mk ---- root-5.28.00c.orig/proof/proofd/Module.mk 2011-04-15 17:33:43.000000000 +0200 -+++ root-5.28.00c/proof/proofd/Module.mk 2011-04-23 13:51:01.294607207 +0200 -@@ -115,12 +115,10 @@ +-NETXLIBEXTRA += -L$(XROOTDDIRL) -lXrdOuc -lXrdSys \ +- -lXrdClient ++ifeq ($(HASXRDUTILS),no) ++NETXLIBEXTRA += $(XROOTDDIRL) -lXrdOuc -lXrdSys -lXrdClient ++else ++NETXLIBEXTRA += $(XROOTDDIRL) -lXrdUtils -lXrdClient ++endif + endif + + ##### local rules ##### +diff -Nur root-5.28.00h.orig/net/netx/src/TXNetFile.cxx root-5.28.00h/net/netx/src/TXNetFile.cxx +--- root-5.28.00h.orig/net/netx/src/TXNetFile.cxx 2011-11-24 17:12:53.000000000 +0100 ++++ root-5.28.00h/net/netx/src/TXNetFile.cxx 2013-03-08 11:54:22.638183476 +0100 +@@ -56,6 +56,7 @@ + #include "TVirtualPerfStats.h" + + #include ++#include + #include + #include + #include +diff -Nur root-5.28.00h.orig/proof/proofd/inc/XpdObject.h root-5.28.00h/proof/proofd/inc/XpdObject.h +--- root-5.28.00h.orig/proof/proofd/inc/XpdObject.h 1970-01-01 01:00:00.000000000 +0100 ++++ root-5.28.00h/proof/proofd/inc/XpdObject.h 2013-03-08 11:54:41.991349396 +0100 +@@ -0,0 +1,100 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// Adapted version of XrdObject. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#ifndef ROOT_XpdObject ++#define ROOT_XpdObject ++ ++#include ++#include ++#include ++#include ++#include "Xrd/XrdJob.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++#include "XrdSys/XrdSysPthread.hh" ++ ++class XpdObjectQ; ++class XrdProofdProtocol; ++class XrdScheduler; ++ ++class XpdObject { ++public: ++ friend class XpdObjectQ; ++ ++ // Item() supplies the item value associated with itself (used with Next()). ++ XrdProofdProtocol *objectItem() { return fItem; } ++ ++ // Next() supplies the next list node. ++ XpdObject *nextObject() { return fNext; } ++ ++ // Set the item pointer ++ void setItem(XrdProofdProtocol *ival) { fItem = ival; } ++ ++ XpdObject(XrdProofdProtocol *ival=0) { fNext = 0; fItem = ival; fQTime = 0; } ++ ~XpdObject() {} ++ ++private: ++ XpdObject *fNext; ++ XrdProofdProtocol *fItem; ++ time_t fQTime; // Only used for time-managed objects ++}; ++ ++/******************************************************************************/ ++/* x r d _ O b j e c t Q */ ++/******************************************************************************/ ++ ++// Note to properly cleanup this type of queue you must call Set() at least ++// once to cause the time element to be sceduled. ++ ++class XrdOucTrace; ++ ++class XpdObjectQ : public XrdJob { ++public: ++ ++ XrdProofdProtocol *Pop(); ++ void Push(XpdObject *Node); ++ void Set(int inQMax, time_t agemax=1800); ++ void Set(XrdScheduler *sp, XrdOucTrace *tp, int traceChk = 0) ++ {fSched = sp; fTrace = tp; fTraceON = traceChk;} ++ void DoIt(); ++ ++ XpdObjectQ(const char *id, const char *desc) : XrdJob(desc) ++ {fCurage = fCount = 0; fMaxage = 0; fTraceID = id; ++ fMaxinQ = 32; fMininQ = 16; fFirst = 0; } ++ ++ ~XpdObjectQ() {} ++ ++private: ++ ++ XrdSysMutex fQMutex; ++ XpdObject *fFirst; ++ int fCount; ++ int fCurage; ++ int fMininQ; ++ int fMaxinQ; ++ time_t fMaxage; ++ XrdOucTrace *fTrace; ++ XrdScheduler *fSched; ++ int fTraceON; ++ const char *fTraceID; ++}; ++ ++#endif +diff -Nur root-5.28.00h.orig/proof/proofd/inc/XrdProofdProofServMgr.h root-5.28.00h/proof/proofd/inc/XrdProofdProofServMgr.h +--- root-5.28.00h.orig/proof/proofd/inc/XrdProofdProofServMgr.h 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/inc/XrdProofdProofServMgr.h 2013-03-08 11:54:29.736244390 +0100 +@@ -46,6 +46,9 @@ + #define PSMMAXCNTS 3 + #define PSMCNTOK(t) (t >= 0 && t < PSMMAXCNTS) + ++// Security handle ++typedef int (*XrdSecCredsSaver_t)(XrdSecCredentials *, const char *fn, const XrdProofUI &ui); ++ + // Aux structure for session set env inputs + typedef struct { + XrdProofdProofServ *fPS; +@@ -159,6 +162,8 @@ + std::list fActiveSessions; // List of active sessions (non-idle) + std::list *fRecoverClients; // List of client potentially recovering + ++ XrdSecCredsSaver_t fCredsSaver; // If defined, function to be used to save the credentials ++ + int DoDirectiveProofServMgr(char *, XrdOucStream *, bool); + int DoDirectivePutEnv(char *, XrdOucStream *, bool); + int DoDirectivePutRc(char *, XrdOucStream *, bool); +@@ -252,8 +257,6 @@ + + int SetProofServEnv(XrdProofdProtocol *p, void *in); + int SetProofServEnvOld(XrdProofdProtocol *p, void *in); +- +- int SaveAFSkey(XrdSecCredentials *c, const char *fn, XrdProofUI ui); + int SetUserEnvironment(XrdProofdProtocol *p); + + static int SetProofServEnv(XrdProofdManager *m, XrdROOT *r); +diff -Nur root-5.28.00h.orig/proof/proofd/inc/XrdProofdProtocol.h root-5.28.00h/proof/proofd/inc/XrdProofdProtocol.h +--- root-5.28.00h.orig/proof/proofd/inc/XrdProofdProtocol.h 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/inc/XrdProofdProtocol.h 2013-03-08 11:54:41.991349396 +0100 +@@ -41,10 +41,10 @@ + # include "XrdSys/XrdSysPthread.hh" + #endif + #include "Xrd/XrdLink.hh" +-#include "Xrd/XrdObject.hh" + #include "Xrd/XrdProtocol.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XpdObject.h" + #include "XProofProtocol.h" + + class XrdBuffer; +@@ -133,7 +133,7 @@ + // + // Protocol variables + +- XrdObject fProtLink; ++ XpdObject fProtLink; + XrdBuffer *fArgp; + + XrdLink *fLink; +@@ -178,7 +178,7 @@ + // + static bool fgConfigDone; + static int fgCount; +- static XrdObjectQ fgProtStack; ++ static XpdObjectQ fgProtStack; + static XrdBuffManager *fgBPool; // Buffer manager + static int fgMaxBuffsz; // Maximum buffer size we can have + static XrdSysRecMutex fgBMutex; // Buffer management mutex +diff -Nur root-5.28.00h.orig/proof/proofd/Module.mk root-5.28.00h/proof/proofd/Module.mk +--- root-5.28.00h.orig/proof/proofd/Module.mk 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/Module.mk 2013-03-08 11:54:41.992349404 +0100 +@@ -46,10 +46,10 @@ + XPDLIB := $(LPATH)/libXrdProofd.$(SOEXT) + + # Extra include paths and libs +-XPDINCEXTRA := $(XROOTDDIRI:%=-I%) +-XPDINCEXTRA += $(PROOFDDIRI:%=-I%) ++XPDINCEXTRA := $(XROOTDDIRI:%=-I%) ++XPDINCEXTRA += $(PROOFDDIRI:%=-I%) + +-XPDLIBEXTRA += $(XROOTDDIRL)/libXrdClient.lib ++XPDLIBEXTRA := $(XROOTDDIRL)/libXrdClient.lib + + # used in the main Makefile + PROOFDEXEH := $(MODDIRI)/proofdp.h +@@ -110,18 +110,24 @@ + + # Extra include paths and libs + XPROOFDEXELIBS := +-XPROOFDEXESYSLIBS := $(DNSSDLIB) +-XPROOFDEXE := ++XPROOFDEXESYSLIBS := ++XPROOFDEXE := bin/xproofd ifeq ($(HASXRD),yes) XPDINCEXTRA := $(XROOTDDIRI:%=-I%) XPDINCEXTRA += $(PROOFDDIRI:%=-I%) @@ -36,14 +698,24 @@ diff -ur root-5.28.00c.orig/proof/proofd/Module.mk root-5.28.00c/proof/proofd/Mo - $(XROOTDDIRL)/libXrdNet.a \ - $(XROOTDDIRL)/libXrdOuc.a \ - $(XROOTDDIRL)/libXrdSys.a $(XROOTDDIRL)/libXrdSut.a -+XPDLIBEXTRA += -L$(XROOTDDIRL) -lXrd -lXrdClient -lXrdSut \ -+ -lXrdNet -lXrdOuc -lXrdSys $(DNSSDLIB) -+XPROOFDEXELIBS := -L$(XROOTDDIRL) -lXrd -lXrdClient -lXrdSut \ -+ -lXrdNet -lXrdOuc -lXrdSys - # Starting from Jul 2010 XrdNet has been split in two libs: XrdNet and XrdNetUtil; +-# Starting from Jul 2010 XrdNet has been split in two libs: XrdNet and XrdNetUtil; ++ifeq ($(XRDINCPRIVATE),yes) ++XPDINCEXTRA += -I$(XRDINCDIR)/private ++endif ++ ++ ++ifeq ($(HASXRDUTILS),no) ++ ++XPDLIBEXTRA += $(XROOTDDIRL) -lXrdClient -lXrdNet -lXrdOuc \ ++ -lXrdSys -lXrdSut ++XPROOFDEXELIBS := $(XROOTDDIRL) -lXrd -lXrdClient -lXrdNet -lXrdOuc \ ++ -lXrdSys -lXrdSut ++# Starting from Jul 2010 XrdNet has been split in two libs: ++# XrdNet and XrdNetUtil # both are needed XRDNETUTIL := -@@ -130,8 +128,8 @@ + ifneq ($(XRDVERSION),) +@@ -130,15 +136,22 @@ fi) endif ifeq ($(XRDNETUTIL),yes) @@ -51,15 +723,601 @@ diff -ur root-5.28.00c.orig/proof/proofd/Module.mk root-5.28.00c/proof/proofd/Mo -XPROOFDEXELIBS += $(XROOTDDIRL)/libXrdNetUtil.a +XPDLIBEXTRA += -lXrdNetUtil +XPROOFDEXELIBS += -lXrdNetUtil ++endif ++ ++else ++ ++XPDLIBEXTRA += $(XROOTDDIRL) -lXrdClient -lXrdUtils ++XPROOFDEXELIBS := $(XROOTDDIRL) -lXrdMain -lXrdClient -lXrdUtils ++ endif XPDLIBEXTRA += $(DNSSDLIB) ++XPROOFDEXELIBS += $(DNSSDLIB) -@@ -166,7 +164,7 @@ + ifeq ($(PLATFORM),solaris) + XPROOFDEXESYSLIBS := -lsendfile + endif +-XPROOFDEXE := bin/xproofd + endif + + # used in the main Makefile +@@ -162,12 +175,15 @@ + include/%.h: $(PROOFDDIRI)/%.h + cp $< $@ + +-$(PROOFDEXE): $(PROOFDEXEO) $(RSAO) $(SNPRINTFO) $(GLBPATCHO) $(RPDUTILO) $(STRLCPYO) ++$(PROOFDEXE): $(PROOFDEXEO) $(RSAO) $(SNPRINTFO) $(GLBPATCHO) $(RPDUTILO) \ ++ $(STRLCPYO) $(LD) $(LDFLAGS) -o $@ $(PROOFDEXEO) $(RPDUTILO) $(GLBPATCHO) \ - $(RSAO) $(SNPRINTFO) $(CRYPTLIBS) $(AUTHLIBS) $(STRLCPYO) $(SYSLIBS) +- $(RSAO) $(SNPRINTFO) $(CRYPTLIBS) $(AUTHLIBS) $(STRLCPYO) $(SYSLIBS) ++ $(RSAO) $(SNPRINTFO) $(CRYPTLIBS) $(AUTHLIBS) $(STRLCPYO) \ ++ $(SYSLIBS) --$(XPROOFDEXE): $(XPDO) $(XPROOFDEXELIBS) $(XRDPROOFXD) -+$(XPROOFDEXE): $(XPDO) $(XRDPROOFXD) - $(LD) $(LDFLAGS) -o $@ $(XPDO) $(XPROOFDEXELIBS) $(SYSLIBS) $(XPROOFDEXESYSLIBS) + $(XPROOFDEXE): $(XPDO) $(XPROOFDEXELIBS) $(XRDPROOFXD) +- $(LD) $(LDFLAGS) -o $@ $(XPDO) $(XPROOFDEXELIBS) $(SYSLIBS) $(XPROOFDEXESYSLIBS) ++ $(LD) $(LDFLAGS) -o $@ $(XPDO) $(XPROOFDEXELIBS) \ ++ $(SYSLIBS) $(XPROOFDEXESYSLIBS) $(XPDLIB): $(XPDO) $(XPDH) $(ORDER_) $(MAINLIBS) $(XRDPROOFXD) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ +@@ -182,7 +198,8 @@ + clean:: clean-$(MODNAME) + + distclean-$(MODNAME): clean-$(MODNAME) +- @rm -f $(PROOFDDEP) $(PROOFDEXE) $(XPROOFDEXE) $(XPDDEP) $(XPDLIB) ++ @rm -f $(PROOFDDEP) $(PROOFDEXE) $(XPROOFDEXE) $(XPDDEP) \ ++ $(XPDLIB) + + distclean:: distclean-$(MODNAME) + +diff -Nur root-5.28.00h.orig/proof/proofd/src/XpdObject.cxx root-5.28.00h/proof/proofd/src/XpdObject.cxx +--- root-5.28.00h.orig/proof/proofd/src/XpdObject.cxx 1970-01-01 01:00:00.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XpdObject.cxx 2013-03-08 11:54:41.989349384 +0100 +@@ -0,0 +1,125 @@ ++// @(#)root/proofd:$Id$ ++// Author: Gerardo Ganis Feb 2013 ++ ++/************************************************************************* ++ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * ++ * All rights reserved. * ++ * * ++ * For the licensing terms see $ROOTSYS/LICENSE. * ++ * For the list of contributors see $ROOTSYS/README/CREDITS. * ++ *************************************************************************/ ++ ++////////////////////////////////////////////////////////////////////////// ++// // ++// XpdObject // ++// // ++// Authors: G. Ganis, CERN, 2013 // ++// // ++// Auxilliary class to stack protocols. // ++// // ++////////////////////////////////////////////////////////////////////////// ++ ++#include "XpdObject.h" ++#include "XrdProofdAux.h" ++#include "XrdProofdProtocol.h" ++#include "Xrd/XrdScheduler.hh" ++#include "XrdOuc/XrdOucTrace.hh" ++ ++//_______________________________________________________________________ ++XrdProofdProtocol *XpdObjectQ::Pop() ++{ ++ // Pop up a protocol object ++ ++ XpdObject *node; ++ fQMutex.Lock(); ++ if ((node = fFirst)) { ++ fFirst = fFirst->fNext; ++ fCount--; ++ } ++ fQMutex.UnLock(); ++ if (node) return node->fItem; ++ return (XrdProofdProtocol *)0; ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Push(XpdObject *node) ++{ ++ // Push back a protocol ++ ++ node->fQTime = fCurage; ++ fQMutex.Lock(); ++ if (fCount >= fMaxinQ) { ++ delete node->fItem; ++ } else { ++ node->fNext = fFirst; ++ fFirst = node; ++ fCount++; ++ } ++ fQMutex.UnLock(); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::Set(int inQMax, time_t agemax) ++{ ++ // Lock the data area and set the values ++ ++ fQMutex.Lock(); ++ fMaxinQ = inQMax; fMaxage = agemax; ++ if (!(fMininQ = inQMax/2)) fMininQ = 1; ++ fQMutex.UnLock(); ++ ++ // Schedule ourselves using the new values ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax + time(0)); ++} ++ ++//_______________________________________________________________________ ++void XpdObjectQ::DoIt() ++{ ++ // Process method ++ ++ XpdObject *pp, *p; ++ int oldcnt, agemax; ++ ++ // Lock the anchor and see if we met the threshold for deletion ++ // ++ fQMutex.Lock(); ++ agemax = fMaxage; ++ if ((oldcnt = fCount) > fMininQ) { ++ ++ // Prepare to scan down the queue. ++ if ((pp = fFirst)) { ++ p = pp->fNext; ++ } else { p = 0; } ++ ++ // Find the first object that's been idle for too long ++ while(p && (p->fQTime >= fCurage)) { pp = p; p = p->fNext;} ++ ++ // Now delete half of the idle objects. The object queue element must be ++ // part of the actual object being deleted for this to properly work. ++ if (pp) { ++ while (p) { ++ pp->fNext = p->fNext; ++ delete p->fItem; ++ fCount--; ++ p = ((pp = pp->fNext) ? pp->fNext : 0); ++ } ++ } ++ } ++ ++ // Increase the age and unlock the queue ++ fCurage++; ++ fQMutex.UnLock(); ++ ++ // Trace as needed ++ if (fTraceON && fTrace->Tracing(fTraceON)) ++ {fTrace->Beg(fTraceID); ++ cerr <End(); ++ } ++ ++ // Reschedule ourselves if we must do so ++ if (agemax > 0) ++ fSched->Schedule((XrdJob *)this, agemax+time(0)); ++} ++ +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofConn.cxx root-5.28.00h/proof/proofd/src/XrdProofConn.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofConn.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofConn.cxx 2013-03-08 11:55:39.849845443 +0100 +@@ -35,16 +35,16 @@ + + #include "XrdClient/XrdClientConnMgr.hh" + #include "XrdClient/XrdClientConst.hh" +-#include "XrdClient/XrdClientDebug.hh" + #include "XrdClient/XrdClientEnv.hh" + #include "XrdClient/XrdClientLogConnection.hh" + #include "XrdClient/XrdClientPhyConnection.hh" + #include "XrdClient/XrdClientMessage.hh" + #include "XrdClient/XrdClientUrlInfo.hh" +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdOuc/XrdOucErrInfo.hh" + #include "XrdOuc/XrdOucString.hh" + #include "XrdSec/XrdSecInterface.hh" ++#include "XrdSys/XrdSysLogger.hh" + + // Dynamic libs + // Bypass Solaris ELF madness +@@ -334,7 +334,7 @@ + + // Resolve the DNS information + char *haddr[10] = {0}, *hname[10] = {0}; +- int naddr = XrdNetDNS::getAddrName(fUrl.Host.c_str(), 10, haddr, hname); ++ int naddr = XrdSysDNS::getAddrName(fUrl.Host.c_str(), 10, haddr, hname); + + int i = 0; + for (; i < naddr; i++ ) { +@@ -1223,7 +1223,7 @@ + // for the authentication. + struct sockaddr_in netaddr; + char **hosterrmsg = 0; +- if (XrdNetDNS::getHostAddr((char *)fUrl.HostAddr.c_str(), ++ if (XrdSysDNS::getHostAddr((char *)fUrl.HostAddr.c_str(), + (struct sockaddr &)netaddr, hosterrmsg) <= 0) { + TRACE(XERR, "getHostAddr: "<< *hosterrmsg); + return protocol; +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofdConfig.cxx root-5.28.00h/proof/proofd/src/XrdProofdConfig.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofdConfig.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofdConfig.cxx 2013-03-08 11:54:22.639183484 +0100 +@@ -28,7 +28,7 @@ + # include "XrdSys/XrdSysError.hh" + # include "XrdSys/XrdSysLogger.hh" + #endif +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdOuc/XrdOucEnv.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdOuc/XrdOucString.hh" +@@ -115,7 +115,7 @@ + + // Local FQDN + if (fgHost.length() <= 0) { +- char *host = XrdNetDNS::getHostName(); ++ char *host = XrdSysDNS::getHostName(); + fgHost = host ? host : ""; + SafeFree(host); + } +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofdManager.cxx root-5.28.00h/proof/proofd/src/XrdProofdManager.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofdManager.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofdManager.cxx 2013-03-08 11:54:22.640183493 +0100 +@@ -32,7 +32,7 @@ + # include "XrdSys/XrdSysPlugin.hh" + # include "XrdSys/XrdSysTimer.hh" + #endif +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdOuc/XrdOucEnv.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdSys/XrdSysPriv.hh" +@@ -653,7 +653,7 @@ + } + + // Local FQDN +- char *host = XrdNetDNS::getHostName(); ++ char *host = XrdSysDNS::getHostName(); + fHost = host ? host : ""; + SafeFree(host); + +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofdNetMgr.cxx root-5.28.00h/proof/proofd/src/XrdProofdNetMgr.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofdNetMgr.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofdNetMgr.cxx 2013-03-08 11:54:22.642183510 +0100 +@@ -27,7 +27,7 @@ + #include "XrdClient/XrdClientEnv.hh" + #include "XrdClient/XrdClientMessage.hh" + #include "XrdClient/XrdClientUrlInfo.hh" +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdSys/XrdSysPlatform.hh" + +@@ -77,7 +77,7 @@ + fRequestTO = 30; + fBonjourEnabled = false; + #if defined(BUILD_BONJOUR) +- char *host = XrdNetDNS::getHostName(); ++ char *host = XrdSysDNS::getHostName(); + fBonjourName = host ? host : ""; + SafeFree(host); + fBonjourCores = XrdProofdAux::GetNumCPUs(); +@@ -1042,7 +1042,7 @@ + XrdClientUrlInfo uu(host); + if (uu.Port <= 0) uu.Port = 1093; + // Fully qualified name +- char *fqn = XrdNetDNS::getHostName(uu.Host.c_str()); ++ char *fqn = XrdSysDNS::getHostName(uu.Host.c_str()); + if (fqn && (strstr(fqn, "localhost") || !strcmp(fqn, "127.0.0.1") || + !strcmp(fMgr->Host(), fqn))) { + if (!checkport || (uu.Port == fMgr->Port())) +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofdProofServMgr.cxx root-5.28.00h/proof/proofd/src/XrdProofdProofServMgr.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofdProofServMgr.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofdProofServMgr.cxx 2013-03-08 11:54:29.740244376 +0100 +@@ -32,13 +32,12 @@ + #include "Xrd/XrdPoll.hh" + #include "Xrd/XrdScheduler.hh" + #include "XrdNet/XrdNet.hh" +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdNet/XrdNetPeer.hh" + #include "XrdOuc/XrdOucRash.hh" + #include "XrdOuc/XrdOucStream.hh" + #include "XrdSys/XrdSysPriv.hh" +-#include "XrdSut/XrdSutAux.hh" +- ++#include "XrdSys/XrdSysPlugin.hh" + #include "XrdProofdClient.h" + #include "XrdProofdClientMgr.h" + #include "XrdProofdManager.h" +@@ -297,6 +296,8 @@ + fCounters[i] = 0; + } + fCurrentSessions = 0; ++ ++ fCredsSaver = 0; + + // Defaults can be changed via 'proofservmgr' + fCheckFrequency = 30; +@@ -2414,7 +2415,7 @@ + // Make sure we have the full host name + if (peerpsrv.InetName) { + char *ptmp = peerpsrv.InetName; +- peerpsrv.InetName = XrdNetDNS::getHostName("localhost"); ++ peerpsrv.InetName = XrdSysDNS::getHostName("localhost"); + free(ptmp); + } + +@@ -2681,27 +2682,20 @@ + ev[lev] = 0; + putenv(ev); + TRACE(DBG, "XrdSecCREDS set"); +- +- // If 'pwd', save AFS key, if any +- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = udir; + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- ev = new char[strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2]; +- sprintf(ev, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- putenv(ev); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<AuthProt()->Entity.prot, "pwd", 3)) { ++ if (fCredsSaver) { + XrdOucString credsdir = udir; + credsdir += "/.creds"; + // Make sure the directory exists + if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { +- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { +- ev = new char[strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2]; +- sprintf(ev, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); +- putenv(ev); +- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); +- TRACE(DBG, ev); +- } else { +- TRACE(DBG, "problems in saving AFS key"); ++ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { ++ TRACE(DBG, "problems in saving authentication creds under "<size]; +- if (XrdSutFromHex(c->buffer, out, lout) != 0) { +- TRACE(XERR, "problems unparsing hex string"); +- delete [] out; +- return -1; +- } +- +- // Locate the key +- char *key = out + 5; +- if (strncmp(key, "afs:", 4)) { +- TRACE(DBG, "string does not contain an AFS key"); +- delete [] out; +- return 0; +- } +- key += 4; +- +- // Save to file, if not existing already +- XrdOucString fn = dir; +- fn += "/.afs"; +- +- int rc = 0; +- struct stat st; +- if (stat(fn.c_str(), &st) != 0 && errno == ENOENT) { +- +- // Open the file, truncating if already existing +- int fd = open(fn.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0600); +- if (fd <= 0) { +- TRACE(XERR, "problems creating file - errno: " << errno); +- delete [] out; +- return -1; +- } +- // Write out the key +- int lkey = lout - 9; +- if (XrdProofdAux::Write(fd, key, lkey) != lkey) { +- TRACE(XERR, "problems writing to file - errno: " << errno); +- rc = -1; +- } +- +- // Cleanup +- delete [] out; +- close(fd); +- } else { +- TRACE(XERR, "cannot stat existing file "< +- XrdProofdProtocol::fgProtStack("ProtStack", ++XpdObjectQ XrdProofdProtocol::fgProtStack("ProtStack", + "xproofd protocol anchor"); + XrdSysRecMutex XrdProofdProtocol::fgBMutex; // Buffer management mutex + XrdBuffManager *XrdProofdProtocol::fgBPool = 0; +@@ -460,8 +459,12 @@ + // Schedule protocol object cleanup; the maximum number of objects + // and the max age are taken from XrdXrootdProtocol: this may need + // some optimization in the future. ++#if 1 + fgProtStack.Set(pi->Sched, XrdProofdTrace, TRACE_MEM); + fgProtStack.Set((pi->ConnMax/3 ? pi->ConnMax/3 : 30), 60*60); ++#else ++ fgProtStack.Set(pi->Sched, 3600); ++#endif + + // Default tracing options: always trace logins and errors for all + // domains; if the '-d' option was specified on the command line then +@@ -683,6 +686,13 @@ + + // Push ourselves on the stack + fgProtStack.Push(&fProtLink); ++#if 0 ++ if(fgProtStack.Push(&fProtLink) != 0) { ++ XrdProofdProtocol *xp = fProtLink.objectItem(); ++ fProtLink.setItem(0); ++ delete xp; ++ } ++#endif + } + + //______________________________________________________________________________ +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofPhyConn.cxx root-5.28.00h/proof/proofd/src/XrdProofPhyConn.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofPhyConn.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofPhyConn.cxx 2013-03-08 11:54:22.645183535 +0100 +@@ -27,7 +27,7 @@ + #include "XrdClient/XrdClientConst.hh" + #include "XrdClient/XrdClientLogConnection.hh" + #include "XrdClient/XrdClientMessage.hh" +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XrdSec/XrdSecInterface.hh" + + #ifndef WIN32 +@@ -91,7 +91,7 @@ + + // Host and Port + if (!fTcp) { +- fHost = XrdNetDNS::getHostName(((fUrl.Host.length() > 0) ? ++ fHost = XrdSysDNS::getHostName(((fUrl.Host.length() > 0) ? + fUrl.Host.c_str() : "localhost")); + fPort = -1; + fUrl.Host = ""; +diff -Nur root-5.28.00h.orig/proof/proofd/src/XrdProofWorker.cxx root-5.28.00h/proof/proofd/src/XrdProofWorker.cxx +--- root-5.28.00h.orig/proof/proofd/src/XrdProofWorker.cxx 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofd/src/XrdProofWorker.cxx 2013-03-08 11:54:22.645183535 +0100 +@@ -27,7 +27,7 @@ + #include "XrdProofWorker.h" + #include "XrdProofdProofServ.h" + #include "XrdClient/XrdClientUrlInfo.hh" +-#include "XrdNet/XrdNetDNS.hh" ++#include "XrdSys/XrdSysDNS.hh" + #include "XProofProtocol.h" + + // Tracing utilities +@@ -99,7 +99,7 @@ + // Take the user name, if specified + fUser = ui.User; + char *err; +- char *fullHostName = XrdNetDNS::getHostName((char *)ui.Host.c_str(), &err); ++ char *fullHostName = XrdSysDNS::getHostName((char *)ui.Host.c_str(), &err); + if (!fullHostName || !strcmp(fullHostName, "0.0.0.0")) { + TRACE(XERR, "DNS could not resolve '" << ui.Host << "'"); + return; +diff -Nur root-5.28.00h.orig/proof/proofx/Module.mk root-5.28.00h/proof/proofx/Module.mk +--- root-5.28.00h.orig/proof/proofx/Module.mk 2011-11-24 17:12:38.000000000 +0100 ++++ root-5.28.00h/proof/proofx/Module.mk 2013-03-08 11:54:42.795356301 +0100 +@@ -61,13 +61,18 @@ + PROOFXINCEXTRA := $(PROOFXDIRI:%=-I%) + PROOFXINCEXTRA += $(XROOTDDIRI:%=-I%) + PROOFXINCEXTRA += $(PROOFDDIRI:%=-I%) ++ifeq ($(XRDINCPRIVATE),yes) ++PROOFXINCEXTRA += -I$(XRDINCDIR)/private ++endif + + # Xrootd client libs + ifeq ($(PLATFORM),win32) + PROOFXLIBEXTRA += $(XROOTDDIRL)/libXrdClient.lib + else +-PROOFXLIBEXTRA += -L$(XROOTDDIRL) -lXrdOuc -lXrdSys -lXrdNet -lXrdClient +-# Starting from Jul 2010 XrdNet has been split in two libs: XrdNet and XrdNetUtil; ++ifeq ($(HASXRDUTILS),no) ++PROOFXLIBEXTRA += $(XROOTDDIRL) -lXrdOuc -lXrdSys -lXrdNet -lXrdClient ++# Starting from Jul 2010 XrdNet has been split in two libs: ++# XrdNet and XrdNetUtil + # both are needed + XRDNETUTIL := + ifneq ($(XRDVERSION),) +@@ -78,6 +83,9 @@ + ifeq ($(XRDNETUTIL),yes) + PROOFXLIBEXTRA += -lXrdNetUtil + endif ++else ++PROOFXLIBEXTRA += $(XROOTDDIRL) -lXrdUtils -lXrdClient ++endif + endif + + ##### local rules ##### diff --git a/root.spec b/root.spec index 1afafdf..23ebeb0 100644 --- a/root.spec +++ b/root.spec @@ -30,7 +30,7 @@ Name: root Version: 5.28.00h %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -57,17 +57,21 @@ Patch0: %{name}-ftgl.patch Patch1: %{name}-fontconfig.patch # Use system unuran: Patch2: %{name}-unuran.patch -# Workaround for broken Form() on ppc +# Workaround for broken Form() on ppc: Patch3: %{name}-cern-ppc.patch -# Fix an issue with the TGListBox height (backported from trunk) +# Fix an issue with the TGListBox height (backported from trunk): Patch4: %{name}-listbox-height.patch -# Fixes for external xrootd +# Fixes for new xrootd (backported from trunk): Patch5: %{name}-xrootd.patch -# Fix hardcoded include path +# Fix hardcoded include path: # https://savannah.cern.ch/bugs/index.php?91463 Patch6: %{name}-meta.patch -# Backport fixes for using aclic with versioned libraries +# Backport fixes for using aclic with versioned libraries: Patch7: %{name}-aclic-versioned-libs.patch +# Fixes for gfal (mostly backported from trunk): +Patch8: %{name}-gfal-bits.patch +# Remove unnecessary Qt linkage (backported from trunk): +Patch9: %{name}-qt.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 @@ -113,9 +117,6 @@ BuildRequires: python26-devel %endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: qt4-devel -%if %{?fedora}%{!?fedora:0} >= 14 -BuildRequires: qt4-webkit-devel -%endif %endif BuildRequires: ruby BuildRequires: ruby-devel @@ -127,7 +128,8 @@ BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel -BuildRequires: xrootd-devel +BuildRequires: xrootd-client-devel +BuildRequires: xrootd-private-devel BuildRequires: cfitsio-devel %if %{gfal} BuildRequires: gfal-devel @@ -1051,6 +1053,8 @@ fi %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 +%patch9 -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 \ @@ -1123,7 +1127,8 @@ sed s/c1/c1simp/g -i tutorials/hsimple.C %if "%{?rhel}" == "5" # Build PyROOT for python 2.6 cp -pr bindings/pyroot bindings/pyroot26 -sed 's/python /python26 /' -i bindings/pyroot26/Module.mk +sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ + -i bindings/pyroot26/Module.mk %endif %build @@ -1156,6 +1161,7 @@ unset QTINC --enable-fftw3 \ --enable-fitsio \ --enable-gdml \ + --enable-genvector \ %if %{gfal} --enable-gfal \ --with-gfal-incdir=%{_includedir} \ @@ -1163,7 +1169,6 @@ unset QTINC %else --disable-gfal \ %endif - --enable-genvector \ --enable-globus \ --enable-gsl-shared \ --enable-gviz \ @@ -2323,6 +2328,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Mar 02 2013 Mattias Ellert - 5.28.00h-3 +- Rebuild for xrootd 3.3 +- Backport gfal fixes + * Fri Jun 29 2012 Mattias Ellert - 5.28.00h-2 - Backport fixes for using aclic with versioned libraries - New sub-package: root-io-gfal From d7c587d5ba73299b8574a86e2e20ae9605df5a04 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 23 Mar 2013 04:20:57 +0100 Subject: [PATCH 029/344] Rebuild for ruby 2.0 - Rebuild for cfitsio 3.330 --- root-fontconfig.patch | 3 +- root-ruby-version.patch | 69 +++++++++++++++++++++++++++++++++++++++++ root.spec | 25 +++++++++++---- 3 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 root-ruby-version.patch diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 4c333e9..56604c0 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -531,9 +531,8 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ fgCharMap[fgCurFontIdx] = 0; fgFontCount++; -- if (italic) { + if (italic) { - fgSymbItaFontIdx = fgCurFontIdx; -+ if (fontid == 15) { FT_Matrix slantMat; slantMat.xx = (1 << 16); slantMat.xy = ((1 << 16) >> 2); diff --git a/root-ruby-version.patch b/root-ruby-version.patch new file mode 100644 index 0000000..ffc8b5a --- /dev/null +++ b/root-ruby-version.patch @@ -0,0 +1,69 @@ +diff -ur root-5.34.05.orig/bindings/ruby/src/drr.cxx root-5.34.05/bindings/ruby/src/drr.cxx +--- root-5.34.05.orig/bindings/ruby/src/drr.cxx 2013-02-14 23:27:40.000000000 +0100 ++++ root-5.34.05/bindings/ruby/src/drr.cxx 2013-03-22 17:06:56.516498395 +0100 +@@ -163,36 +163,6 @@ + return arr; + } + +-void * rr_parse_void (VALUE o) +-{ +- VALUE *i; +- +- switch (TYPE(o)) +- { +- case T_STRING: +- return (void *) RSTRING_PTR(o); +- case T_FLOAT: +- return (void *) &RFLOAT_VALUE(o); +- case T_FIXNUM: +- /* FIXME: Memory leak until I find the correct way. Until +- * then please use integers in TTrees with care. --elathan +- */ +- i = (VALUE*) malloc (sizeof(VALUE)); +- *i = (int) (o>>1); +- return (void *) i; +- case T_OBJECT: +- RRGRAB(o, void *, res); +- return res; +- default: +- VALUE tmp = CLASS_OF(o); +- rb_fatal ("Failed convertion of %d to void *.\n", +- StringValuePtr(tmp)); +- break; +- } +- +- return (void *) NULL; +-} +- + VALUE rr_bool (Bool_t q) + { + VALUE res = Qnil; +diff -ur root-5.34.05.orig/bindings/ruby/src/rrcommon.h root-5.34.05/bindings/ruby/src/rrcommon.h +--- root-5.34.05.orig/bindings/ruby/src/rrcommon.h 2013-02-14 23:27:40.000000000 +0100 ++++ root-5.34.05/bindings/ruby/src/rrcommon.h 2013-03-22 17:06:25.969498395 +0100 +@@ -97,8 +97,6 @@ + VALUE rr_arrayd_new (const TArrayD *a); + VALUE rr_seqcollection_new (TSeqCollection *sc); + +-void * rr_parse_void (VALUE o); +- + /* mod convertions */ + void rr_tattfill_conv(void **ptr, VALUE klass); + void rr_tattline_conv(void **ptr, VALUE klass); +diff -ur root-5.34.05.orig/configure root-5.34.05/configure +--- root-5.34.05.orig/configure 2013-02-14 23:27:56.000000000 +0100 ++++ root-5.34.05/configure 2013-03-22 17:05:56.299498395 +0100 +@@ -6850,9 +6850,10 @@ + + if test ! "x$enable_ruby" = "xno"; then + echo "" >> RConfigOptions-out.tmp +- ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]' | \ +- sed 's/^\([0-9]\)\.\([0-9]\).*$/#define R__RUBY_MAJOR \1@#define R__RUBY_MINOR \2/' | \ +- tr '@' '\n' >> RConfigOptions-out.tmp ++ RUBY_MAJOR=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["MAJOR"]'` ++ RUBY_MINOR=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["MINOR"]'` ++ echo "#define R__RUBY_MAJOR $RUBY_MAJOR" >> RConfigOptions-out.tmp ++ echo "#define R__RUBY_MINOR $RUBY_MINOR" >> RConfigOptions-out.tmp + fi + + # only update $CONFIGOPTOUT when different diff --git a/root.spec b/root.spec index 766711b..4fe1b99 100644 --- a/root.spec +++ b/root.spec @@ -9,13 +9,17 @@ %{!?ruby_sitearchdir: %global ruby_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)} -%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +%if %{?fedora}%{!?fedora:0} >= 19 || %{?rhel}%{!?rhel:0} >= 7 +%global ruby_installdir %{ruby_vendorarchdir} +%else +%if %{?fedora}%{!?fedora:0} >= 17 %global ruby_installdir %{ruby_vendorarchdir} %global ruby_abi 1.9.1 %else %global ruby_installdir %{ruby_sitearchdir} %global ruby_abi 1.8 %endif +%endif %if %($(pkg-config emacs) ; echo $?) %global emacs_version 21.4 @@ -28,7 +32,7 @@ Name: root Version: 5.34.05 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -67,10 +71,12 @@ Patch6: %{name}-thtml-revert.patch # Don't save in all image formats: Patch7: %{name}-no-extra-formats.patch # Graphviz libgraph deprecated: -Patch8: %%{name}-gviz.patch +Patch8: %{name}-gviz.patch +# Don't use ruby_version - it is not portable +Patch9: %{name}-ruby-version.patch # Backport xrootd 3.3 support: -Patch9: %{name}-rev48681.patch -Patch10: %{name}-rev48831.patch +Patch10: %{name}-rev48681.patch +Patch11: %{name}-rev48831.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 @@ -352,7 +358,9 @@ provide a Python interface to ROOT, and a ROOT interface to Python. Summary: Ruby extension for ROOT Group: Applications/Engineering Provides: ruby(libRuby) = %{version} +%if %{?ruby_abi:1}%{!?ruby_abi:0} Requires: ruby(abi) = %{ruby_abi} +%endif %description ruby This package contains the Ruby extension for ROOT. The interface @@ -1066,8 +1074,9 @@ fi %patch6 -p1 %patch7 -p1 %patch8 -p1 -%patch9 -p0 +%patch9 -p1 %patch10 -p0 +%patch11 -p0 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 \ @@ -2328,6 +2337,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Wed Mar 20 2013 Mattias Ellert - 5.34.05-2 +- Rebuild for ruby 2.0 +- Rebuild for cfitsio 3.330 + * Wed Feb 27 2013 Mattias Ellert - 5.34.05-1 - Update to 5.34.05 - Rebuild for xrootd 3.3 From 9820501d6a042cd272a86e77bcbaa1cf53d8096f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 27 Apr 2013 15:14:01 +0200 Subject: [PATCH 030/344] Update to 5.34.06 - Drop patches root-gviz.patch, root-ruby-version.patch, root-rev48681.patch and root-rev48831.patch --- root-gfal-bits.patch | 4 +- root-gviz.patch | 116 -------- root-rev48681.patch | 199 ------------- root-rev48831.patch | 619 ---------------------------------------- root-ruby-version.patch | 69 ----- root.spec | 27 +- sources | 2 +- 7 files changed, 15 insertions(+), 1021 deletions(-) delete mode 100644 root-gviz.patch delete mode 100644 root-rev48681.patch delete mode 100644 root-rev48831.patch delete mode 100644 root-ruby-version.patch diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch index edf424e..73df8c0 100644 --- a/root-gfal-bits.patch +++ b/root-gfal-bits.patch @@ -1,9 +1,9 @@ diff -ur root-5.34.05.orig/io/gfal/Module.mk root-5.34.05/io/gfal/Module.mk --- root-5.34.05.orig/io/gfal/Module.mk 2013-02-14 23:27:54.000000000 +0100 +++ root-5.34.05/io/gfal/Module.mk 2013-02-26 20:58:00.150088502 +0100 -@@ -71,3 +71,5 @@ +@@ -71,4 +71,5 @@ $(GFALO) $(GFALDO): CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) $(GFALO): CXXFLAGS += $(GFALINCDIR:%=-I%) $(GFALO): CXXFLAGS += $(SRMIFCEINCDIR:%=-I%) +$(GFALO): CXXFLAGS += $(shell pkg-config --cflags glib-2.0) -+$(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 + $(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/root-gviz.patch b/root-gviz.patch deleted file mode 100644 index 8631327..0000000 --- a/root-gviz.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff -ur root-5.34.05.orig/configure root-5.34.05/configure ---- root-5.34.05.orig/configure 2013-02-14 23:27:56.000000000 +0100 -+++ root-5.34.05/configure 2013-03-07 19:40:36.108220359 +0100 -@@ -3639,7 +3639,7 @@ - gvizlib1=$found_lib - gvizlib1raw=$found_raw_lib - gvizlibir=$found_dir -- check_library "libgraph graph" "no" "$gvizlibdir" \ -+ check_library "libgraph graph libcgraph cgraph" "no" "$gvizlibdir" \ - $GVIZ ${GVIZ:+$GVIZ/lib/graphviz} ${GVIZ:+$GVIZ/lib} ${GVIZ:+$GVIZ/.libs} \ - ${finkdir:+$finkdir/lib} \ - /usr/local/lib /usr/lib -diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphEdge.h root-5.34.05/graf2d/gviz/inc/TGraphEdge.h ---- root-5.34.05.orig/graf2d/gviz/inc/TGraphEdge.h 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/inc/TGraphEdge.h 2013-03-07 19:35:10.936220359 +0100 -@@ -20,8 +20,13 @@ - #include "TAttLine.h" - #endif - -+#if !defined(__CINT__) -+#include -+#else - struct Agraph_t; - struct Agedge_t; -+#endif -+ - class TGraphNode; - - ////////////////////////////////////////////////////////////////////////// -diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphNode.h root-5.34.05/graf2d/gviz/inc/TGraphNode.h ---- root-5.34.05.orig/graf2d/gviz/inc/TGraphNode.h 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/inc/TGraphNode.h 2013-03-07 19:35:10.946220359 +0100 -@@ -28,9 +28,12 @@ - #include "TAttLine.h" - #endif - -+#if !defined(__CINT__) -+#include -+#else - struct Agraph_t; - struct Agnode_t; -- -+#endif - - ////////////////////////////////////////////////////////////////////////// - // // -diff -ur root-5.34.05.orig/graf2d/gviz/inc/TGraphStruct.h root-5.34.05/graf2d/gviz/inc/TGraphStruct.h ---- root-5.34.05.orig/graf2d/gviz/inc/TGraphStruct.h 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/inc/TGraphStruct.h 2013-03-07 19:35:10.954220359 +0100 -@@ -25,7 +25,12 @@ - #include "TList.h" - #endif - -+#if !defined(__CINT__) -+#include -+#else - struct Agraph_t; -+#endif -+ - struct GVC_s; - - ////////////////////////////////////////////////////////////////////////// -diff -ur root-5.34.05.orig/graf2d/gviz/Module.mk root-5.34.05/graf2d/gviz/Module.mk ---- root-5.34.05.orig/graf2d/gviz/Module.mk 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/Module.mk 2013-03-07 19:35:10.921220359 +0100 -@@ -68,4 +68,4 @@ - distclean:: distclean-$(MODNAME) - - ##### extra rules ###### --$(GVIZO): CXXFLAGS += $(GRAPHVIZINCDIR:%=-I%) $(GRAPHVIZCFLAGS) -+$(GVIZO) $(GVIZDO): CXXFLAGS += $(GRAPHVIZINCDIR:%=-I%) $(GRAPHVIZCFLAGS) -diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphEdge.cxx root-5.34.05/graf2d/gviz/src/TGraphEdge.cxx ---- root-5.34.05.orig/graf2d/gviz/src/TGraphEdge.cxx 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/src/TGraphEdge.cxx 2013-03-07 19:35:10.892220359 +0100 -@@ -81,7 +81,11 @@ - if (gv) { - Agnode_t *n1 = fNode1->GetGVNode(); - Agnode_t *n2 = fNode2->GetGVNode(); -+#ifdef WITH_CGRAPH -+ fGVEdge = agedge(gv, n1, n2, NULL, 1); -+#else - fGVEdge = agedge(gv, n1, n2); -+#endif - } else { - Error("CreateGVEdge","Invalid graphviz graph"); - } -diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphNode.cxx root-5.34.05/graf2d/gviz/src/TGraphNode.cxx ---- root-5.34.05.orig/graf2d/gviz/src/TGraphNode.cxx 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/src/TGraphNode.cxx 2013-03-07 19:35:10.904220359 +0100 -@@ -65,7 +65,11 @@ - // Create the GraphViz node into the GraphViz data structure gv. - - if (gv) { -+#ifdef WITH_CGRAPH -+ fGVNode = agnode(gv, (char *)GetName(), 1); -+#else - fGVNode = agnode(gv, (char *)GetName()); -+#endif - } else { - Error("CreateGVNode","Invalid graphviz graph"); - } -diff -ur root-5.34.05.orig/graf2d/gviz/src/TGraphStruct.cxx root-5.34.05/graf2d/gviz/src/TGraphStruct.cxx ---- root-5.34.05.orig/graf2d/gviz/src/TGraphStruct.cxx 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/gviz/src/TGraphStruct.cxx 2013-03-07 19:35:10.913220359 +0100 -@@ -226,7 +226,11 @@ - gvFreeLayout(fGVC,fGVGraph); - agclose(fGVGraph); - } -+#ifdef WITH_CGRAPH -+ fGVGraph = agopen((char*)"GVGraph", Agdirected, 0); -+#else - fGVGraph = agopen((char*)"GVGraph", AGDIGRAPH); -+#endif - - // Put the GV nodes into the GV graph - if (fNodes) { diff --git a/root-rev48681.patch b/root-rev48681.patch deleted file mode 100644 index 409ae83..0000000 --- a/root-rev48681.patch +++ /dev/null @@ -1,199 +0,0 @@ -Index: proof/proofd/src/XrdProofdProofServMgr.cxx -=================================================================== ---- proof/proofd/src/XrdProofdProofServMgr.cxx (revision 48680) -+++ proof/proofd/src/XrdProofdProofServMgr.cxx (revision 48681) -@@ -32,8 +32,7 @@ - #include "XrdOuc/XrdOucRash.hh" - #include "XrdOuc/XrdOucStream.hh" - #include "XrdSys/XrdSysPriv.hh" --#include "XrdSut/XrdSutAux.hh" -- -+#include "XrdSys/XrdSysPlugin.hh" - #include "XrdProofdClient.h" - #include "XrdProofdClientMgr.h" - #include "XrdProofdManager.h" -@@ -287,6 +286,8 @@ - fCurrentSessions = 0; - - fSeqSessionN = 0; -+ -+ fCredsSaver = 0; - - // Defaults can be changed via 'proofservmgr' - fCheckFrequency = 30; -@@ -3091,22 +3092,13 @@ - ev[len] = 0; - putenv(ev); - TRACE(DBG, "XrdSecCREDS set"); -- -- // If 'pwd', save AFS key, if any -- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { -+ if (fCredsSaver) { - XrdOucString credsdir = udir; - credsdir += "/.creds"; - // Make sure the directory exists - if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { -- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { -- len = strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2; -- ev = new char[len]; -- snprintf(ev, len, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); -- putenv(ev); -- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); -- TRACE(DBG, ev); -- } else { -- TRACE(DBG, "problems in saving AFS key"); -+ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { -+ TRACE(DBG, "problems in saving authentication creds under "<fOld); - TRACE(DBG, "XrdSecCREDS set"); - -- // If 'pwd', save AFS key, if any -- if (!strncmp(p->AuthProt()->Entity.prot, "pwd", 3)) { -+ if (fCredsSaver) { - XrdOucString credsdir = p->Client()->Sandbox()->Dir(); - credsdir += "/.creds"; - // Make sure the directory exists - if (!XrdProofdAux::AssertDir(credsdir.c_str(), p->Client()->UI(), fMgr->ChangeOwn())) { -- if (SaveAFSkey(creds, credsdir.c_str(), p->Client()->UI()) == 0) { -- len = strlen("ROOTPROOFAFSCREDS=")+credsdir.length()+strlen("/.afs")+2; -- ev = new char[len]; -- snprintf(ev, len, "ROOTPROOFAFSCREDS=%s/.afs", credsdir.c_str()); -- fprintf(fenv, "ROOTPROOFAFSCREDS has been set\n"); -- TRACE(DBG, ev); -- PutEnv(ev, in->fOld); -- } else { -- TRACE(DBG, "problems in saving AFS key"); -+ if ((*fCredsSaver)(creds, credsdir.c_str(), p->Client()->UI()) != 0) { -+ TRACE(DBG, "problems in saving authentication creds under "<size]; -- if (XrdSutFromHex(c->buffer, out, lout) != 0) { -- TRACE(XERR, "problems unparsing hex string"); -- delete [] out; -- return -1; -- } -- -- // Locate the key -- char *key = out + 5; -- if (strncmp(key, "afs:", 4)) { -- TRACE(DBG, "string does not contain an AFS key"); -- delete [] out; -- return 0; -- } -- key += 4; -- -- // Save to file, if not existing already -- XrdOucString fn = dir; -- fn += "/.afs"; -- int rc = 0; -- -- // Open the file, truncating if already existing -- int fd = open(fn.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0600); -- if (fd < 0) { -- TRACE(XERR, "problems creating file - errno: " << errno); -- delete [] out; -- return -1; -- } -- // Write out the key -- int lkey = lout - 9; -- if (XrdProofdAux::Write(fd, key, lkey) != lkey) { -- TRACE(XERR, "problems writing to file - errno: " << errno); -- rc = -1; -- } -- -- // Cleanup -- delete [] out; -- close(fd); -- -- // Make sure the file is owned by the user -- if (XrdProofdAux::ChangeOwn(fn.c_str(), ui) != 0) { -- TRACE(XERR, "can't change ownership of "<= 0 && t < PSMMAXCNTS) - -+// Security handle -+typedef int (*XrdSecCredsSaver_t)(XrdSecCredentials *, const char *fn, const XrdProofUI &ui); -+ - // Aux structure for session set env inputs - typedef struct { - XrdProofdProofServ *fPS; -@@ -161,6 +164,8 @@ - - std::map fDestroyTimes; // Tracks destroyed sessions - -+ XrdSecCredsSaver_t fCredsSaver; // If defined, function to be used to save the credentials -+ - int DoDirectiveProofServMgr(char *, XrdOucStream *, bool); - int DoDirectivePutEnv(char *, XrdOucStream *, bool); - int DoDirectivePutRc(char *, XrdOucStream *, bool); -@@ -268,8 +273,6 @@ - - int SetProofServEnv(XrdProofdProtocol *p, void *in); - int SetProofServEnvOld(XrdProofdProtocol *p, void *in); -- -- int SaveAFSkey(XrdSecCredentials *c, const char *fn, XrdProofUI ui); - int SetUserEnvironment(XrdProofdProtocol *p); - - static int SetProofServEnv(XrdProofdManager *m, XrdROOT *r); diff --git a/root-rev48831.patch b/root-rev48831.patch deleted file mode 100644 index 2b016c3..0000000 --- a/root-rev48831.patch +++ /dev/null @@ -1,619 +0,0 @@ -Index: cmake/modules/FindXROOTD.cmake -=================================================================== ---- cmake/modules/FindXROOTD.cmake (revision 48830) -+++ cmake/modules/FindXROOTD.cmake (revision 48831) -@@ -28,32 +28,37 @@ - ) - - if (XROOTD_INCLUDE_DIR) -- file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION") -+ file(STRINGS ${XROOTD_INCLUDE_DIR}/XrdVersion.hh xrdvers REGEX "^#define XrdVERSION ") - string(REGEX REPLACE "#define[ ]+XrdVERSION[ ]+" "" xrdvers ${xrdvers}) - string(REGEX REPLACE "[^v\\.]+" "" xrdversdots ${xrdvers}) - if (${xrdversdots} STREQUAL "v..") - # Regular version string; parse it out - string(REGEX MATCH "[0-9\\.]+" xrdvers ${xrdvers}) -- string(REGEX MATCH "[0-9]" xrdversmajor ${xrdvers}) -- string(REPLACE "${xrdversmajor}." "" xrdversminor ${xrdvers}) -- string(REGEX MATCH "[0-9]" xrdversminor ${xrdversminor}) -- string(REPLACE "${xrdversmajor}.${xrdversminor}." "" xrdverspatch ${xrdvers}) -- string(REGEX MATCH "[0-9]+" xrdverspatch ${xrdverspatch}) -+ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\1" xrdversmajor ${xrdvers}) -+ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\2" xrdversminor ${xrdvers}) -+ string(REGEX REPLACE "^([^.]*)\\.(.*)\\.(.*)" "\\3" xrdverspatch ${xrdvers}) - math(EXPR xrdversnum ${xrdversmajor}*100000000+${xrdversminor}*10000+${xrdverspatch}) - else () - # Old version string: we keep only the first numerics, i.e. the date - string(REGEX REPLACE "[v\"]" "" xrdvers ${xrdvers}) -- message(STATUS "Found Xrootd version ${xrdvers}") -- string(REGEX REPLACE "[^0-9-]+" " " xrdvers ${xrdvers}) - string(SUBSTRING ${xrdvers} 0 8 xrdversnum) - endif () -+ if ( ${xrdversnum} EQUAL 300030000 ) -+ SET(XROOTD_FOUND FALSE) -+ message(WARNING " >>> Cannot build with XRootD version 3.3.0: please install >=3.3.1 or <= 3.2.x") -+ else() -+ SET(XROOTD_FOUND TRUE) -+ endif () -+endif() -+ -+if(XROOTD_FOUND) - # This we used as a compiler macro variable - if(NOT XROOTD_FIND_QUIETLY ) -- message(STATUS "Found Xrootd version num: ${xrdvers}") -+ message(STATUS "Found Xrootd version num: ${xrdvers} (setting -DROOTXRDVERS=${xrdversnum})") - endif() - SET(XROOTD_CFLAGS "-DROOTXRDVERS=${xrdversnum}") - -- if ( ${xrdversnum} LESS 300010000 ) -+ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) - SET(XROOTD_OLDPACK TRUE) - message(STATUS "Setting OLDPACK TRUE") - else() -@@ -72,14 +77,16 @@ - XrdOuc/XrdOucPthread.hh - XrdOuc/XrdOucSemWait.hh - XrdOuc/XrdOucTimer.hh -+ PATHS - ${XROOTD_INCLUDE_DIR} - ) - else() -- if ( ${xrdversnum} LESS 300010000 ) -+ if ( ${xrdversnum} LESS 300010000 AND ${xrdversnum} LESS 20111022) - # DNS stuff was under XrdNet - find_path(XROOTD_INCLUDE_DIR - NAMES - XrdNet/XrdNetDNS.hh -+ PATHS - ${XROOTD_INCLUDE_DIR} - ) - else () -@@ -87,6 +94,7 @@ - find_path(XROOTD_INCLUDE_DIR - NAMES - XrdSys/XrdSysDNS.hh -+ PATHS - ${XROOTD_INCLUDE_DIR} - ) - endif () -@@ -101,9 +109,20 @@ - XrdSys/XrdSysPthread.hh - XrdSys/XrdSysSemWait.hh - XrdSys/XrdSysTimer.hh -+ PATHS - ${XROOTD_INCLUDE_DIR} - ) - endif() -+ -+ if (XROOTD_INCLUDE_DIR) -+ # Check for additional headers in new directories -+ find_path(XROOTD_PRIVATE_INCLUDE_DIR -+ NAMES -+ XrdSys/XrdSysPriv.hh -+ PATHS -+ ${XROOTD_INCLUDE_DIR}/private -+ ) -+ endif() - endif() - if (XROOTD_INCLUDE_DIR) - SET(XROOTD_FOUND TRUE) -@@ -152,7 +171,7 @@ - if(XROOTD_LIBRARIES) - set(XROOTD_FOUND TRUE) - if(NOT XROOTD_FIND_QUIETLY ) -- message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR}") -+ message(STATUS " include_dir: ${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}") - message(STATUS " libraries: ${XROOTD_LIBRARIES}") - endif() - else () -@@ -160,7 +179,8 @@ - endif () - endif() - --mark_as_advanced(XROOTD_INCLUDE_DIR -+mark_as_advanced(XROOTD_INCLUDE_DIR -+ XROOTD_PRIVATE_INCLUDE_DIR - XROOTD_XrdMain_LIBRARY - XROOTD_XrdUtils_LIBRARY - XROOTD_XrdClient_LIBRARY -Index: configure -=================================================================== ---- configure (revision 48830) -+++ configure (revision 48831) -@@ -4577,9 +4577,16 @@ - fi - fi - fi -- echo "$xrdver" -+ # Protect against 3.3.0, first version with 'include/xrootd/private' -+ if [ $decver -eq 300030000 ] ; then -+ echo "Cannot build against version $xrdver (missing headers)" -+ enable_xrootd="no" -+ else -+ echo "$xrdver" -+ fi - fi - -+xrdincprivate="no" - if test "x$enable_xrootd" = "xyes" ; then - - extraxrdflags="-DROOTXRDVERS=$decver" -@@ -4635,6 +4642,15 @@ - fi - - # -+ # Check also if 'include/private' exists: we need to signal this to the build modules -+ # for correct location of some headers available form the dlevel packages for version >= 3.3.x -+ if test "x$enable_xrootd" = "xyes"; then -+ if test -d "$xrdincdir/private"; then -+ xrdincprivate="yes" -+ fi -+ fi -+ -+ # - # Check if bonjour is available for code potentially using it ... - if test "x$enable_xrootd" = "xyes"; then - xrdlibdir="$tmpxrdlibdir" -@@ -6730,6 +6746,7 @@ - -e "s|@xpmlibdir@|$xpmlibdir|" \ - -e "s|@xrdlibdir@|$xrdlibdir|" \ - -e "s|@xrdincdir@|$xrdincdir|" \ -+ -e "s|@xrdincprivate@|$xrdincprivate|" \ - -e "s|@xrdversion@|$decver|" \ - -e "s|@hasxrdutils@|$hasxrdutils|" \ - -e "s|@cfitsioincdir@|$cfitsioincdir|" \ -Index: proof/proofd/src/XrdProofConn.cxx -=================================================================== ---- proof/proofd/src/XrdProofConn.cxx (revision 48830) -+++ proof/proofd/src/XrdProofConn.cxx (revision 48831) -@@ -32,7 +32,6 @@ - - #include "XrdClient/XrdClientConnMgr.hh" - #include "XrdClient/XrdClientConst.hh" --#include "XrdClient/XrdClientDebug.hh" - #include "XrdClient/XrdClientEnv.hh" - #include "XrdClient/XrdClientLogConnection.hh" - #include "XrdClient/XrdClientPhyConnection.hh" -@@ -41,6 +40,7 @@ - #include "XrdOuc/XrdOucErrInfo.hh" - #include "XrdOuc/XrdOucString.hh" - #include "XrdSec/XrdSecInterface.hh" -+#include "XrdSys/XrdSysLogger.hh" - #include "XrdSys/XrdSysPlatform.hh" - - // Dynamic libs -Index: proof/proofd/src/XpdObject.cxx -=================================================================== ---- proof/proofd/src/XpdObject.cxx (revision 0) -+++ proof/proofd/src/XpdObject.cxx (revision 48831) -@@ -0,0 +1,125 @@ -+// @(#)root/proofd:$Id$ -+// Author: Gerardo Ganis Feb 2013 -+ -+/************************************************************************* -+ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * -+ * All rights reserved. * -+ * * -+ * For the licensing terms see $ROOTSYS/LICENSE. * -+ * For the list of contributors see $ROOTSYS/README/CREDITS. * -+ *************************************************************************/ -+ -+////////////////////////////////////////////////////////////////////////// -+// // -+// XpdObject // -+// // -+// Authors: G. Ganis, CERN, 2013 // -+// // -+// Auxilliary class to stack protocols. // -+// // -+////////////////////////////////////////////////////////////////////////// -+ -+#include "XpdObject.h" -+#include "XrdProofdAux.h" -+#include "XrdProofdProtocol.h" -+#include "Xrd/XrdScheduler.hh" -+#include "XrdOuc/XrdOucTrace.hh" -+ -+//_______________________________________________________________________ -+XrdProofdProtocol *XpdObjectQ::Pop() -+{ -+ // Pop up a protocol object -+ -+ XpdObject *node; -+ fQMutex.Lock(); -+ if ((node = fFirst)) { -+ fFirst = fFirst->fNext; -+ fCount--; -+ } -+ fQMutex.UnLock(); -+ if (node) return node->fItem; -+ return (XrdProofdProtocol *)0; -+} -+ -+//_______________________________________________________________________ -+void XpdObjectQ::Push(XpdObject *node) -+{ -+ // Push back a protocol -+ -+ node->fQTime = fCurage; -+ fQMutex.Lock(); -+ if (fCount >= fMaxinQ) { -+ delete node->fItem; -+ } else { -+ node->fNext = fFirst; -+ fFirst = node; -+ fCount++; -+ } -+ fQMutex.UnLock(); -+} -+ -+//_______________________________________________________________________ -+void XpdObjectQ::Set(int inQMax, time_t agemax) -+{ -+ // Lock the data area and set the values -+ -+ fQMutex.Lock(); -+ fMaxinQ = inQMax; fMaxage = agemax; -+ if (!(fMininQ = inQMax/2)) fMininQ = 1; -+ fQMutex.UnLock(); -+ -+ // Schedule ourselves using the new values -+ if (agemax > 0) -+ fSched->Schedule((XrdJob *)this, agemax + time(0)); -+} -+ -+//_______________________________________________________________________ -+void XpdObjectQ::DoIt() -+{ -+ // Process method -+ -+ XpdObject *pp, *p; -+ int oldcnt, agemax; -+ -+ // Lock the anchor and see if we met the threshold for deletion -+ // -+ fQMutex.Lock(); -+ agemax = fMaxage; -+ if ((oldcnt = fCount) > fMininQ) { -+ -+ // Prepare to scan down the queue. -+ if ((pp = fFirst)) { -+ p = pp->fNext; -+ } else { p = 0; } -+ -+ // Find the first object that's been idle for too long -+ while(p && (p->fQTime >= fCurage)) { pp = p; p = p->fNext;} -+ -+ // Now delete half of the idle objects. The object queue element must be -+ // part of the actual object being deleted for this to properly work. -+ if (pp) { -+ while (p) { -+ pp->fNext = p->fNext; -+ delete p->fItem; -+ fCount--; -+ p = ((pp = pp->fNext) ? pp->fNext : 0); -+ } -+ } -+ } -+ -+ // Increase the age and unlock the queue -+ fCurage++; -+ fQMutex.UnLock(); -+ -+ // Trace as needed -+ if (fTraceON && fTrace->Tracing(fTraceON)) -+ {fTrace->Beg(fTraceID); -+ cerr <End(); -+ } -+ -+ // Reschedule ourselves if we must do so -+ if (agemax > 0) -+ fSched->Schedule((XrdJob *)this, agemax+time(0)); -+} -+ - -Egenskapsändringar för: proof/proofd/src/XpdObject.cxx -___________________________________________________________________ -Added: svn:eol-style -## -0,0 +1 ## -+LF -\ No newline at end of property -Added: svn:keywords -## -0,0 +1 ## -+Id -\ No newline at end of property -Index: proof/proofd/src/XrdProofdProtocol.cxx -=================================================================== ---- proof/proofd/src/XrdProofdProtocol.cxx (revision 48830) -+++ proof/proofd/src/XrdProofdProtocol.cxx (revision 48831) -@@ -29,6 +29,7 @@ - - #include "XrdVersion.hh" - #include "Xrd/XrdBuffer.hh" -+#include "Xrd/XrdScheduler.hh" - - #include "XrdProofdClient.h" - #include "XrdProofdClientMgr.h" -@@ -54,8 +55,7 @@ - // - // Static area: general protocol managing section - int XrdProofdProtocol::fgCount = 0; --XrdObjectQ -- XrdProofdProtocol::fgProtStack("ProtStack", -+XpdObjectQ XrdProofdProtocol::fgProtStack("ProtStack", - "xproofd protocol anchor"); - XrdSysRecMutex XrdProofdProtocol::fgBMutex; // Buffer management mutex - XrdBuffManager *XrdProofdProtocol::fgBPool = 0; -@@ -542,8 +542,12 @@ - // Schedule protocol object cleanup; the maximum number of objects - // and the max age are taken from XrdXrootdProtocol: this may need - // some optimization in the future. -+#if 1 - fgProtStack.Set(pi->Sched, XrdProofdTrace, TRACE_MEM); - fgProtStack.Set((pi->ConnMax/3 ? pi->ConnMax/3 : 30), 60*60); -+#else -+ fgProtStack.Set(pi->Sched, 3600); -+#endif - - // Default tracing options: always trace logins and errors for all - // domains; if the '-d' option was specified on the command line then -@@ -789,6 +793,13 @@ - - // Push ourselves on the stack - fgProtStack.Push(&fProtLink); -+#if 0 -+ if(fgProtStack.Push(&fProtLink) != 0) { -+ XrdProofdProtocol *xp = fProtLink.objectItem(); -+ fProtLink.setItem(0); -+ delete xp; -+ } -+#endif - } - - //______________________________________________________________________________ -Index: proof/proofd/inc/XrdProofdProtocol.h -=================================================================== ---- proof/proofd/inc/XrdProofdProtocol.h (revision 48830) -+++ proof/proofd/inc/XrdProofdProtocol.h (revision 48831) -@@ -38,10 +38,10 @@ - #include "XpdSysPthread.h" - - #include "Xrd/XrdLink.hh" --#include "Xrd/XrdObject.hh" - #include "Xrd/XrdProtocol.hh" - #include "XrdOuc/XrdOucString.hh" - #include "XrdSec/XrdSecInterface.hh" -+#include "XpdObject.h" - #include "XProofProtocol.h" - - class XrdBuffer; -@@ -131,7 +131,7 @@ - // - // Protocol variables - -- XrdObject fProtLink; -+ XpdObject fProtLink; - XrdBuffer *fArgp; - - XrdLink *fLink; -@@ -176,7 +176,7 @@ - // - static bool fgConfigDone; - static int fgCount; -- static XrdObjectQ fgProtStack; -+ static XpdObjectQ fgProtStack; - static XrdBuffManager *fgBPool; // Buffer manager - static int fgMaxBuffsz; // Maximum buffer size we can have - static XrdSysRecMutex fgBMutex; // Buffer management mutex -Index: proof/proofd/inc/XpdObject.h -=================================================================== ---- proof/proofd/inc/XpdObject.h (revision 0) -+++ proof/proofd/inc/XpdObject.h (revision 48831) -@@ -0,0 +1,100 @@ -+// @(#)root/proofd:$Id$ -+// Author: Gerardo Ganis Feb 2013 -+ -+/************************************************************************* -+ * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * -+ * All rights reserved. * -+ * * -+ * For the licensing terms see $ROOTSYS/LICENSE. * -+ * For the list of contributors see $ROOTSYS/README/CREDITS. * -+ *************************************************************************/ -+ -+////////////////////////////////////////////////////////////////////////// -+// // -+// XpdObject // -+// // -+// Authors: G. Ganis, CERN, 2013 // -+// // -+// Auxilliary class to stack protocols. // -+// Adapted version of XrdObject. // -+// // -+////////////////////////////////////////////////////////////////////////// -+ -+#ifndef ROOT_XpdObject -+#define ROOT_XpdObject -+ -+#include -+#include -+#include -+#include -+#include "Xrd/XrdJob.hh" -+#include "XrdOuc/XrdOucTrace.hh" -+#include "XrdSys/XrdSysPthread.hh" -+ -+class XpdObjectQ; -+class XrdProofdProtocol; -+class XrdScheduler; -+ -+class XpdObject { -+public: -+ friend class XpdObjectQ; -+ -+ // Item() supplies the item value associated with itself (used with Next()). -+ XrdProofdProtocol *objectItem() { return fItem; } -+ -+ // Next() supplies the next list node. -+ XpdObject *nextObject() { return fNext; } -+ -+ // Set the item pointer -+ void setItem(XrdProofdProtocol *ival) { fItem = ival; } -+ -+ XpdObject(XrdProofdProtocol *ival=0) { fNext = 0; fItem = ival; fQTime = 0; } -+ ~XpdObject() {} -+ -+private: -+ XpdObject *fNext; -+ XrdProofdProtocol *fItem; -+ time_t fQTime; // Only used for time-managed objects -+}; -+ -+/******************************************************************************/ -+/* x r d _ O b j e c t Q */ -+/******************************************************************************/ -+ -+// Note to properly cleanup this type of queue you must call Set() at least -+// once to cause the time element to be sceduled. -+ -+class XrdOucTrace; -+ -+class XpdObjectQ : public XrdJob { -+public: -+ -+ XrdProofdProtocol *Pop(); -+ void Push(XpdObject *Node); -+ void Set(int inQMax, time_t agemax=1800); -+ void Set(XrdScheduler *sp, XrdOucTrace *tp, int traceChk = 0) -+ {fSched = sp; fTrace = tp; fTraceON = traceChk;} -+ void DoIt(); -+ -+ XpdObjectQ(const char *id, const char *desc) : XrdJob(desc) -+ {fCurage = fCount = 0; fMaxage = 0; fTraceID = id; -+ fMaxinQ = 32; fMininQ = 16; fFirst = 0; } -+ -+ ~XpdObjectQ() {} -+ -+private: -+ -+ XrdSysMutex fQMutex; -+ XpdObject *fFirst; -+ int fCount; -+ int fCurage; -+ int fMininQ; -+ int fMaxinQ; -+ time_t fMaxage; -+ XrdOucTrace *fTrace; -+ XrdScheduler *fSched; -+ int fTraceON; -+ const char *fTraceID; -+}; -+ -+#endif - -Egenskapsändringar för: proof/proofd/inc/XpdObject.h -___________________________________________________________________ -Added: svn:keywords -## -0,0 +1 ## -+Id -\ No newline at end of property -Added: svn:eol-style -## -0,0 +1 ## -+LF -\ No newline at end of property -Index: proof/proofd/Module.mk -=================================================================== ---- proof/proofd/Module.mk (revision 48830) -+++ proof/proofd/Module.mk (revision 48831) -@@ -127,7 +127,11 @@ - ifeq ($(HASXRD),yes) - XPDINCEXTRA := $(XROOTDDIRI:%=-I%) - XPDINCEXTRA += $(PROOFDDIRI:%=-I%) -+ifeq ($(XRDINCPRIVATE),yes) -+XPDINCEXTRA += -I$(XRDINCDIR)/private -+endif - -+ - ifeq ($(HASXRDUTILS),no) - - XPDLIBEXTRA += $(XROOTDDIRL) -lXrdClient -lXrdNet -lXrdOuc \ -Index: proof/proofd/CMakeLists.txt -=================================================================== ---- proof/proofd/CMakeLists.txt (revision 48830) -+++ proof/proofd/CMakeLists.txt (revision 48831) -@@ -7,7 +7,7 @@ - ROOT_USE_PACKAGE(net/rpdutils) - ROOT_USE_PACKAGE(net/auth) - --include_directories(${XROOTD_INCLUDE_DIR}) -+include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) - add_definitions(${XROOTD_CFLAGS}) - - if(WIN32) -Index: proof/proofx/Module.mk -=================================================================== ---- proof/proofx/Module.mk (revision 48830) -+++ proof/proofx/Module.mk (revision 48831) -@@ -63,6 +63,9 @@ - PROOFXINCEXTRA := $(PROOFXDIRI:%=-I%) - PROOFXINCEXTRA += $(XROOTDDIRI:%=-I%) - PROOFXINCEXTRA += $(PROOFDDIRI:%=-I%) -+ifeq ($(XRDINCPRIVATE),yes) -+PROOFXINCEXTRA += -I$(XRDINCDIR)/private -+endif - - # Xrootd client libs - ifeq ($(PLATFORM),win32) -Index: proof/proofx/CMakeLists.txt -=================================================================== ---- proof/proofx/CMakeLists.txt (revision 48830) -+++ proof/proofx/CMakeLists.txt (revision 48831) -@@ -16,7 +16,7 @@ - ROOT_GLOB_SOURCES(sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cxx) - endif() - --include_directories(${XROOTD_INCLUDE_DIR}) -+include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) - link_directories(${XROOTD_LIBRARY_DIR}) - add_definitions(${XROOTD_CFLAGS}) - -Index: net/netx/Module.mk -=================================================================== ---- net/netx/Module.mk (revision 48830) -+++ net/netx/Module.mk (revision 48831) -@@ -55,6 +55,9 @@ - ifneq ($(EXTRA_XRDFLAGS),) - NETXINCEXTRA += -I$(ROOT_SRCDIR)/proof/proofd/inc - endif -+ifeq ($(XRDINCPRIVATE),yes) -+NETXINCEXTRA += -I$(XRDINCDIR)/private -+endif - - # Xrootd client libs - ifeq ($(PLATFORM),win32) -Index: net/netx/CMakeLists.txt -=================================================================== ---- net/netx/CMakeLists.txt (revision 48830) -+++ net/netx/CMakeLists.txt (revision 48831) -@@ -6,7 +6,7 @@ - ROOT_USE_PACKAGE(net/net) - ROOT_USE_PACKAGE(proof/proofd) - --include_directories(${XROOTD_INCLUDE_DIR}) -+include_directories(${XROOTD_INCLUDE_DIR} ${XROOTD_PRIVATE_INCLUDE_DIR}) - add_definitions(${XROOTD_CFLAGS}) - #--------------------------------------------------------------------------- - -Index: config/Makefile.in -=================================================================== ---- config/Makefile.in (revision 48830) -+++ config/Makefile.in (revision 48831) -@@ -255,6 +255,7 @@ - EXTRA_XRDFLAGS := @extraxrdflags@ - XRDVERSION := @xrdversion@ - HASXRDUTILS := @hasxrdutils@ -+XRDINCPRIVATE := @xrdincprivate@ - - SRPLIBDIR := @srplibdir@ - SRPLIB := @srplib@ diff --git a/root-ruby-version.patch b/root-ruby-version.patch deleted file mode 100644 index ffc8b5a..0000000 --- a/root-ruby-version.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -ur root-5.34.05.orig/bindings/ruby/src/drr.cxx root-5.34.05/bindings/ruby/src/drr.cxx ---- root-5.34.05.orig/bindings/ruby/src/drr.cxx 2013-02-14 23:27:40.000000000 +0100 -+++ root-5.34.05/bindings/ruby/src/drr.cxx 2013-03-22 17:06:56.516498395 +0100 -@@ -163,36 +163,6 @@ - return arr; - } - --void * rr_parse_void (VALUE o) --{ -- VALUE *i; -- -- switch (TYPE(o)) -- { -- case T_STRING: -- return (void *) RSTRING_PTR(o); -- case T_FLOAT: -- return (void *) &RFLOAT_VALUE(o); -- case T_FIXNUM: -- /* FIXME: Memory leak until I find the correct way. Until -- * then please use integers in TTrees with care. --elathan -- */ -- i = (VALUE*) malloc (sizeof(VALUE)); -- *i = (int) (o>>1); -- return (void *) i; -- case T_OBJECT: -- RRGRAB(o, void *, res); -- return res; -- default: -- VALUE tmp = CLASS_OF(o); -- rb_fatal ("Failed convertion of %d to void *.\n", -- StringValuePtr(tmp)); -- break; -- } -- -- return (void *) NULL; --} -- - VALUE rr_bool (Bool_t q) - { - VALUE res = Qnil; -diff -ur root-5.34.05.orig/bindings/ruby/src/rrcommon.h root-5.34.05/bindings/ruby/src/rrcommon.h ---- root-5.34.05.orig/bindings/ruby/src/rrcommon.h 2013-02-14 23:27:40.000000000 +0100 -+++ root-5.34.05/bindings/ruby/src/rrcommon.h 2013-03-22 17:06:25.969498395 +0100 -@@ -97,8 +97,6 @@ - VALUE rr_arrayd_new (const TArrayD *a); - VALUE rr_seqcollection_new (TSeqCollection *sc); - --void * rr_parse_void (VALUE o); -- - /* mod convertions */ - void rr_tattfill_conv(void **ptr, VALUE klass); - void rr_tattline_conv(void **ptr, VALUE klass); -diff -ur root-5.34.05.orig/configure root-5.34.05/configure ---- root-5.34.05.orig/configure 2013-02-14 23:27:56.000000000 +0100 -+++ root-5.34.05/configure 2013-03-22 17:05:56.299498395 +0100 -@@ -6850,9 +6850,10 @@ - - if test ! "x$enable_ruby" = "xno"; then - echo "" >> RConfigOptions-out.tmp -- ruby -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]' | \ -- sed 's/^\([0-9]\)\.\([0-9]\).*$/#define R__RUBY_MAJOR \1@#define R__RUBY_MINOR \2/' | \ -- tr '@' '\n' >> RConfigOptions-out.tmp -+ RUBY_MAJOR=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["MAJOR"]'` -+ RUBY_MINOR=`ruby -rrbconfig -e 'puts RbConfig::CONFIG["MINOR"]'` -+ echo "#define R__RUBY_MAJOR $RUBY_MAJOR" >> RConfigOptions-out.tmp -+ echo "#define R__RUBY_MINOR $RUBY_MINOR" >> RConfigOptions-out.tmp - fi - - # only update $CONFIGOPTOUT when different diff --git a/root.spec b/root.spec index 4fe1b99..fc869dc 100644 --- a/root.spec +++ b/root.spec @@ -30,9 +30,9 @@ %endif Name: root -Version: 5.34.05 +Version: 5.34.06 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -70,13 +70,6 @@ Patch5: %{name}-gfal-bits.patch Patch6: %{name}-thtml-revert.patch # Don't save in all image formats: Patch7: %{name}-no-extra-formats.patch -# Graphviz libgraph deprecated: -Patch8: %{name}-gviz.patch -# Don't use ruby_version - it is not portable -Patch9: %{name}-ruby-version.patch -# Backport xrootd 3.3 support: -Patch10: %{name}-rev48681.patch -Patch11: %{name}-rev48831.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 @@ -1073,10 +1066,10 @@ fi %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p0 -%patch11 -p0 +#%patch8 -p1 +#%patch9 -p1 +#%patch10 -p0 +#%patch11 -p0 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 \ @@ -2196,8 +2189,7 @@ fi %{_datadir}/%{name}/plugins/TApplication/P020_TApplicationServer.C %{_datadir}/%{name}/plugins/TFile/P010_TWebFile.C %{_datadir}/%{name}/plugins/TFile/P120_TNetFile.C -%{_datadir}/%{name}/plugins/TFile/P130_TAS3File.C -%{_datadir}/%{name}/plugins/TFile/P140_TGSFile.C +%{_datadir}/%{name}/plugins/TFile/P150_TS3WebFile.C %{_datadir}/%{name}/plugins/TFileStager/P020_TNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P050_TWebSystem.C %{_datadir}/%{name}/plugins/TSystem/P070_TNetSystem.C @@ -2337,6 +2329,11 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Apr 27 2013 Mattias Ellert - 5.34.06-1 +- Update to 5.34.06 +- Drop patches root-gviz.patch, root-ruby-version.patch, + root-rev48681.patch and root-rev48831.patch + * Wed Mar 20 2013 Mattias Ellert - 5.34.05-2 - Rebuild for ruby 2.0 - Rebuild for cfitsio 3.330 diff --git a/sources b/sources index b0b813c..e1416ca 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0dd415d539f5bb8ec21c9f49b2f9c5fd root-5.34.05.tar.gz +16c6a60c4a5361cf7ee6dfa4598dd3e8 root-5.34.06.tar.gz From 09aa067334e72f2a94753b7af90b8b6ffa1078e0 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 27 Apr 2013 20:42:11 +0200 Subject: [PATCH 031/344] Update to 5.34.07 --- root.spec | 9 ++++----- sources | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/root.spec b/root.spec index fc869dc..dc73661 100644 --- a/root.spec +++ b/root.spec @@ -30,7 +30,7 @@ %endif Name: root -Version: 5.34.06 +Version: 5.34.07 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -1066,10 +1066,6 @@ fi %patch5 -p1 %patch6 -p1 %patch7 -p1 -#%patch8 -p1 -#%patch9 -p1 -#%patch10 -p0 -#%patch11 -p0 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 \ @@ -2329,6 +2325,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Apr 27 2013 Mattias Ellert - 5.34.07-1 +- Update to 5.34.07 + * Sat Apr 27 2013 Mattias Ellert - 5.34.06-1 - Update to 5.34.06 - Drop patches root-gviz.patch, root-ruby-version.patch, diff --git a/sources b/sources index e1416ca..c5fddbd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -16c6a60c4a5361cf7ee6dfa4598dd3e8 root-5.34.06.tar.gz +6fda5e6b48dadf4eda1498cdfa3d8637 root-5.34.07.tar.gz From 5546392862f1e703499657afa1fec7b0cb345dc4 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 28 Jun 2013 06:29:03 +0200 Subject: [PATCH 032/344] Disable gfal support for EPEL 5 ppc --- root.spec | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/root.spec b/root.spec index dc73661..cb3d355 100644 --- a/root.spec +++ b/root.spec @@ -7,6 +7,16 @@ %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 @@ -129,8 +139,10 @@ BuildRequires: dpm-devel BuildRequires: xrootd-client-devel BuildRequires: xrootd-private-devel BuildRequires: cfitsio-devel +%if %{gfal} BuildRequires: gfal-devel BuildRequires: srm-ifce-devel +%endif BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran @@ -608,12 +620,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 %package io-rfio Summary: Remote File input/output library for ROOT @@ -1173,9 +1187,13 @@ unset QTINC --enable-fitsio \ --enable-gdml \ --enable-genvector \ +%if %{gfal} --enable-gfal \ --with-gfal-incdir=%{_includedir} \ --with-gfal-libdir=%{_libdir} \ +%else + --disable-gfal \ +%endif --enable-globus \ --enable-gsl-shared \ --enable-gviz \ @@ -1382,6 +1400,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 rm TFile/P110_THDFSFile.C @@ -1618,8 +1639,10 @@ 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 %post io-rfio -p /sbin/ldconfig %postun io-rfio -p /sbin/ldconfig %post io-sql -p /sbin/ldconfig @@ -2049,10 +2072,12 @@ fi %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C +%if %{gfal} %files io-gfal -f includelist-io-gfal %defattr(-,root,root,-) %{_libdir}/%{name}/libGFAL.* %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C +%endif %files io-rfio -f includelist-io-rfio %defattr(-,root,root,-) From 4bec959a0d4fec25aaf563622ec0501abf388e22 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 28 Jun 2013 08:21:44 +0200 Subject: [PATCH 033/344] Update to 5.34.09 - New sub-package: root-montecarlo-pythia8 - Drop patch root-gfal-bits.patch - Use xz compression for source tarfile - Update ancient root version in EPEL --- .gitignore | 1 + root-doc-latex.patch | 66 ++++++++++++++++++++++++++++++++++++ root-gfal-bits.patch | 9 ----- root.spec | 79 +++++++++++++++++++++++++++++++++++++++----- sources | 2 +- 5 files changed, 138 insertions(+), 19 deletions(-) create mode 100644 root-doc-latex.patch delete mode 100644 root-gfal-bits.patch diff --git a/.gitignore b/.gitignore index f6a3a77..5c35620 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /*.tar.gz +/*.tar.xz diff --git a/root-doc-latex.patch b/root-doc-latex.patch new file mode 100644 index 0000000..c3150a0 --- /dev/null +++ b/root-doc-latex.patch @@ -0,0 +1,66 @@ +diff -ur root-5.34.09.orig/hist/hist/src/TEfficiency.cxx root-5.34.09/hist/hist/src/TEfficiency.cxx +--- root-5.34.09.orig/hist/hist/src/TEfficiency.cxx 2013-06-26 17:05:06.000000000 +0200 ++++ root-5.34.09/hist/hist/src/TEfficiency.cxx 2013-06-27 07:06:03.769693346 +0200 +@@ -2498,7 +2498,7 @@ + //the same process. + // + //The new weight is set according to: +- //Begin_Latex #frac{1}{w_{new}} = #sum_{i} \frac{1}{w_{i}}End_Latex ++ //Begin_Latex #frac{1}{w_{new}} = #sum_{i} #frac{1}{w_{i}}End_Latex + + if(!pList->IsEmpty()) { + TIter next(pList); +@@ -2558,7 +2558,7 @@ + //calculates a new weight: + //current weight of this TEfficiency object = Begin_Latex w_{1} End_Latex + //weight of rhs = Begin_Latex w_{2} End_Latex +- //Begin_Latex w_{new} = \frac{w_{1} \times w_{2}}{w_{1} + w_{2}}End_Latex ++ //Begin_Latex w_{new} = #frac{w_{1} #times w_{2}}{w_{1} + w_{2}}End_Latex + + + if (fTotalHistogram == 0 && fPassedHistogram == 0) { +@@ -2971,11 +2971,11 @@ + //______________________________________________________________________________ + void TEfficiency::SetBetaAlpha(Double_t alpha) + { +- //sets the shape parameter Begin_Latex \alpha End_Latex ++ //sets the shape parameter Begin_Latex #alpha End_Latex + // + //The prior probability of the efficiency is given by the beta distribution: + //Begin_Latex +- // f(\varepsilon;\alpha;\beta) = \frac{1}{B(\alpha,\beta)} \varepsilon^{\alpha-1} (1 - \varepsilon)^{\beta-1} ++ // f(#varepsilon;#alpha;#beta) = #frac{1}{B(#alpha,#beta)} #varepsilon^{#alpha-1} (1 - #varepsilon)^{#beta-1} + //End_Latex + // + //Note: - both shape parameters have to be positive (i.e. > 0) +@@ -2989,11 +2989,11 @@ + //______________________________________________________________________________ + void TEfficiency::SetBetaBeta(Double_t beta) + { +- //sets the shape parameter Begin_Latex \beta End_Latex ++ //sets the shape parameter Begin_Latex #beta End_Latex + // + //The prior probability of the efficiency is given by the beta distribution: + //Begin_Latex +- // f(\varepsilon;\alpha,\beta) = \frac{1}{B(\alpha,\beta)} \varepsilon^{\alpha-1} (1 - \varepsilon)^{\beta-1} ++ // f(#varepsilon;#alpha,#beta) = #frac{1}{B(#alpha,#beta)} #varepsilon^{#alpha-1} (1 - #varepsilon)^{#beta-1} + //End_Latex + // + //Note: - both shape parameters have to be positive (i.e. > 0) +@@ -3007,12 +3007,12 @@ + //______________________________________________________________________________ + void TEfficiency::SetBetaBinParameters(Int_t bin, Double_t alpha, Double_t beta) + { +- //sets different shape parameter Begin_Latex \alpha and \beta End_Latex +- // for the prior distribution for each bin. By default the global parameter are used if they are not set +- // for the specific bin ++ //sets different shape parameter Begin_Latex #alpha and #beta End_Latex ++ //for the prior distribution for each bin. By default the global parameter are used if they are not set ++ //for the specific bin + //The prior probability of the efficiency is given by the beta distribution: + //Begin_Latex +- // f(\varepsilon;\alpha;\beta) = \frac{1}{B(\alpha,\beta)} \varepsilon^{\alpha-1} (1 - \varepsilon)^{\beta-1} ++ // f(#varepsilon;#alpha;#beta) = #frac{1}{B(#alpha,#beta)} #varepsilon^{#alpha-1} (1 - #varepsilon)^{#beta-1} + //End_Latex + // + //Note: - both shape parameters have to be positive (i.e. > 0) diff --git a/root-gfal-bits.patch b/root-gfal-bits.patch deleted file mode 100644 index 73df8c0..0000000 --- a/root-gfal-bits.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -ur root-5.34.05.orig/io/gfal/Module.mk root-5.34.05/io/gfal/Module.mk ---- root-5.34.05.orig/io/gfal/Module.mk 2013-02-14 23:27:54.000000000 +0100 -+++ root-5.34.05/io/gfal/Module.mk 2013-02-26 20:58:00.150088502 +0100 -@@ -71,4 +71,5 @@ - $(GFALO) $(GFALDO): CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) - $(GFALO): CXXFLAGS += $(GFALINCDIR:%=-I%) - $(GFALO): CXXFLAGS += $(SRMIFCEINCDIR:%=-I%) -+$(GFALO): CXXFLAGS += $(shell pkg-config --cflags glib-2.0) - $(GFALO): CXXFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/root.spec b/root.spec index cb3d355..525b975 100644 --- a/root.spec +++ b/root.spec @@ -40,7 +40,7 @@ %endif Name: root -Version: 5.34.07 +Version: 5.34.09 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -53,8 +53,8 @@ URL: http://root.cern.ch/ # tar -z -x -f root_v%{version}.source.tar.gz # rm -rf root/fonts # mv root root-%{version} -# tar -z -c -f root-%{version}.tar.gz root-%{version} -Source0: %{name}-%{version}.tar.gz +# tar -J -c -f root-%{version}.tar.xz root-%{version} +Source0: %{name}-%{version}.tar.xz # Script to extract the list of include files in a subpackage Source1: root-includelist # Documentation generation script @@ -74,8 +74,8 @@ Patch3: %{name}-xrootd.patch # Fix hardcoded include path: # https://savannah.cern.ch/bugs/index.php?91463 Patch4: %{name}-meta.patch -# Missing include path: -Patch5: %{name}-gfal-bits.patch +# Use TLatex in doc generation: +Patch5: %{name}-doc-latex.patch # Revert THtml change: Patch6: %{name}-thtml-revert.patch # Don't save in all image formats: @@ -151,6 +151,9 @@ BuildRequires: graphviz-devel BuildRequires: graphviz-gd %endif BuildRequires: expat-devel +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 +BuildRequires: pythia8-devel +%endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(liberationsans) BuildRequires: font(liberationserif) @@ -158,8 +161,20 @@ BuildRequires: font(liberationmono) %else BuildRequires: liberation-fonts %endif -# This contains a Symbol font that can be used by fontconfig +%if %{?fedora}%{!?fedora:0} >= 12 || %{?rhel}%{!?rhel:0} >= 6 +%ifarch %{ix86} x86_64 +BuildRequires: font(symbol) +%else BuildRequires: urw-fonts +%endif +%else +BuildRequires: urw-fonts +%endif +%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +%ifarch %{ix86} x86_64 +BuildRequires: font(wingdings) +%endif +%endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(droidsansfallback) %endif @@ -253,8 +268,20 @@ Requires: font(liberationmono) %else Requires: liberation-fonts %endif -# This contains a Symbol font that can be used by fontconfig +%if %{?fedora}%{!?fedora:0} >= 12 || %{?rhel}%{!?rhel:0} >= 6 +%ifarch %{ix86} x86_64 +Requires: font(symbol) +%else Requires: urw-fonts +%endif +%else +Requires: urw-fonts +%endif +%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 +%ifarch %{ix86} x86_64 +Requires: font(wingdings) +%endif +%endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 Requires: font(droidsansfallback) %endif @@ -836,6 +863,18 @@ Group: Applications/Engineering %description montecarlo-eg This package contains an event generator library for ROOT. +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 +%package montecarlo-pythia8 +Summary: Pythia version 8 plugin for ROOT +Group: Applications/Engineering + +%description montecarlo-pythia8 +This package contains the Pythia version 8 plug-in for ROOT. This +package provide the ROOT user with transparent interface to the Pythia +(version 8) event generators for hadronic interactions. If the term +"hadronic" does not ring any bells, this package is not for you. +%endif + %package montecarlo-vmc Summary: Virtual Monte-Carlo (simulation) library for ROOT Group: Applications/Engineering @@ -1207,6 +1246,12 @@ unset QTINC --enable-opengl \ --enable-pgsql \ --enable-python \ +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 + --enable-pythia8 \ + --with-pythia8-incdir=%{_includedir}/pythia8 \ +%else + --disable-pythia8 \ +%endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 --enable-qt \ --enable-qtgsi \ @@ -1251,7 +1296,6 @@ unset QTINC --disable-monalisa \ --disable-oracle \ --disable-pythia6 \ - --disable-pythia8 \ --disable-rpath \ --disable-sapdb \ --disable-srp \ @@ -1363,7 +1407,7 @@ rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/*.sample rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/root.desktop rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/system.plugins-ios -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/svninfo.txt +rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/gitinfo.txt %if %{?fedora}%{!?fedora:0} < 13 && %{?rhel}%{!?rhel:0} < 6 rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libAfterImage.a %endif @@ -1685,6 +1729,10 @@ fi %postun table -p /sbin/ldconfig %post montecarlo-eg -p /sbin/ldconfig %postun montecarlo-eg -p /sbin/ldconfig +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 +%post montecarlo-pythia8 -p /sbin/ldconfig +%postun montecarlo-pythia8 -p /sbin/ldconfig +%endif %post montecarlo-vmc -p /sbin/ldconfig %postun montecarlo-vmc -p /sbin/ldconfig %post net -p /sbin/ldconfig @@ -2198,6 +2246,12 @@ fi %{_datadir}/%{name}/pdg_table.txt %doc %{_defaultdocdir}/%{name}-%{version}/cfortran.doc +%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 +%files montecarlo-pythia8 -f includelist-montecarlo-pythia8 +%defattr(-,root,root,-) +%{_libdir}/%{name}/libEGPythia8.* +%endif + %files montecarlo-vmc -f includelist-montecarlo-vmc %defattr(-,root,root,-) %{_libdir}/%{name}/libVMC.* @@ -2350,6 +2404,13 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Jun 28 2013 Mattias Ellert - 5.34.09-1 +- Update to 5.34.09 +- New sub-package: root-montecarlo-pythia8 +- Drop patch root-gfal-bits.patch +- Use xz compression for source tarfile +- Update ancient root version in EPEL + * Sat Apr 27 2013 Mattias Ellert - 5.34.07-1 - Update to 5.34.07 diff --git a/sources b/sources index c5fddbd..1d7209e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6fda5e6b48dadf4eda1498cdfa3d8637 root-5.34.07.tar.gz +63fd002819184001cd4293aaf04b0ab5 root-5.34.09.tar.xz From 730ad008c2b34c60596ebf7c067b8ef6824fc176 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 16 Jul 2013 07:15:02 +0200 Subject: [PATCH 034/344] Rebuild for cfitsio 3.350 --- root.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index 525b975..c75a62e 100644 --- a/root.spec +++ b/root.spec @@ -42,7 +42,7 @@ Name: root Version: 5.34.09 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2404,6 +2404,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Jul 16 2013 Mattias Ellert - 5.34.09-2 +- Rebuild for cfitsio 3.350 + * Fri Jun 28 2013 Mattias Ellert - 5.34.09-1 - Update to 5.34.09 - New sub-package: root-montecarlo-pythia8 @@ -2421,7 +2424,7 @@ fi * Wed Mar 20 2013 Mattias Ellert - 5.34.05-2 - Rebuild for ruby 2.0 -- Rebuild for cfitsio 3.330 +- Rebuild for cfitsio 3.340 * Wed Feb 27 2013 Mattias Ellert - 5.34.05-1 - Update to 5.34.05 From 1904e06a34d1b2da04f57b67ec668d3a3c35f391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 18 Jul 2013 03:48:46 +0200 Subject: [PATCH 035/344] Perl 5.18 rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index c75a62e..80fc04e 100644 --- a/root.spec +++ b/root.spec @@ -42,7 +42,7 @@ Name: root Version: 5.34.09 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2404,6 +2404,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Jul 18 2013 Petr Pisar - 5.34.09-3 +- Perl 5.18 rebuild + * Tue Jul 16 2013 Mattias Ellert - 5.34.09-2 - Rebuild for cfitsio 3.350 From ab6ed3ddb5182ed2d514ec0d1976c8bc7ec27bdd Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 4 Aug 2013 07:50:39 -0500 Subject: [PATCH 036/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 80fc04e..0930527 100644 --- a/root.spec +++ b/root.spec @@ -42,7 +42,7 @@ Name: root Version: 5.34.09 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2404,6 +2404,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sun Aug 04 2013 Fedora Release Engineering - 5.34.09-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Thu Jul 18 2013 Petr Pisar - 5.34.09-3 - Perl 5.18 rebuild From e2dd5b281835b2cbef4bea80061c84e5d67cc388 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 8 Aug 2013 07:58:04 +0200 Subject: [PATCH 037/344] Exclude armv7hl - cint is not working - Use _pkgdocdir when defined - Use texlive-stix --- root-fontconfig.patch | 925 ++++++++++++++++++++++++------------------ root.spec | 68 ++-- 2 files changed, 564 insertions(+), 429 deletions(-) diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 56604c0..98db311 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,6 +1,6 @@ -diff -ur root-5.34.05.orig/core/base/src/TApplication.cxx root-5.34.05/core/base/src/TApplication.cxx ---- root-5.34.05.orig/core/base/src/TApplication.cxx 2013-02-14 23:27:37.000000000 +0100 -+++ root-5.34.05/core/base/src/TApplication.cxx 2013-02-26 19:27:54.452632349 +0100 +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 @@ LoadGraphicsLibs(); @@ -34,9 +34,9 @@ diff -ur root-5.34.05.orig/core/base/src/TApplication.cxx root-5.34.05/core/base // Create WM dependent application environment if (fAppImp) -diff -ur root-5.34.05.orig/graf2d/graf/inc/TTF.h root-5.34.05/graf2d/graf/inc/TTF.h ---- root-5.34.05.orig/graf2d/graf/inc/TTF.h 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/graf/inc/TTF.h 2013-02-26 19:27:54.452632349 +0100 +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 @@ static FT_BBox fgCBox; // string control box static FT_CharMap fgCharMap[kTTMaxFonts]; // font character map @@ -48,9 +48,9 @@ diff -ur root-5.34.05.orig/graf2d/graf/inc/TTF.h root-5.34.05/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.05.orig/graf2d/graf/Module.mk root-5.34.05/graf2d/graf/Module.mk ---- root-5.34.05.orig/graf2d/graf/Module.mk 2013-02-14 23:27:53.000000000 +0100 -+++ root-5.34.05/graf2d/graf/Module.mk 2013-02-26 19:27:54.452632349 +0100 +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 @@ -46,7 +46,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ @@ -60,9 +60,9 @@ diff -ur root-5.34.05.orig/graf2d/graf/Module.mk root-5.34.05/graf2d/graf/Module $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/TTF.cxx ---- root-5.34.05.orig/graf2d/graf/src/TTF.cxx 2013-02-14 23:27:52.000000000 +0100 -+++ root-5.34.05/graf2d/graf/src/TTF.cxx 2013-02-26 19:36:07.971088035 +0100 +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 @@ -17,15 +17,13 @@ // // ////////////////////////////////////////////////////////////////////////// @@ -280,7 +280,7 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ } } -@@ -409,161 +528,228 @@ +@@ -409,161 +528,280 @@ if (fgFontCount >= kTTMaxFonts) { Error("TTF::SetTextFont", "too many fonts opened (increase kTTMaxFont = %d)", kTTMaxFonts); @@ -299,10 +299,59 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ - "$(ROOTSYS)/fonts" -# endif - ); -- ++ char *ttfont = NULL; ++ int ttindex = 0; + - char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); -- -- if (!ttfont) { ++ if (fontid >= 16 && fontid <= 28) { ++ // 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 (fontid) { ++ case 16: ++ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); ++ break; ++ case 17: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); ++ break; ++ case 18: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); ++ break; ++ case 19: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); ++ break; ++ case 20: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); ++ break; ++ case 21: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); ++ break; ++ case 22: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); ++ break; ++ case 23: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); ++ break; ++ case 24: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); ++ break; ++ case 25: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); ++ break; ++ case 26: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); ++ break; ++ case 27: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); ++ break; ++ case 28: ++ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); ++ break; ++ } ++ } + + if (!ttfont) { - Error("TTF::SetTextFont", "font file %s not found in path", fontname); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); @@ -310,201 +359,202 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ - return 0; - } else { - return 1; -- } -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; -+ char *ttfont; -+ int ttindex; ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; + -+ pat = FcPatternCreate (); ++ pat = FcPatternCreate (); + -+ 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; -+ 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; -+ 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; -+ case 4: -+ 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; -+ case 6: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 14: -+ 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; -+ case 17: -+ 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; -+ case 19: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ default: -+ Error("TTF::SetTextFont", "font %i not known to ROOT", fontid); ++ 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; ++ 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; ++ 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; ++ case 4: ++ 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; ++ case 6: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 14: ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; + } ++ ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ char* ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); ++ ttfont = StrDup(ttfnt); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ FcPatternDestroy (match); + FcPatternDestroy (pat); -+ Warning("TTF::SetTextFont", "using default font"); -+ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) -+ return; -+ break; ++ if (set) FcCharSetDestroy (set); } -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); -+ FT_Face tface = 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { + if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) { Error("TTF::SetTextFont", "error loading font %s", ttfont); -- delete [] ttfont; -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); + delete [] ttfont; if (tface) FT_Done_Face(tface); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); @@ -518,13 +568,9 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ + return; } -- delete [] ttfont; -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); + delete [] ttfont; - fgFontName[fgFontCount] = StrDup(basename); -+ if (set) FcCharSetDestroy (set); -+ + fgFontID[fgFontCount] = fontid; fgCurFontIdx = fgFontCount; fgFace[fgCurFontIdx] = tface; @@ -539,8 +585,7 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ slantMat.yx = 0; slantMat.yy = (1 << 16); - FT_Set_Transform( fgFace[fgSymbItaFontIdx], &slantMat, NULL ); -+ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, NULL ); - } +- } - - return 0; -} @@ -630,7 +675,8 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ - // try backup free font - thisset = 1; - } -- } ++ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, NULL ); + } - Int_t italic = 0; - if (fontid==15) italic = 1; - int ret = SetTextFont(gEnv->GetValue(fonttable[fontid][thisset], fonttable[fontid][1]), italic); @@ -640,9 +686,9 @@ diff -ur root-5.34.05.orig/graf2d/graf/src/TTF.cxx root-5.34.05/graf2d/graf/src/ } //______________________________________________________________________________ -diff -ur root-5.34.05.orig/graf2d/postscript/Module.mk root-5.34.05/graf2d/postscript/Module.mk ---- root-5.34.05.orig/graf2d/postscript/Module.mk 2013-02-14 23:27:54.000000000 +0100 -+++ root-5.34.05/graf2d/postscript/Module.mk 2013-02-26 19:27:54.453632355 +0100 +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 @@ -50,7 +50,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \ @@ -652,9 +698,9 @@ diff -ur root-5.34.05.orig/graf2d/postscript/Module.mk root-5.34.05/graf2d/posts $(POSTSCRIPTDS): $(POSTSCRIPTH) $(POSTSCRIPTL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.05/graf2d/postscript/src/TPostScript.cxx ---- root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx 2013-02-14 23:27:54.000000000 +0100 -+++ root-5.34.05/graf2d/postscript/src/TPostScript.cxx 2013-02-26 19:45:18.377106631 +0100 +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 @@ -238,6 +238,7 @@ #include #include @@ -663,7 +709,7 @@ diff -ur root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.05/gr #include "Riostream.h" #include "Byteswap.h" -@@ -1511,78 +1512,206 @@ +@@ -1511,78 +1512,258 @@ { // Embed font in PS file. @@ -741,179 +787,235 @@ diff -ur root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.05/gr - } + if (fontid != 15) { + -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; -+ char *ttfont; ++ char *ttfont = NULL; + -+ pat = FcPatternCreate (); -+ -+ 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; -+ 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; -+ 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; -+ case 4: -+ 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; -+ case 6: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 12: -+ 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; -+ case 14: -+ 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; -+ case 17: -+ 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; -+ case 19: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 29: -+ 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; ++ if (fontid >= 16 && fontid <= 28) { ++ // 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 (fontid) { ++ case 16: ++ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); ++ break; ++ case 17: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); ++ break; ++ case 18: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); ++ break; ++ case 19: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); ++ break; ++ case 20: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); ++ break; ++ case 21: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); ++ break; ++ case 22: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); ++ break; ++ case 23: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); ++ break; ++ case 24: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); ++ break; ++ case 25: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); ++ break; ++ case 26: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); ++ break; ++ case 27: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); ++ break; ++ case 28: ++ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); ++ break; ++ } + } + -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfont); ++ if (!ttfont) { ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; ++ ++ pat = FcPatternCreate (); ++ ++ 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; ++ 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; ++ 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; ++ case 4: ++ 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; ++ case 6: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 12: ++ 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; ++ case 14: ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 29: ++ 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; ++ } ++ ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); ++ ttfont = StrDup(ttfnt); ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); ++ if (set) FcCharSetDestroy (set); ++ } + + if(!ttfont) { + Error("TPostScript::FontEmbed", "font %d not found in path", @@ -929,19 +1031,30 @@ diff -ur root-5.34.05.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.05/gr + Error("TPostScript::FontEmbed", "failed to embed font %d)", + fontid); + } ++ delete [] ttfont; + } -+ -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); -+ -+ if (set) FcCharSetDestroy (set); + } } PrintStr("%%IncludeResource: font Times-Roman@"); PrintStr("%%IncludeResource: font Times-Italic@"); -diff -ur root-5.34.05.orig/graf3d/gl/Module.mk root-5.34.05/graf3d/gl/Module.mk ---- root-5.34.05.orig/graf3d/gl/Module.mk 2013-02-14 23:27:47.000000000 +0100 -+++ root-5.34.05/graf3d/gl/Module.mk 2013-02-26 19:27:54.454632361 +0100 +@@ -2571,10 +2752,10 @@ + { "Root.PSFont.5", "/Helvetica-Oblique" }, + { "Root.PSFont.6", "/Helvetica-Bold" }, + { "Root.PSFont.7", "/Helvetica-BoldOblique" }, +- { "Root.PSFont.8", "/Courrier" }, +- { "Root.PSFont.9", "/Courrier-Oblique" }, +- { "Root.PSFont.10", "/Courrier-Bold" }, +- { "Root.PSFont.11", "/Courrier-BoldOblique" }, ++ { "Root.PSFont.8", "/Courier" }, ++ { "Root.PSFont.9", "/Courier-Oblique" }, ++ { "Root.PSFont.10", "/Courier-Bold" }, ++ { "Root.PSFont.11", "/Courier-BoldOblique" }, + { "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 @@ -78,7 +78,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ @@ -951,9 +1064,9 @@ diff -ur root-5.34.05.orig/graf3d/gl/Module.mk root-5.34.05/graf3d/gl/Module.mk $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.05.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.05/graf3d/gl/src/TGLFontManager.cxx ---- root-5.34.05.orig/graf3d/gl/src/TGLFontManager.cxx 2013-02-14 23:27:47.000000000 +0100 -+++ root-5.34.05/graf3d/gl/src/TGLFontManager.cxx 2013-02-26 19:27:54.454632361 +0100 +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 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1078,9 +1191,9 @@ diff -ur root-5.34.05.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.05/graf3d/ 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.05.orig/graf3d/gl/src/TGLText.cxx root-5.34.05/graf3d/gl/src/TGLText.cxx ---- root-5.34.05.orig/graf3d/gl/src/TGLText.cxx 2013-02-14 23:27:47.000000000 +0100 -+++ root-5.34.05/graf3d/gl/src/TGLText.cxx 2013-02-26 19:27:54.455632367 +0100 +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 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1216,9 +1329,9 @@ diff -ur root-5.34.05.orig/graf3d/gl/src/TGLText.cxx root-5.34.05/graf3d/gl/src/ + FcPatternDestroy (match); + FcPatternDestroy (pat); } -diff -ur root-5.34.05.orig/gui/gui/src/TGApplication.cxx root-5.34.05/gui/gui/src/TGApplication.cxx ---- root-5.34.05.orig/gui/gui/src/TGApplication.cxx 2013-02-14 23:27:51.000000000 +0100 -+++ root-5.34.05/gui/gui/src/TGApplication.cxx 2013-02-26 19:27:54.455632367 +0100 +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 @@ -83,25 +83,12 @@ gROOT->SetBatch(kFALSE); @@ -1246,9 +1359,9 @@ diff -ur root-5.34.05.orig/gui/gui/src/TGApplication.cxx root-5.34.05/gui/gui/sr } // Create the canvas colors early so they are allocated before -diff -ur root-5.34.05.orig/gui/gui/src/TGSpeedo.cxx root-5.34.05/gui/gui/src/TGSpeedo.cxx ---- root-5.34.05.orig/gui/gui/src/TGSpeedo.cxx 2013-02-14 23:27:51.000000000 +0100 -+++ root-5.34.05/gui/gui/src/TGSpeedo.cxx 2013-02-26 19:27:54.455632367 +0100 +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 @@ -119,8 +119,7 @@ TString sc; diff --git a/root.spec b/root.spec index 0930527..0c2c4b9 100644 --- a/root.spec +++ b/root.spec @@ -39,10 +39,12 @@ %global emacs_lispdir %(pkg-config emacs --variable sitepkglispdir) %endif +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + Name: root Version: 5.34.09 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -84,6 +86,10 @@ 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 ExcludeArch: ppc64 +# The cint interpreter is not fully ported to arm +# https://sft.its.cern.ch/jira/browse/ROOT-5398 +# https://sft.its.cern.ch/jira/browse/ROOT-5399 +ExcludeArch: armv7hl BuildRequires: libX11-devel BuildRequires: libXpm-devel @@ -179,13 +185,17 @@ BuildRequires: font(wingdings) BuildRequires: font(droidsansfallback) %endif %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 -BuildRequires: font(stix) +# STIX font version 1.1 - not backwards compatible with earlier versions +# We use the texlive supplied version 1.0 instead of font(stix) +BuildRequires: texlive-stix %else %if %{?fedora}%{!?fedora:0} >= 14 +# STIX font version 1.0 BuildRequires: font(stixgeneral) BuildRequires: font(stixsizeonesym) %else %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +# STIX font version 0.9 BuildRequires: font(stixgeneral) BuildRequires: font(stixsize1) %endif @@ -286,13 +296,17 @@ Requires: font(wingdings) Requires: font(droidsansfallback) %endif %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 -Requires: font(stix) +# STIX font version 1.1 - not backwards compatible with earlier versions +# We use the texlive supplied version 1.0 instead of font(stix) +Requires: texlive-stix %else %if %{?fedora}%{!?fedora:0} >= 14 +# STIX font version 1.0 Requires: font(stixgeneral) Requires: font(stixsizeonesym) %else %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +# STIX font version 0.9 Requires: font(stixgeneral) Requires: font(stixsize1) %endif @@ -1190,6 +1204,9 @@ sed s/c1/c1c/g -i tutorials/graphics/earth.C sed s/c3/c3c/g -i tutorials/graphs/multipalette.C sed s/c1/c1simp/g -i tutorials/hsimple.C +# Directory lost in svn-git conversion - needed for THtml doc generation +mkdir graf2d/gviz/doc + %if "%{?rhel}" == "5" # Build PyROOT for python 2.6 cp -pr bindings/pyroot bindings/pyroot26 @@ -1204,7 +1221,7 @@ unset QTINC ./configure --prefix=%{_prefix} \ --libdir=%{_libdir}/%{name} \ --etcdir=%{_datadir}/%{name} \ - --docdir=%{_defaultdocdir}/%{name}-%{version} \ + --docdir=%{_pkgdocdir} \ --elispdir=%{emacs_lispdir}/%{name} \ %if %{?fedora}%{!?fedora:0} >= 13 || %{?rhel}%{!?rhel:0} >= 6 --disable-builtin-afterimage \ @@ -1426,11 +1443,11 @@ rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.pri %endif rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/proofdp.h rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/rootdp.h -rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/BUILDSYSTEM -rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/ChangeLog-2-24 -rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/INSTALL -rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/README.ALIEN -rm ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/README.MONALISA +rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/BUILDSYSTEM +rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/ChangeLog-2-24 +rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/INSTALL +rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/README.ALIEN +rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/README.MONALISA # Remove cintdll sources - keep the prec_stl directory rm -rf ${RPM_BUILD_ROOT}%{_libdir}/%{name}/cint/cint/lib/{[^p],p[^r]}* @@ -1489,7 +1506,7 @@ sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc -mv htmldoc ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-%{version}/html +mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html # Create includelist files ... for module in `find * -name Module.mk` ; do @@ -1834,9 +1851,9 @@ fi %{_includedir}/%{name}/rmain.cxx %dir %{_includedir}/%{name}/Math %{_datadir}/aclocal/root.m4 -%doc %{_defaultdocdir}/%{name}-%{version}/CREDITS -%doc %{_defaultdocdir}/%{name}-%{version}/LICENSE -%doc %{_defaultdocdir}/%{name}-%{version}/README +%doc %{_pkgdocdir}/CREDITS +%doc %{_pkgdocdir}/LICENSE +%doc %{_pkgdocdir}/README %files cint -f includelist-cint-cint %defattr(-,root,root,-) @@ -1847,8 +1864,8 @@ fi %{_libdir}/%{name}/cint %dir %{_includedir}/%{name} %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf -%doc %dir %{_defaultdocdir}/%{name}-%{version} -%doc %{_defaultdocdir}/%{name}-%{version}/COPYING.CINT +%doc %dir %{_pkgdocdir} +%doc %{_pkgdocdir}/COPYING.CINT %ifarch %{ix86} x86_64 %files cintex -f includelist-cint-cintex @@ -1875,12 +1892,12 @@ fi %files doc %defattr(-,root,root,-) -%doc %{_defaultdocdir}/%{name}-%{version}/html +%doc %{_pkgdocdir}/html %files tutorial %defattr(-,root,root,-) -%doc %{_defaultdocdir}/%{name}-%{version}/test -%doc %{_defaultdocdir}/%{name}-%{version}/tutorials +%doc %{_pkgdocdir}/test +%doc %{_pkgdocdir}/tutorials %files proofd %defattr(-,root,root,-) @@ -2244,7 +2261,7 @@ fi %defattr(-,root,root,-) %{_libdir}/%{name}/libEG.* %{_datadir}/%{name}/pdg_table.txt -%doc %{_defaultdocdir}/%{name}-%{version}/cfortran.doc +%doc %{_pkgdocdir}/cfortran.doc %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 %files montecarlo-pythia8 -f includelist-montecarlo-pythia8 @@ -2282,12 +2299,12 @@ fi %defattr(-,root,root,-) %{_libdir}/%{name}/libRootAuth.* %{_datadir}/%{name}/plugins/TVirtualAuth/P010_TRootAuth.C -%doc %{_defaultdocdir}/%{name}-%{version}/README.AUTH +%doc %{_pkgdocdir}/README.AUTH %files net-globus %defattr(-,root,root,-) %{_libdir}/%{name}/libGlobusAuth.* -%doc %{_defaultdocdir}/%{name}-%{version}/README.GLOBUS +%doc %{_pkgdocdir}/README.GLOBUS %files net-krb5 -f includelist-net-krb5auth %defattr(-,root,root,-) @@ -2323,7 +2340,7 @@ fi %{_datadir}/%{name}/plugins/TVirtualProofPlayer/P050_TProofPlayerSuperMaster.C %{_datadir}/%{name}/plugins/TVirtualProofPlayer/P060_TProofPlayerLite.C %{_datadir}/%{name}/valgrind-root.supp -%doc %{_defaultdocdir}/%{name}-%{version}/README.PROOF +%doc %{_pkgdocdir}/README.PROOF %files proof-bench -f includelist-proof-proofbench %defattr(-,root,root,-) @@ -2381,7 +2398,7 @@ fi %files tree -f includelist-tree-tree %defattr(-,root,root,-) %{_libdir}/%{name}/libTree.* -%doc %{_defaultdocdir}/%{name}-%{version}/README.SELECTOR +%doc %{_pkgdocdir}/README.SELECTOR %files tree-player -f includelist-tree-treeplayer %defattr(-,root,root,-) @@ -2404,6 +2421,11 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Aug 08 2013 Mattias Ellert - 5.34.09-5 +- Exclude armv7hl - cint is not working +- Use _pkgdocdir when defined +- Use texlive-stix + * Sun Aug 04 2013 Fedora Release Engineering - 5.34.09-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild From 530418d5efa097e962f9c7b100b6d102433f2635 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 10 Sep 2013 09:13:21 +0200 Subject: [PATCH 038/344] Update to 5.34.09 - New sub-package: root-io-hdfs (Fedora 20+) - New sub-package: root-sql-sqlite --- root-hdfs.patch | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ root.spec | 79 +++++++++++++++++++++++++---- 2 files changed, 199 insertions(+), 9 deletions(-) create mode 100644 root-hdfs.patch diff --git a/root-hdfs.patch b/root-hdfs.patch new file mode 100644 index 0000000..cf9d5f1 --- /dev/null +++ b/root-hdfs.patch @@ -0,0 +1,129 @@ +diff -ur root-5.34.09.orig/io/hdfs/src/THDFSFile.cxx root-5.34.09/io/hdfs/src/THDFSFile.cxx +--- root-5.34.09.orig/io/hdfs/src/THDFSFile.cxx 2013-06-26 17:05:06.000000000 +0200 ++++ root-5.34.09/io/hdfs/src/THDFSFile.cxx 2013-08-31 03:00:10.323742733 +0200 +@@ -40,6 +40,7 @@ + + #include "syslog.h" + #include "assert.h" ++#include "stdlib.h" + + #include "THDFSFile.h" + #include "TError.h" +@@ -93,8 +94,7 @@ + if (has_authn) { + UserGroup_t *ugi = gSystem->GetUserInfo(0); + const char *user = (ugi->fUser).Data(); +- const char * groups[1] = {(ugi->fGroup.Data())}; +- fFS = hdfsConnectAsUser("default", 0, user, groups, 1); ++ fFS = hdfsConnectAsUser("default", 0, user); + delete ugi; + } else { + fFS = hdfsConnect("default", 0); +@@ -167,7 +167,7 @@ + // See documentation for TFile::SysRead(). + + TRACE("READ") +- tSize num_read = hdfsPread(fFS, (hdfsFile)fHdfsFH, fSysOffset, buf, len); ++ tSize num_read = hdfsPread((hdfsFS)fFS, (hdfsFile)fHdfsFH, fSysOffset, buf, len); + fSysOffset += len; + if (num_read < 0) { + gSystem->SetErrorStr(strerror(errno)); +@@ -192,7 +192,7 @@ + return -1; + } + if (fSize == -1) { +- hdfsFileInfo *info = hdfsGetPathInfo(fFS, fPath); ++ hdfsFileInfo *info = hdfsGetPathInfo((hdfsFS)fFS, fPath); + if (info != 0) { + fSize = info->mSize; + free(info); +@@ -224,7 +224,7 @@ + SysError("THDFSFile", "Unable to allocate memory for path."); + } + strlcpy(fPath, file,path_size+1); +- if ((fHdfsFH = hdfsOpenFile(fFS, fPath, flags, 0, 0, 0)) == 0) { ++ if ((fHdfsFH = hdfsOpenFile((hdfsFS)fFS, fPath, flags, 0, 0, 0)) == 0) { + SysError("THDFSFile", "Unable to open file %s in HDFS", pathname); + return -1; + } +@@ -236,7 +236,7 @@ + { + // Close the file in HDFS. + +- int result = hdfsCloseFile(fFS, (hdfsFile)fHdfsFH); ++ int result = hdfsCloseFile((hdfsFS)fFS, (hdfsFile)fHdfsFH); + fFS = 0; + fHdfsFH = 0; + return result; +@@ -258,7 +258,7 @@ + + *id = ::Hash(fPath); + +- hdfsFileInfo *info = hdfsGetPathInfo(fFS, fPath); ++ hdfsFileInfo *info = hdfsGetPathInfo((hdfsFS)fFS, fPath); + if (info != 0) { + fSize = info->mSize; + *size = fSize; +@@ -306,8 +306,7 @@ + if (has_authn) { + UserGroup_t *ugi = gSystem->GetUserInfo(0); + const char *user = (ugi->fUser).Data(); +- const char * groups[1] = {(ugi->fGroup.Data())}; +- fFH = hdfsConnectAsUser("default", 0, user, groups, 1); ++ fFH = hdfsConnectAsUser("default", 0, user); + delete ugi; + } else { + fFH = hdfsConnect("default", 0); +@@ -339,7 +338,7 @@ + } + + if (R__HDFS_ALLOW_CHANGES == kTRUE) { +- return hdfsCreateDirectory(fFH, path); ++ return hdfsCreateDirectory((hdfsFS)fFH, path); + } else { + return -1; + } +@@ -366,14 +365,14 @@ + */ + + hdfsFileInfo * dir = 0; +- if ((dir = hdfsGetPathInfo(fFH, path)) == 0) { ++ if ((dir = hdfsGetPathInfo((hdfsFS)fFH, path)) == 0) { + return 0; + } + if (dir->mKind != kObjectKindDirectory) { + return 0; + } + +- fDirp = (void *)hdfsListDirectory(fFH, path, &fDirEntries); ++ fDirp = (void *)hdfsListDirectory((hdfsFS)fFH, path, &fDirEntries); + fDirCtr = 0; + + fUrlp = new TUrl[fDirEntries]; +@@ -449,7 +448,7 @@ + Error("GetPathInfo", "No filesystem handle (should never happen)"); + return 1; + } +- hdfsFileInfo *fileInfo = hdfsGetPathInfo(fFH, path); ++ hdfsFileInfo *fileInfo = hdfsGetPathInfo((hdfsFS)fFH, path); + + if (fileInfo == 0) + return 1; +@@ -481,7 +480,7 @@ + return kTRUE; + } + +- if (hdfsExists(fFH, path) == 0) ++ if (hdfsExists((hdfsFS)fFH, path) == 0) + return kFALSE; + else + return kTRUE; +@@ -499,7 +498,7 @@ + } + + if (R__HDFS_ALLOW_CHANGES == kTRUE) { +- return hdfsDelete(fFH, path); ++ return hdfsDelete((hdfsFS)fFH, path, 1); + } else { + return -1; + } diff --git a/root.spec b/root.spec index 0c2c4b9..124ee7e 100644 --- a/root.spec +++ b/root.spec @@ -42,9 +42,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.09 +Version: 5.34.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -82,6 +82,8 @@ Patch5: %{name}-doc-latex.patch Patch6: %{name}-thtml-revert.patch # Don't save in all image formats: Patch7: %{name}-no-extra-formats.patch +# Fixes for HDFS module +Patch8: %{name}-hdfs.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 @@ -89,7 +91,7 @@ ExcludeArch: ppc64 # The cint interpreter is not fully ported to arm # https://sft.its.cern.ch/jira/browse/ROOT-5398 # https://sft.its.cern.ch/jira/browse/ROOT-5399 -ExcludeArch: armv7hl +ExcludeArch: %{arm} BuildRequires: libX11-devel BuildRequires: libXpm-devel @@ -121,6 +123,7 @@ BuildRequires: krb5-devel BuildRequires: krb5-workstation BuildRequires: openldap-devel BuildRequires: mysql-devel +BuildRequires: sqlite-devel BuildRequires: unixODBC-devel BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLU-devel @@ -149,6 +152,10 @@ BuildRequires: cfitsio-devel BuildRequires: gfal-devel BuildRequires: srm-ifce-devel %endif +%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 +BuildRequires: hadoop-devel +BuildRequires: java-devel +%endif BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran @@ -670,6 +677,15 @@ Group: Applications/Engineering This package contains the Grid File Access Library extension for ROOT. %endif +%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 +%package io-hdfs +Summary: Hadoop File System input/output library for ROOT +Group: Applications/Engineering + +%description io-hdfs +This package contains the Hadoop File System extension for ROOT. +%endif + %package io-rfio Summary: Remote File input/output library for ROOT Group: Applications/Engineering @@ -1035,6 +1051,16 @@ This package contains the ODBC (Open DataBase Connectivity) plugin for ROOT, that allows transparent access to any kind of database that supports the ODBC protocol. +%package sql-sqlite +Summary: Sqlite client plugin for ROOT +Group: Applications/Engineering + +%description sql-sqlite +This package contains the sqlite plugin for ROOT. This plugin +provides a thin client (interface) to sqlite servers. Using this +client, one can obtain information from a sqlite database into the +ROOT environment. + %package sql-pgsql Summary: PostgreSQL client plugin for ROOT Group: Applications/Engineering @@ -1133,6 +1159,7 @@ fi %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -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 \ @@ -1204,9 +1231,6 @@ sed s/c1/c1c/g -i tutorials/graphics/earth.C sed s/c3/c3c/g -i tutorials/graphs/multipalette.C sed s/c1/c1simp/g -i tutorials/hsimple.C -# Directory lost in svn-git conversion - needed for THtml doc generation -mkdir graf2d/gviz/doc - %if "%{?rhel}" == "5" # Build PyROOT for python 2.6 cp -pr bindings/pyroot bindings/pyroot26 @@ -1218,6 +1242,7 @@ sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ unset QTDIR unset QTLIB unset QTINC +export JAVA_HOME=/usr/lib/jvm/java ./configure --prefix=%{_prefix} \ --libdir=%{_libdir}/%{name} \ --etcdir=%{_datadir}/%{name} \ @@ -1253,6 +1278,13 @@ unset QTINC --enable-globus \ --enable-gsl-shared \ --enable-gviz \ +%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 + --enable-hdfs \ + --with-hdfs-incdir=%{_includedir}/hadoop \ + --with-hdfs-libdir=%{_libdir}/hadoop \ +%else + --disable-hdfs \ +%endif --enable-krb5 \ --enable-ldap \ --enable-mathmore \ @@ -1282,9 +1314,10 @@ unset QTINC --with-rfio-libdir=%{_libdir} \ --enable-roofit \ --enable-ruby \ - --enable-soversion \ --enable-shadowpw \ --enable-shared \ + --enable-soversion \ + --enable-sqlite \ --enable-ssl \ --enable-table \ --enable-tmva \ @@ -1309,7 +1342,6 @@ unset QTINC --disable-cling \ --disable-cxx11 \ --disable-glite \ - --disable-hdfs \ --disable-monalisa \ --disable-oracle \ --disable-pythia6 \ @@ -1466,7 +1498,9 @@ 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 rm TFile/P110_THDFSFile.C +%endif rm TGLManager/P020_TGWin32GLManager.C rm TGrid/P010_TAlien.C rm TGrid/P020_TGLite.C @@ -1477,7 +1511,9 @@ 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 rm TSystem/P060_THDFSSystem.C +%endif rm TViewerX3D/P020_TQtViewerX3D.C rm TVirtualGLImp/P020_TGWin32GL.C rm TVirtualMonitoringWriter/P010_TMonaLisaWriter.C @@ -1503,7 +1539,7 @@ echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C -LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ +LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl:%{_libdir}/hadoop:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/i386/server \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html @@ -1704,6 +1740,10 @@ fi %post io-gfal -p /sbin/ldconfig %postun io-gfal -p /sbin/ldconfig %endif +%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 +%post io-hdfs -p /sbin/ldconfig +%postun io-hdfs -p /sbin/ldconfig +%endif %post io-rfio -p /sbin/ldconfig %postun io-rfio -p /sbin/ldconfig %post io-sql -p /sbin/ldconfig @@ -1780,6 +1820,8 @@ fi %postun sql-mysql -p /sbin/ldconfig %post sql-odbc -p /sbin/ldconfig %postun sql-odbc -p /sbin/ldconfig +%post sql-sqlite -p /sbin/ldconfig +%postun sql-sqlite -p /sbin/ldconfig %post sql-pgsql -p /sbin/ldconfig %postun sql-pgsql -p /sbin/ldconfig %post tmva -p /sbin/ldconfig @@ -2000,6 +2042,7 @@ fi %{_datadir}/%{name}/plugins/TVirtualPS/P020_TSVG.C %{_datadir}/%{name}/plugins/TVirtualPS/P030_TPDF.C %{_datadir}/%{name}/plugins/TVirtualPS/P040_TImageDump.C +%{_datadir}/%{name}/plugins/TVirtualPS/P050_TTeXDump.C %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 %files graf-qt -f includelist-graf2d-qt @@ -2144,6 +2187,14 @@ fi %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C %endif +%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 +%files io-hdfs -f includelist-io-hdfs +%defattr(-,root,root,-) +%{_libdir}/%{name}/libHDFS.* +%{_datadir}/%{name}/plugins/TFile/P110_THDFSFile.C +%{_datadir}/%{name}/plugins/TSystem/P060_THDFSSystem.C +%endif + %files io-rfio -f includelist-io-rfio %defattr(-,root,root,-) %{_libdir}/%{name}/libRFIO.* @@ -2384,6 +2435,11 @@ fi %{_libdir}/%{name}/libRODBC.* %{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C +%files sql-sqlite -f includelist-sql-sqlite +%defattr(-,root,root,-) +%{_libdir}/%{name}/libSQLite.* +%{_datadir}/%{name}/plugins/TSQLServer/P060_TSQLiteServer.C + %files sql-pgsql -f includelist-sql-pgsql %defattr(-,root,root,-) %{_libdir}/%{name}/libPgSQL.* @@ -2421,6 +2477,11 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Sep 09 2013 Mattias Ellert - 5.34.10-1 +- Update to 5.34.09 +- New sub-package: root-io-hdfs (Fedora 20+) +- New sub-package: root-sql-sqlite + * Thu Aug 08 2013 Mattias Ellert - 5.34.09-5 - Exclude armv7hl - cint is not working - Use _pkgdocdir when defined From de04a944e2044cc941001ab81aa5678111b1a810 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 10 Sep 2013 09:27:03 +0200 Subject: [PATCH 039/344] Update sources file --- root.spec | 2 +- sources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index 124ee7e..ab0a390 100644 --- a/root.spec +++ b/root.spec @@ -2478,7 +2478,7 @@ fi %changelog * Mon Sep 09 2013 Mattias Ellert - 5.34.10-1 -- Update to 5.34.09 +- Update to 5.34.10 - New sub-package: root-io-hdfs (Fedora 20+) - New sub-package: root-sql-sqlite diff --git a/sources b/sources index 1d7209e..8a18003 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -63fd002819184001cd4293aaf04b0ab5 root-5.34.09.tar.xz +144ea7c3f9b3aea96445701956e3bc81 root-5.34.10.tar.xz From e63c9362253813acfc209e68aea51ff509416337 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 18 Nov 2013 10:52:55 +1000 Subject: [PATCH 040/344] rebuilt for GLEW 1.10 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index ab0a390..7bbf413 100644 --- a/root.spec +++ b/root.spec @@ -44,7 +44,7 @@ Name: root Version: 5.34.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2477,6 +2477,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Nov 18 2013 Dave Airlie - 5.34.10-2 +- rebuilt for GLEW 1.10 + * Mon Sep 09 2013 Mattias Ellert - 5.34.10-1 - Update to 5.34.10 - New sub-package: root-io-hdfs (Fedora 20+) From 5d41d25f4710ef7571ad0674b377673d67e585cd Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 25 Nov 2013 23:25:50 -0700 Subject: [PATCH 041/344] Fix hadoop lib location --- root.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/root.spec b/root.spec index 7bbf413..52525a7 100644 --- a/root.spec +++ b/root.spec @@ -44,7 +44,7 @@ Name: root Version: 5.34.10 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -1281,7 +1281,7 @@ export JAVA_HOME=/usr/lib/jvm/java %if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 --enable-hdfs \ --with-hdfs-incdir=%{_includedir}/hadoop \ - --with-hdfs-libdir=%{_libdir}/hadoop \ + --with-hdfs-libdir=%{_libdir} \ %else --disable-hdfs \ %endif @@ -1539,7 +1539,7 @@ echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C -LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl:%{_libdir}/hadoop:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/i386/server \ +LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/i386/server \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html @@ -2477,6 +2477,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Nov 25 2013 Orion Poplawski - 5.34.10-3 +- Fix hadoop lib location + * Mon Nov 18 2013 Dave Airlie - 5.34.10-2 - rebuilt for GLEW 1.10 From 1c00eef2cf8d2218bf84c428f25f00326261e0fe Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 4 Dec 2013 20:18:36 +0100 Subject: [PATCH 042/344] Update to 5.34.13 - Remove java-devel build dependency (not needed with Fedora's libhdfs) - Adapt to pythia8 >= 8.1.80 --- root-dont-link-jvm.patch | 123 ++++++++++++++++++++++++++++++++++++++ root-pythia8-incdir.patch | 24 ++++++++ root-unuran.patch | 18 +++--- root.spec | 31 +++++++--- sources | 2 +- 5 files changed, 179 insertions(+), 19 deletions(-) create mode 100644 root-dont-link-jvm.patch create mode 100644 root-pythia8-incdir.patch diff --git a/root-dont-link-jvm.patch b/root-dont-link-jvm.patch new file mode 100644 index 0000000..594d7c3 --- /dev/null +++ b/root-dont-link-jvm.patch @@ -0,0 +1,123 @@ +diff -ur root-5.34.11.orig/cmake/modules/RootConfiguration.cmake root-5.34.11/cmake/modules/RootConfiguration.cmake +--- root-5.34.11.orig/cmake/modules/RootConfiguration.cmake 2013-10-31 16:46:31.000000000 +0100 ++++ root-5.34.11/cmake/modules/RootConfiguration.cmake 2013-11-06 09:43:56.008974184 +0100 +@@ -167,10 +167,6 @@ + set(hdfslib ${HDFS_LIBRARY}) + set(hdfsincdir ${HDFS_INCLUDE_DIR}) + +-set(jniincdir ${Java_INCLUDE_DIRS}) +-set(jvmlib ${Java_LIBRARIES}) +-set(jvmlibdir ${Java_LIBRARY_DIR}) +- + set(buildalien ${value${alien}}) + set(alienlibdir ${ALIEN_LIBRARY_DIR}) + set(alienlib ${ALIEN_LIBRARY}) +diff -ur root-5.34.11.orig/config/Makefile.in root-5.34.11/config/Makefile.in +--- root-5.34.11.orig/config/Makefile.in 2013-10-31 16:46:31.000000000 +0100 ++++ root-5.34.11/config/Makefile.in 2013-11-06 09:41:09.145976839 +0100 +@@ -198,9 +198,6 @@ + HDFSLIBDIR := @hdfslibdir@ + HDFSCLILIB := @hdfslib@ + HDFSINCDIR := $(filter-out /usr/include, @hdfsincdir@) +-JNIINCDIR := $(filter-out /usr/include, @jniincdir@) $(filter-out /usr/include, @jniincdir@/linux) +-JVMCLILIB := @jvmlib@ +-JVMLIBDIR := @jvmlibdir@ + + BUILDALIEN := @buildalien@ + ALIENLIBDIR := @alienlibdir@ +diff -ur root-5.34.11.orig/configure root-5.34.11/configure +--- root-5.34.11.orig/configure 2013-10-31 16:46:31.000000000 +0100 ++++ root-5.34.11/configure 2013-11-06 09:39:57.651833708 +0100 +@@ -1682,8 +1682,6 @@ + hdfs-incdir HDFS support, location of hdfs.h + hdfs-libdir HDFS support, location of libhdfs + iosvers iOS SDK version (6.1, 7.0), default will be latest SDK +- jni-incdir HDFS support, location of JNI headers +- jvm-libdir HDFS support, location of JVM library + krb5 Kerberos5 support, location of Kerberos distribution + krb5-incdir Kerberos5 support, location of krb5.h + krb5-libdir Kerberos5 support, location of libkrb5 +@@ -2047,8 +2045,6 @@ + --with-hdfs-incdir=*) hdfsincdir=$optarg ; enable_hdfs="yes" ;; + --with-hdfs-libdir=*) hdfslibdir=$optarg ; enable_hdfs="yes" ;; + --with-iosvers=*) iosvers=$optarg ;; +- --with-jni-incdir=*) jniincdir=$optarg ;; +- --with-jvm-libdir=*) jvmlibdir=$optarg ;; + --with-krb5=*) krb5dir=$optarg ; enable_krb5="yes" ;; + --with-krb5-incdir=*) krb5incdir=$optarg ; enable_krb5="yes" ;; + --with-krb5-libdir=*) krb5libdir=$optarg ; enable_krb5="yes" ;; +@@ -4082,17 +4078,6 @@ + hdfsinc=$found_hdr + hdfsincdir=$found_dir + +- if test "x$platform" = "xmacosx" && test -z $JAVA_HOME; then +- JAVA_HOME=`/usr/libexec/java_home` +- fi +- +- keepincdir=$jniincdir +- check_header "jni.h" "$jniincdir" \ +- ${JAVA_HOME:+$JAVA_HOME/include} \ +- /usr/java/default/include /usr/include /usr/local/include +- jniinc=$found_hdr +- jniincdir=$found_dir +- + check_library "libhdfs" "$enable_shared" "$hdfslibdir" \ + $HDFS ${HDFS:+$HDFS/lib} ${HDFS:+$HDFS/build/libhdfs} \ + $HADOOP_HOME ${HADOOP_HOME:+$HADOOP_HOME/build/libhdfs} \ +@@ -4100,26 +4085,12 @@ + hdfslib=$found_lib + hdfslibdir=$found_dir + +- check_library "libjvm" "$enable_shared" "$jvmlibdir" \ +- ${JAVA_HOME:+$JAVA_HOME/jre/lib/amd64/server} \ +- ${JAVA_HOME:+$JAVA_HOME/jre/lib/i386/server} \ +- ${JAVA_HOME:+$JAVA_HOME/../Libraries} \ +- /usr/java/default/jre/lib/amd64/server \ +- /usr/java/default/jre/lib/i386/server /usr/lib /usr/local/lib +- jvmlib=$found_lib +- jvmlibdir=$found_dir +- +- if test "x$hdfsincdir" = "x" || test "x$hdfslib" = "x" || test "x$jniincdir" = "x" || test "x$jvmlib" = "x"; then ++ if test "x$hdfsincdir" = "x" || test "x$hdfslib" = "x"; then + enable_hdfs="no" + else + case $platform in + linux) +- check_link "$hdfslib $jvmlib" "$hdfslibdir $jvmlibdir" hdfsConnect +- if test $link_result -eq 0 ; then +- enable_hdfs="no" +- fi +- +- check_link $jvmlib "$jvmlibdir" JNI_CreateJavaVM ++ check_link "$hdfslib" "$hdfslibdir" hdfsConnect + if test $link_result -eq 0 ; then + enable_hdfs="no" + fi +@@ -6843,9 +6814,6 @@ + -e "s|@iosvers@|$iosvers|" \ + -e "s|@iconpath@|$iconpath|" \ + -e "s|@incdir@|$incdir|" \ +- -e "s|@jniincdir@|$jniincdir|g" \ +- -e "s|@jvmlibdir@|$jvmlibdir|g" \ +- -e "s|@jvmlib@|$jvmlib|g" \ + -e "s|@krb5incdir@|$krb5incdir|" \ + -e "s|@krb5lib@|$krb5lib|" \ + -e "s|@krb5libdir@|$krb5libdir|" \ +diff -ur root-5.34.11.orig/io/hdfs/Module.mk root-5.34.11/io/hdfs/Module.mk +--- root-5.34.11.orig/io/hdfs/Module.mk 2013-10-31 16:46:31.000000000 +0100 ++++ root-5.34.11/io/hdfs/Module.mk 2013-11-06 09:42:21.320111053 +0100 +@@ -44,7 +44,7 @@ + $(HDFSLIB): $(HDFSO) $(HDFSDO) $(ORDER_) $(MAINLIBS) $(HDFSLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libHDFS.$(SOEXT) $@ "$(HDFSO) $(HDFSDO)" \ +- "$(HDFSLIBEXTRA) $(HDFSLIBDIR) $(HDFSCLILIB) $(JVMLIBDIR) $(JVMCLILIB)" ++ "$(HDFSLIBEXTRA) $(HDFSLIBDIR) $(HDFSCLILIB)" + + $(HDFSDS): $(HDFSH) $(HDFSL) $(ROOTCINTTMPDEP) + $(MAKEDIR) +@@ -68,4 +68,4 @@ + distclean:: distclean-$(MODNAME) + + ##### extra rules ###### +-$(HDFSO) $(HDFSDO): CXXFLAGS += $(HDFSCFLAGS) $(HDFSINCDIR:%=-I%) $(JNIINCDIR:%=-I%) ++$(HDFSO) $(HDFSDO): CXXFLAGS += $(HDFSCFLAGS) $(HDFSINCDIR:%=-I%) diff --git a/root-pythia8-incdir.patch b/root-pythia8-incdir.patch new file mode 100644 index 0000000..b0d0af2 --- /dev/null +++ b/root-pythia8-incdir.patch @@ -0,0 +1,24 @@ +diff -ur root-5.34.13.orig/config/Makefile.in root-5.34.13/config/Makefile.in +--- root-5.34.13.orig/config/Makefile.in 2013-12-01 11:58:21.000000000 +0100 ++++ root-5.34.13/config/Makefile.in 2013-12-04 14:50:39.291637133 +0100 +@@ -224,7 +224,7 @@ + FPYTHIA6CPPFLAGS := @pythia6cppflags@ + + BUILDFPYTHIA8 := @buildpythia8@ +-FPYTHIA8INCDIR := @pythia8incdir@ ++FPYTHIA8INCDIR := $(filter-out /usr/include, @pythia8incdir@) + FPYTHIA8LIBDIR := @pythia8libdir@ + FPYTHIA8LIB := @pythia8lib@ + +diff -ur root-5.34.13.orig/montecarlo/pythia8/Module.mk root-5.34.13/montecarlo/pythia8/Module.mk +--- root-5.34.13.orig/montecarlo/pythia8/Module.mk 2013-12-01 11:58:21.000000000 +0100 ++++ root-5.34.13/montecarlo/pythia8/Module.mk 2013-12-04 15:22:12.637030866 +0100 +@@ -50,7 +50,7 @@ + $(PYTHIA8DS): $(PYTHIA8H) $(PYTHIA8L) $(ROOTCINTTMPDEP) + $(MAKEDIR) + @echo "Generating dictionary $@..." +- $(ROOTCINTTMP) -f $@ -c -I$(FPYTHIA8INCDIR) $(PYTHIA8H) $(PYTHIA8L) ++ $(ROOTCINTTMP) -f $@ -c $(FPYTHIA8INCDIR:%=-I%) $(PYTHIA8H) $(PYTHIA8L) + + $(PYTHIA8MAP): $(RLIBMAP) $(MAKEFILEDEP) $(PYTHIA8L) + $(RLIBMAP) -o $@ -l $(PYTHIA8LIB) \ diff --git a/root-unuran.patch b/root-unuran.patch index b051e6e..e0557e5 100644 --- a/root-unuran.patch +++ b/root-unuran.patch @@ -1,16 +1,16 @@ -diff -ur root-trunk.orig/math/unuran/Module.mk root-trunk/math/unuran/Module.mk ---- root-trunk.orig/math/unuran/Module.mk 2010-11-25 20:41:32.000000000 +0100 -+++ root-trunk/math/unuran/Module.mk 2010-11-25 20:51:47.190704977 +0100 -@@ -20,7 +20,7 @@ - UNURANETAG := $(call stripsrc,$(UNURANDIRS)/headers.d) - UNRCFG := $(call stripsrc,$(UNURANDIRS)/$(UNRVERS)/config.h) - +diff -ur root-5.34.13.orig/math/unuran/Module.mk root-5.34.13/math/unuran/Module.mk +--- root-5.34.13.orig/math/unuran/Module.mk 2013-12-01 11:58:21.000000000 +0100 ++++ root-5.34.13/math/unuran/Module.mk 2013-12-03 20:11:58.916479324 +0100 +@@ -31,7 +31,7 @@ + $(wildcard $(UNRDIRS)/src/uniform/*.c) \ + $(wildcard $(UNRDIRS)/src/urng/*.c) + else -UNRTARCONTENT:=$(subst $(UNRVERS),$(UNRDIRS),$(shell mkdir -p $(UNRDIR); cd $(UNRDIR); gunzip -c $(UNRSRCS) | tar tf -)) +UNRTARCONTENT:= UNRS := $(filter %.c, \ $(filter $(UNRDIRS)/src/utils/%,$(UNRTARCONTENT)) \ $(filter $(UNRDIRS)/src/methods/%,$(UNRTARCONTENT)) \ -@@ -69,10 +69,9 @@ +@@ -81,10 +81,9 @@ ##### local rules ##### .PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) @@ -22,7 +22,7 @@ diff -ur root-trunk.orig/math/unuran/Module.mk root-trunk/math/unuran/Module.mk $(UNRS): $(UNURANETAG) $(UNURANETAG): $(UNRSRCS) -@@ -125,12 +124,12 @@ +@@ -137,12 +136,12 @@ GNUMAKE=$(MAKE) ./configure CC="$$ACC" \ CFLAGS="$$ACFLAGS"); diff --git a/root.spec b/root.spec index 52525a7..d1aaa53 100644 --- a/root.spec +++ b/root.spec @@ -42,9 +42,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.10 +Version: 5.34.13 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -84,6 +84,10 @@ Patch6: %{name}-thtml-revert.patch Patch7: %{name}-no-extra-formats.patch # Fixes for HDFS module Patch8: %{name}-hdfs.patch +# Don't link to libjvm (handled properly inside libhdfs) +Patch9: %{name}-dont-link-jvm.patch +# Filter out /usr/include +Patch10: %{name}-pythia8-incdir.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 @@ -154,7 +158,6 @@ BuildRequires: srm-ifce-devel %endif %if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 BuildRequires: hadoop-devel -BuildRequires: java-devel %endif BuildRequires: emacs BuildRequires: emacs-el @@ -165,7 +168,7 @@ BuildRequires: graphviz-gd %endif BuildRequires: expat-devel %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 -BuildRequires: pythia8-devel +BuildRequires: pythia8-devel >= 8.1.80 %endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(liberationsans) @@ -1160,6 +1163,8 @@ fi %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -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 \ @@ -1242,7 +1247,6 @@ sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ unset QTDIR unset QTLIB unset QTINC -export JAVA_HOME=/usr/lib/jvm/java ./configure --prefix=%{_prefix} \ --libdir=%{_libdir}/%{name} \ --etcdir=%{_datadir}/%{name} \ @@ -1281,7 +1285,6 @@ export JAVA_HOME=/usr/lib/jvm/java %if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 --enable-hdfs \ --with-hdfs-incdir=%{_includedir}/hadoop \ - --with-hdfs-libdir=%{_libdir} \ %else --disable-hdfs \ %endif @@ -1297,7 +1300,6 @@ export JAVA_HOME=/usr/lib/jvm/java --enable-python \ %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 --enable-pythia8 \ - --with-pythia8-incdir=%{_includedir}/pythia8 \ %else --disable-pythia8 \ %endif @@ -1342,6 +1344,7 @@ export JAVA_HOME=/usr/lib/jvm/java --disable-cling \ --disable-cxx11 \ --disable-glite \ + --disable-libcxx \ --disable-monalisa \ --disable-oracle \ --disable-pythia6 \ @@ -1357,11 +1360,13 @@ make OPTFLAGS="%{optflags}" \ # Build PyROOT for python 2.6 mkdir pyroot26 cp bindings/pyroot26/ROOT.py pyroot26 +cp bindings/pyroot26/cppyy.py pyroot26 make OPTFLAGS="%{optflags}" \ EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ MODULES="build cint/cint core/utils bindings/pyroot26" \ PYTHONINCDIR=/usr/include/python2.6 PYTHONLIB=-lpython2.6 \ - PYROOTLIB=pyroot26/libPyROOT.so ROOTPY=pyroot26/ROOT.py + PYROOTLIB=pyroot26/libPyROOT.so \ + ROOTPY="pyroot26/ROOT.py pyroot26/cppyy.py" %endif %install @@ -1434,6 +1439,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{python26_sitearch} install pyroot26/libPyROOT.so.%{libversion} \ ${RPM_BUILD_ROOT}%{python26_sitearch}/libPyROOT.so install -m 644 pyroot26/ROOT.py* ${RPM_BUILD_ROOT}%{python26_sitearch} +install -m 644 pyroot26/cppyy.py* ${RPM_BUILD_ROOT}%{python26_sitearch} %endif # Same for the Ruby interface library @@ -1539,7 +1545,7 @@ echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C -LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/i386/server \ +LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html @@ -1973,6 +1979,7 @@ fi %endif %{python_sitearch}/libPyROOT.* %{python_sitearch}/ROOT.py* +%{python_sitearch}/cppyy.py* %if "%{?rhel}" == "5" %files python26 -f includelist-bindings-pyroot @@ -1983,6 +1990,7 @@ fi %ghost %{_libdir}/%{name}/libPyROOT.so.%{libversion} %{python26_sitearch}/libPyROOT.* %{python26_sitearch}/ROOT.py* +%{python26_sitearch}/cppyy.py* %endif %files ruby -f includelist-bindings-ruby @@ -2477,6 +2485,11 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Dec 03 2013 Mattias Ellert - 5.34.13-1 +- Update to 5.34.13 +- Remove java-devel build dependency (not needed with Fedora's libhdfs) +- Adapt to pythia8 >= 8.1.80 + * Mon Nov 25 2013 Orion Poplawski - 5.34.10-3 - Fix hadoop lib location diff --git a/sources b/sources index 8a18003..0d3741f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -144ea7c3f9b3aea96445701956e3bc81 root-5.34.10.tar.xz +0d4538ebd29542d4bb0ae48922ae54a8 root-5.34.13.tar.xz From b06f48b2287292686022613baf73f9f2848cdf6e Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 19 Dec 2013 13:37:13 +0100 Subject: [PATCH 043/344] Update to 5.34.14 - New sub-packages: root-net-davix - Drop patch root-pythia8-incdir.patch --- root-pythia8-incdir.patch | 24 ------- root-xrootd.patch | 10 +-- root.spec | 131 +++++++++----------------------------- sources | 2 +- 4 files changed, 36 insertions(+), 131 deletions(-) delete mode 100644 root-pythia8-incdir.patch diff --git a/root-pythia8-incdir.patch b/root-pythia8-incdir.patch deleted file mode 100644 index b0d0af2..0000000 --- a/root-pythia8-incdir.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ur root-5.34.13.orig/config/Makefile.in root-5.34.13/config/Makefile.in ---- root-5.34.13.orig/config/Makefile.in 2013-12-01 11:58:21.000000000 +0100 -+++ root-5.34.13/config/Makefile.in 2013-12-04 14:50:39.291637133 +0100 -@@ -224,7 +224,7 @@ - FPYTHIA6CPPFLAGS := @pythia6cppflags@ - - BUILDFPYTHIA8 := @buildpythia8@ --FPYTHIA8INCDIR := @pythia8incdir@ -+FPYTHIA8INCDIR := $(filter-out /usr/include, @pythia8incdir@) - FPYTHIA8LIBDIR := @pythia8libdir@ - FPYTHIA8LIB := @pythia8lib@ - -diff -ur root-5.34.13.orig/montecarlo/pythia8/Module.mk root-5.34.13/montecarlo/pythia8/Module.mk ---- root-5.34.13.orig/montecarlo/pythia8/Module.mk 2013-12-01 11:58:21.000000000 +0100 -+++ root-5.34.13/montecarlo/pythia8/Module.mk 2013-12-04 15:22:12.637030866 +0100 -@@ -50,7 +50,7 @@ - $(PYTHIA8DS): $(PYTHIA8H) $(PYTHIA8L) $(ROOTCINTTMPDEP) - $(MAKEDIR) - @echo "Generating dictionary $@..." -- $(ROOTCINTTMP) -f $@ -c -I$(FPYTHIA8INCDIR) $(PYTHIA8H) $(PYTHIA8L) -+ $(ROOTCINTTMP) -f $@ -c $(FPYTHIA8INCDIR:%=-I%) $(PYTHIA8H) $(PYTHIA8L) - - $(PYTHIA8MAP): $(RLIBMAP) $(MAKEFILEDEP) $(PYTHIA8L) - $(RLIBMAP) -o $@ -l $(PYTHIA8LIB) \ diff --git a/root-xrootd.patch b/root-xrootd.patch index 9f7c113..6837a81 100644 --- a/root-xrootd.patch +++ b/root-xrootd.patch @@ -1,7 +1,7 @@ -diff -ur root-5.32.01.orig/configure root-5.32.01/configure ---- root-5.32.01.orig/configure 2012-02-29 16:46:41.000000000 +0100 -+++ root-5.32.01/configure 2012-03-17 14:14:02.822111495 +0100 -@@ -4486,10 +4486,14 @@ +diff -ur root-5.34.14.orig/configure root-5.34.14/configure +--- root-5.34.14.orig/configure 2013-12-16 12:19:34.000000000 +0100 ++++ root-5.34.14/configure 2013-12-19 03:47:25.973920954 +0100 +@@ -4926,10 +4926,14 @@ if test "x$enable_xrootd" = "xyes"; then xrdlibdir="$tmpxrdlibdir" if test "x$enable_bonjour" = "xyes"; then @@ -19,4 +19,4 @@ diff -ur root-5.32.01.orig/configure root-5.32.01/configure + bonjourcppflags= fi fi - fi + diff --git a/root.spec b/root.spec index d1aaa53..c58dcdc 100644 --- a/root.spec +++ b/root.spec @@ -42,7 +42,7 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.13 +Version: 5.34.14 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -86,8 +86,6 @@ Patch7: %{name}-no-extra-formats.patch Patch8: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) Patch9: %{name}-dont-link-jvm.patch -# Filter out /usr/include -Patch10: %{name}-pythia8-incdir.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 @@ -149,10 +147,11 @@ BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel -BuildRequires: xrootd-client-devel -BuildRequires: xrootd-private-devel +BuildRequires: xrootd-client-devel >= 1:3.3.5 +BuildRequires: xrootd-private-devel >= 1:3.3.5 BuildRequires: cfitsio-devel %if %{gfal} +BuildRequires: davix-devel BuildRequires: gfal-devel BuildRequires: srm-ifce-devel %endif @@ -943,6 +942,14 @@ Group: Applications/Engineering %description net-auth This package contains the basic authentication algorithms used by ROOT. +%package net-davix +Summary: Davix extension for ROOT +Group: Applications/Engineering + +%description net-davix +This package contains the davix extension for ROOT, that provides +access to http based storage such as webdav and S3. + %package net-globus Summary: Globus extension for ROOT Group: Applications/Engineering @@ -975,7 +982,8 @@ Group: Applications/Engineering %description netx This package contains the NetX extension for ROOT, i.e. a client for -the xrootd server. +the xrootd server. Both the old (NetX) and the new (NetXNG) version are +provided. %package proof Summary: PROOF extension for ROOT @@ -1164,7 +1172,6 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -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 \ @@ -1266,6 +1273,7 @@ unset QTINC --enable-asimage \ --enable-astiff \ --enable-bonjour \ + --enable-davix \ --enable-dcache \ --enable-explicitlink \ --enable-fftw3 \ @@ -1567,6 +1575,7 @@ cat includelist-graf2d-mathtext >> includelist-graf2d-x11 cat includelist-gui-guihtml >> includelist-gui-gui cat includelist-io-xmlparser >> includelist-io-xml cat includelist-proof-proofplayer >> includelist-proof-proof +cat includelist-net-netx* > includelist-netx %if "%{?rhel}" == "5" # Python byte code compilation @@ -1806,6 +1815,8 @@ fi %postun net-bonjour -p /sbin/ldconfig %post net-auth -p /sbin/ldconfig %postun net-auth -p /sbin/ldconfig +%post net-davix -p /sbin/ldconfig +%postun net-davix -p /sbin/ldconfig %post net-globus -p /sbin/ldconfig %postun net-globus -p /sbin/ldconfig %post net-krb5 -p /sbin/ldconfig @@ -1840,7 +1851,6 @@ fi %postun tree-viewer -p /sbin/ldconfig %files -%defattr(-,root,root,-) %{_bindir}/hadd %{_bindir}/root %{_bindir}/root.exe @@ -1860,11 +1870,9 @@ fi %{_datadir}/mime/packages/root.xml %files icons -%defattr(-,root,root,-) %{_datadir}/%{name}/icons %files core -f includelist-core -%defattr(-,root,root,-) %{_bindir}/memprobe %{_bindir}/rlibmap %{_bindir}/rmkdepend @@ -1904,7 +1912,6 @@ fi %doc %{_pkgdocdir}/README %files cint -f includelist-cint-cint -%defattr(-,root,root,-) %{_bindir}/rootcint %{_mandir}/man1/rootcint.1* %dir %{_libdir}/%{name} @@ -1917,14 +1924,12 @@ fi %ifarch %{ix86} x86_64 %files cintex -f includelist-cint-cintex -%defattr(-,root,root,-) %{_libdir}/%{name}/libCintex.* %{python_sitearch}/PyCintex.py* %dir %{_includedir}/%{name}/Cintex %endif %files reflex -f includelist-cint-reflex -%defattr(-,root,root,-) %{_bindir}/genmap %{_bindir}/genreflex %{_bindir}/genreflex-rootcint @@ -1939,16 +1944,13 @@ fi %dir %{_includedir}/%{name}/Reflex/internal %files doc -%defattr(-,root,root,-) %doc %{_pkgdocdir}/html %files tutorial -%defattr(-,root,root,-) %doc %{_pkgdocdir}/test %doc %{_pkgdocdir}/tutorials %files proofd -%defattr(-,root,root,-) %{_bindir}/proofd %{_bindir}/proofexecv %{_bindir}/proofserv @@ -1962,13 +1964,11 @@ fi %{_initrddir}/proofd %files rootd -%defattr(-,root,root,-) %{_bindir}/rootd %{_mandir}/man1/rootd.1* %{_initrddir}/rootd %files python -f includelist-bindings-pyroot -%defattr(-,root,root,-) %if "%{?rhel}" == "5" %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so @@ -1983,7 +1983,6 @@ fi %if "%{?rhel}" == "5" %files python26 -f includelist-bindings-pyroot -%defattr(-,root,root,-) %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so %{_libdir}/%{name}/libPyROOT.so.5 @@ -1994,17 +1993,14 @@ fi %endif %files ruby -f includelist-bindings-ruby -%defattr(-,root,root,-) %{_libdir}/%{name}/libRuby.* %{ruby_installdir}/libRuby.* %files genetic -f includelist-math-genetic -%defattr(-,root,root,-) %{_libdir}/%{name}/libGenetic.* %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P080_GeneticMinimizer.C %files geom -f includelist-geom -%defattr(-,root,root,-) %{_libdir}/%{name}/libGeom.* %{_libdir}/%{name}/libGeomBuilder.* %{_libdir}/%{name}/libGeomPainter.* @@ -2013,38 +2009,31 @@ fi %{_datadir}/%{name}/RadioNuclides.txt %files gdml -f includelist-geom-gdml -%defattr(-,root,root,-) %{_libdir}/%{name}/libGdml.* %{python_sitearch}/ROOTwriter.py* %{python_sitearch}/writer.py* %files graf -f includelist-graf2d-graf -%defattr(-,root,root,-) %{_libdir}/%{name}/libGraf.* %{_datadir}/%{name}/plugins/TMinuitGraph/P010_TGraph.C %files graf-asimage -f includelist-graf2d-asimage -%defattr(-,root,root,-) %{_libdir}/%{name}/libASImage.* %{_libdir}/%{name}/libASImageGui.* %{_datadir}/%{name}/plugins/TImage/P010_TASImage.C %{_datadir}/%{name}/plugins/TPaletteEditor/P010_TASPaletteEditor.C %files graf-fitsio -f includelist-graf2d-fitsio -%defattr(-,root,root,-) %{_libdir}/%{name}/libFITSIO.* %files graf-gpad -f includelist-graf2d-gpad -%defattr(-,root,root,-) %{_libdir}/%{name}/libGpad.* %{_datadir}/%{name}/plugins/TVirtualPad/P010_TPad.C %files graf-gviz -f includelist-graf2d-gviz -%defattr(-,root,root,-) %{_libdir}/%{name}/libGviz.* %files graf-postscript -f includelist-graf2d-postscript -%defattr(-,root,root,-) %{_libdir}/%{name}/libPostscript.* %{_datadir}/%{name}/plugins/TVirtualPS/P010_TPostScript.C %{_datadir}/%{name}/plugins/TVirtualPS/P020_TSVG.C @@ -2054,29 +2043,24 @@ fi %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 %files graf-qt -f includelist-graf2d-qt -%defattr(-,root,root,-) %{_libdir}/%{name}/libGQt.* %{_datadir}/%{name}/plugins/TVirtualX/P040_TGQt.C %endif %files graf-x11 -f includelist-graf2d-x11 -%defattr(-,root,root,-) %{_libdir}/%{name}/libGX11.* %{_libdir}/%{name}/libGX11TTF.* %{_datadir}/%{name}/plugins/TVirtualX/P010_TGX11.C %{_datadir}/%{name}/plugins/TVirtualX/P020_TGX11TTF.C %files graf3d -f includelist-graf3d-g3d -%defattr(-,root,root,-) %{_libdir}/%{name}/libGraf3d.* %{_datadir}/%{name}/plugins/TView/P010_TView3D.C %files graf3d-eve -f includelist-graf3d-eve -%defattr(-,root,root,-) %{_libdir}/%{name}/libEve.* %files graf3d-gl -f includelist-graf3d-gl -%defattr(-,root,root,-) %{_libdir}/%{name}/libRGL.* %{_datadir}/%{name}/plugins/TGLHistPainter/P010_TGLHistPainter.C %{_datadir}/%{name}/plugins/TGLManager/P010_TX11GLManager.C @@ -2086,17 +2070,14 @@ fi %{_datadir}/%{name}/plugins/TVirtualViewer3D/P030_TGLViewer.C %files graf3d-gviz3d -f includelist-graf3d-gviz3d -%defattr(-,root,root,-) %{_libdir}/%{name}/libGviz3d.* %files graf3d-x3d -f includelist-graf3d-x3d -%defattr(-,root,root,-) %{_libdir}/%{name}/libX3d.* %{_datadir}/%{name}/plugins/TViewerX3D/P010_TViewerX3D.C %{_datadir}/%{name}/plugins/TVirtualViewer3D/P010_TViewerX3D.C %files gui -f includelist-gui-gui -%defattr(-,root,root,-) %{_libdir}/%{name}/libGui.* %{_libdir}/%{name}/libGuiHtml.* %{_datadir}/%{name}/plugins/TBrowserImp/P010_TRootBrowser.C @@ -2105,35 +2086,29 @@ fi %{_datadir}/%{name}/plugins/TGuiFactory/P010_TRootGuiFactory.C %files gui-fitpanel -f includelist-gui-fitpanel -%defattr(-,root,root,-) %{_libdir}/%{name}/libFitPanel.* %{_datadir}/%{name}/plugins/TFitEditor/P010_TFitEditor.C %files gui-ged -f includelist-gui-ged -%defattr(-,root,root,-) %{_libdir}/%{name}/libGed.* %{_datadir}/%{name}/plugins/TVirtualPadEditor/P010_TGedEditor.C %files guibuilder -f includelist-gui-guibuilder -%defattr(-,root,root,-) %{_libdir}/%{name}/libGuiBld.* %{_datadir}/%{name}/plugins/TGuiBuilder/P010_TRootGuiBuilder.C %{_datadir}/%{name}/plugins/TVirtualDragManager/P010_TGuiBldDragManager.C %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 %files gui-qt -f includelist-gui-qt -%defattr(-,root,root,-) %{_libdir}/%{name}/libQtRoot.* %{_libdir}/%{name}/libQtGSI.* %{_datadir}/%{name}/plugins/TGuiFactory/P020_TQtRootGuiFactory.C %endif %files gui-recorder -f includelist-gui-recorder -%defattr(-,root,root,-) %{_libdir}/%{name}/libRecorder.* %files hbook -f includelist-hist-hbook -%defattr(-,root,root,-) %{_bindir}/g2root %{_bindir}/h2root %{_mandir}/man1/g2root.1* @@ -2142,25 +2117,20 @@ fi %{_libdir}/%{name}/libHbook.* %files hist -f includelist-hist-hist -%defattr(-,root,root,-) %{_libdir}/%{name}/libHist.* %files hist-painter -f includelist-hist-histpainter -%defattr(-,root,root,-) %{_libdir}/%{name}/libHistPainter.* %{_datadir}/%{name}/plugins/TVirtualHistPainter/P010_THistPainter.C %{_datadir}/%{name}/plugins/TVirtualGraphPainter/P010_TGraphPainter.C %files spectrum -f includelist-hist-spectrum -%defattr(-,root,root,-) %{_libdir}/%{name}/libSpectrum.* %files spectrum-painter -f includelist-hist-spectrumpainter -%defattr(-,root,root,-) %{_libdir}/%{name}/libSpectrumPainter.* %files hist-factory -f includelist-roofit-histfactory -%defattr(-,root,root,-) %{_bindir}/hist2workspace %{_bindir}/prepareHistFactory %{_mandir}/man1/hist2workspace.1* @@ -2171,62 +2141,52 @@ fi %doc roofit/histfactory/doc/README %files html -f includelist-html -%defattr(-,root,root,-) %{_libdir}/%{name}/libHtml.* %{_datadir}/%{name}/html %{_datadir}/%{name}/macros/html.C %files io -f includelist-io-io -%defattr(-,root,root,-) %{_libdir}/%{name}/libRIO.* %{_datadir}/%{name}/plugins/TArchiveFile/P010_TZIPFile.C %{_datadir}/%{name}/plugins/TVirtualStreamerInfo/P010_TStreamerInfo.C %files io-dcache -f includelist-io-dcache -%defattr(-,root,root,-) %{_libdir}/%{name}/libDCache.* %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C %if %{gfal} %files io-gfal -f includelist-io-gfal -%defattr(-,root,root,-) %{_libdir}/%{name}/libGFAL.* %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C %endif %if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 %files io-hdfs -f includelist-io-hdfs -%defattr(-,root,root,-) %{_libdir}/%{name}/libHDFS.* %{_datadir}/%{name}/plugins/TFile/P110_THDFSFile.C %{_datadir}/%{name}/plugins/TSystem/P060_THDFSSystem.C %endif %files io-rfio -f includelist-io-rfio -%defattr(-,root,root,-) %{_libdir}/%{name}/libRFIO.* %{_datadir}/%{name}/plugins/TFile/P020_TRFIOFile.C %{_datadir}/%{name}/plugins/TSystem/P010_TRFIOSystem.C %files io-sql -f includelist-io-sql -%defattr(-,root,root,-) %{_libdir}/%{name}/libSQLIO.* %{_datadir}/%{name}/plugins/TFile/P090_TSQLFile.C %files io-xml -f includelist-io-xml -%defattr(-,root,root,-) %{_libdir}/%{name}/libXMLIO.* %{_libdir}/%{name}/libXMLParser.* %{_datadir}/%{name}/plugins/TFile/P080_TXMLFile.C %files foam -f includelist-math-foam -%defattr(-,root,root,-) %{_libdir}/%{name}/libFoam.* %{_datadir}/%{name}/plugins/ROOT@@Math@@DistSampler/P020_TFoamSampler.C %files fftw -f includelist-math-fftw -%defattr(-,root,root,-) %{_libdir}/%{name}/libFFTW.* %{_datadir}/%{name}/plugins/TVirtualFFT/P010_TFFTComplex.C %{_datadir}/%{name}/plugins/TVirtualFFT/P020_TFFTComplexReal.C @@ -2234,23 +2194,19 @@ fi %{_datadir}/%{name}/plugins/TVirtualFFT/P040_TFFTReal.C %files fumili -f includelist-math-fumili -%defattr(-,root,root,-) %{_libdir}/%{name}/libFumili.* %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P070_TFumiliMinimizer.C %{_datadir}/%{name}/plugins/TVirtualFitter/P020_TFumili.C %files genvector -f includelist-math-genvector -%defattr(-,root,root,-) %{_libdir}/%{name}/libGenVector.* %dir %{_includedir}/%{name}/Math/GenVector %files mathcore -f includelist-math-mathcore -%defattr(-,root,root,-) %{_libdir}/%{name}/libMathCore.* %dir %{_includedir}/%{name}/Fit %files mathmore -f includelist-math-mathmore -%defattr(-,root,root,-) %{_libdir}/%{name}/libMathMore.* %{_datadir}/%{name}/plugins/ROOT@@Math@@IRootFinderMethod/P010_Brent.C %{_datadir}/%{name}/plugins/ROOT@@Math@@IRootFinderMethod/P020_Bisection.C @@ -2265,18 +2221,15 @@ fi %{_datadir}/%{name}/plugins/ROOT@@Math@@VirtualIntegrator/P020_GSLMCIntegrator.C %files matrix -f includelist-math-matrix -%defattr(-,root,root,-) %{_libdir}/%{name}/libMatrix.* %files minuit -f includelist-math-minuit -%defattr(-,root,root,-) %{_libdir}/%{name}/libMinuit.* %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P020_TMinuitMinimizer.C %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P060_TLinearMinimizer.C %{_datadir}/%{name}/plugins/TVirtualFitter/P010_TFitter.C %files minuit2 -f includelist-math-minuit2 -%defattr(-,root,root,-) %{_libdir}/%{name}/libMinuit2.* %dir %{_includedir}/%{name}/Minuit2 %{_datadir}/%{name}/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C @@ -2284,57 +2237,45 @@ fi %{_datadir}/%{name}/plugins/TVirtualFitter/P040_TFitterFumili.C %files mlp -f includelist-math-mlp -%defattr(-,root,root,-) %{_libdir}/%{name}/libMLP.* %files physics -f includelist-math-physics -%defattr(-,root,root,-) %{_libdir}/%{name}/libPhysics.* %files quadp -f includelist-math-quadp -%defattr(-,root,root,-) %{_libdir}/%{name}/libQuadp.* %files smatrix -f includelist-math-smatrix -%defattr(-,root,root,-) %{_libdir}/%{name}/libSmatrix.* %files splot -f includelist-math-splot -%defattr(-,root,root,-) %{_libdir}/%{name}/libSPlot.* %files unuran -f includelist-math-unuran -%defattr(-,root,root,-) %{_libdir}/%{name}/libUnuran.* %{_datadir}/%{name}/plugins/ROOT@@Math@@DistSampler/P010_TUnuranSampler.C %files memstat -f includelist-misc-memstat -%defattr(-,root,root,-) %{_libdir}/%{name}/libMemStat.* %files table -f includelist-misc-table -%defattr(-,root,root,-) %{_libdir}/%{name}/libTable.* %files montecarlo-eg -f includelist-montecarlo-eg -%defattr(-,root,root,-) %{_libdir}/%{name}/libEG.* %{_datadir}/%{name}/pdg_table.txt %doc %{_pkgdocdir}/cfortran.doc %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 %files montecarlo-pythia8 -f includelist-montecarlo-pythia8 -%defattr(-,root,root,-) %{_libdir}/%{name}/libEGPythia8.* %endif %files montecarlo-vmc -f includelist-montecarlo-vmc -%defattr(-,root,root,-) %{_libdir}/%{name}/libVMC.* %{_datadir}/%{name}/vmc %files net -f includelist-net-net -%defattr(-,root,root,-) %{_libdir}/%{name}/libNet.* %{_datadir}/%{name}/plugins/TApplication/P010_TApplicationRemote.C %{_datadir}/%{name}/plugins/TApplication/P020_TApplicationServer.C @@ -2347,41 +2288,39 @@ fi %{_datadir}/%{name}/plugins/TVirtualMonitoringWriter/P020_TSQLMonitoringWriter.C %files net-rpdutils -f includelist-net-rpdutils -%defattr(-,root,root,-) %{_libdir}/%{name}/libSrvAuth.* %files net-bonjour -f includelist-net-bonjour -%defattr(-,root,root,-) %{_libdir}/%{name}/libBonjour.* %files net-auth -f includelist-net-auth -%defattr(-,root,root,-) %{_libdir}/%{name}/libRootAuth.* %{_datadir}/%{name}/plugins/TVirtualAuth/P010_TRootAuth.C %doc %{_pkgdocdir}/README.AUTH +%files net-davix -f includelist-net-davix +%{_libdir}/%{name}/libRDAVIX.* +%{_datadir}/%{name}/plugins/TFile/P130_TDavixFile.C +%{_datadir}/%{name}/plugins/TSystem/P045_TDavixSystem.C + %files net-globus -%defattr(-,root,root,-) %{_libdir}/%{name}/libGlobusAuth.* %doc %{_pkgdocdir}/README.GLOBUS %files net-krb5 -f includelist-net-krb5auth -%defattr(-,root,root,-) %{_libdir}/%{name}/libKrb5Auth.* %files net-ldap -f includelist-net-ldap -%defattr(-,root,root,-) %{_libdir}/%{name}/libRLDAP.* -%files netx -f includelist-net-netx -%defattr(-,root,root,-) +%files netx -f includelist-netx %{_libdir}/%{name}/libNetx.* +%{_libdir}/%{name}/libNetxNG.* %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C %{_datadir}/%{name}/plugins/TFileStager/P010_TXNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P040_TXNetSystem.C %files proof -f includelist-proof-proof -%defattr(-,root,root,-) %{_libdir}/%{name}/libProof.* %{_libdir}/%{name}/libProofDraw.* %{_libdir}/%{name}/libProofPlayer.* @@ -2402,24 +2341,20 @@ fi %doc %{_pkgdocdir}/README.PROOF %files proof-bench -f includelist-proof-proofbench -%defattr(-,root,root,-) %{_libdir}/%{name}/libProofBench.* %{_datadir}/%{name}/proof %files proof-pq2 -f includelist-proof-pq2 -%defattr(-,root,root,-) %{_bindir}/pq2* %{_mandir}/man1/pq2*.1* %files proof-sessionviewer -f includelist-gui-sessionviewer -%defattr(-,root,root,-) %{_libdir}/%{name}/libSessionViewer.* %{_datadir}/%{name}/plugins/TProofProgressDialog/P010_TProofProgressDialog.C %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C %files xproof -f includelist-proof-proofx -%defattr(-,root,root,-) %{_libdir}/%{name}/libProofx.* %{_libdir}/%{name}/libXrdProofd.* %{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C @@ -2427,64 +2362,58 @@ fi %{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C %files roofit -f includelist-roofit -%defattr(-,root,root,-) %{_libdir}/%{name}/libRooFit.* %{_libdir}/%{name}/libRooFitCore.* %{_libdir}/%{name}/libRooStats.* %dir %{_includedir}/%{name}/RooStats %files sql-mysql -f includelist-sql-mysql -%defattr(-,root,root,-) %{_libdir}/%{name}/libRMySQL.* %{_datadir}/%{name}/plugins/TSQLServer/P010_TMySQLServer.C %files sql-odbc -f includelist-sql-odbc -%defattr(-,root,root,-) %{_libdir}/%{name}/libRODBC.* %{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C %files sql-sqlite -f includelist-sql-sqlite -%defattr(-,root,root,-) %{_libdir}/%{name}/libSQLite.* %{_datadir}/%{name}/plugins/TSQLServer/P060_TSQLiteServer.C %files sql-pgsql -f includelist-sql-pgsql -%defattr(-,root,root,-) %{_libdir}/%{name}/libPgSQL.* %{_datadir}/%{name}/plugins/TSQLServer/P020_TPgSQLServer.C %files tmva -f includelist-tmva -%defattr(-,root,root,-) %{_libdir}/%{name}/libTMVA.* %dir %{_includedir}/%{name}/TMVA %doc tmva/doc/LICENSE %files tree -f includelist-tree-tree -%defattr(-,root,root,-) %{_libdir}/%{name}/libTree.* %doc %{_pkgdocdir}/README.SELECTOR %files tree-player -f includelist-tree-treeplayer -%defattr(-,root,root,-) %{_libdir}/%{name}/libTreePlayer.* %{_datadir}/%{name}/plugins/TFileDrawMap/P010_TFileDrawMap.C %{_datadir}/%{name}/plugins/TVirtualTreePlayer/P010_TTreePlayer.C %files tree-viewer -f includelist-tree-treeviewer -%defattr(-,root,root,-) %{_libdir}/%{name}/libTreeViewer.* %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %files -n emacs-%{name} -%defattr(-,root,root,-) %dir %{emacs_lispdir}/root %{emacs_lispdir}/root/*.elc %files -n emacs-%{name}-el -%defattr(-,root,root,-) %{emacs_lispdir}/root/*.el %changelog +* Thu Dec 19 2013 Mattias Ellert - 5.34.14-1 +- Update to 5.34.14 +- New sub-packages: root-net-davix +- Drop patch root-pythia8-incdir.patch + * Tue Dec 03 2013 Mattias Ellert - 5.34.13-1 - Update to 5.34.13 - Remove java-devel build dependency (not needed with Fedora's libhdfs) diff --git a/sources b/sources index 0d3741f..1bc2d69 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0d4538ebd29542d4bb0ae48922ae54a8 root-5.34.13.tar.xz +fd9ee1dac57ec8840fb95ee345e8ad0c root-5.34.14.tar.xz From 734af7d621b9c64bf9650fba0f9b1784d24f77cd Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 20 Dec 2013 14:07:09 +0100 Subject: [PATCH 044/344] Use versioned BR on davix-devel --- root.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/root.spec b/root.spec index c58dcdc..aab8c6c 100644 --- a/root.spec +++ b/root.spec @@ -44,7 +44,7 @@ Name: root Version: 5.34.14 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -150,8 +150,8 @@ BuildRequires: dpm-devel BuildRequires: xrootd-client-devel >= 1:3.3.5 BuildRequires: xrootd-private-devel >= 1:3.3.5 BuildRequires: cfitsio-devel +BuildRequires: davix-devel >= 0.2.7 %if %{gfal} -BuildRequires: davix-devel BuildRequires: gfal-devel BuildRequires: srm-ifce-devel %endif @@ -2409,6 +2409,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Dec 19 2013 Mattias Ellert - 5.34.14-2 +- Use versioned BR on davix-devel + * Thu Dec 19 2013 Mattias Ellert - 5.34.14-1 - Update to 5.34.14 - New sub-packages: root-net-davix From 803434059fead4b80018acbdb231952e3df8f96b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 23 Dec 2013 09:01:42 +0100 Subject: [PATCH 045/344] Adapt to davix >= 0.2.8 --- root-davix.patch | 12 ++++++++++++ root.spec | 10 +++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 root-davix.patch diff --git a/root-davix.patch b/root-davix.patch new file mode 100644 index 0000000..3bd0338 --- /dev/null +++ b/root-davix.patch @@ -0,0 +1,12 @@ +diff -ur root-5.34.14.orig/net/davix/src/TDavixSystem.cxx root-5.34.14/net/davix/src/TDavixSystem.cxx +--- root-5.34.14.orig/net/davix/src/TDavixSystem.cxx 2013-12-16 12:19:34.000000000 +0100 ++++ root-5.34.14/net/davix/src/TDavixSystem.cxx 2013-12-23 03:47:03.785238174 +0100 +@@ -172,7 +172,7 @@ + return 1; + } + if (vecRep.size() > 0) { +- endurl = vecRep[0].getString().c_str(); ++ endurl = vecRep[0].uri.getString().c_str(); + } else { + endurl = path; + } diff --git a/root.spec b/root.spec index aab8c6c..1584db2 100644 --- a/root.spec +++ b/root.spec @@ -86,6 +86,8 @@ Patch7: %{name}-no-extra-formats.patch Patch8: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) Patch9: %{name}-dont-link-jvm.patch +# Fix for davix 0.2.8 +Patch10: %{name}-davix.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 @@ -150,7 +152,7 @@ BuildRequires: dpm-devel BuildRequires: xrootd-client-devel >= 1:3.3.5 BuildRequires: xrootd-private-devel >= 1:3.3.5 BuildRequires: cfitsio-devel -BuildRequires: davix-devel >= 0.2.7 +BuildRequires: davix-devel >= 0.2.8 %if %{gfal} BuildRequires: gfal-devel BuildRequires: srm-ifce-devel @@ -945,6 +947,7 @@ This package contains the basic authentication algorithms used by ROOT. %package net-davix Summary: Davix extension for ROOT Group: Applications/Engineering +Requires: davix-libs%{?_isa} >= 0.2.8 %description net-davix This package contains the davix extension for ROOT, that provides @@ -1172,6 +1175,7 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -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 \ @@ -2409,8 +2413,8 @@ fi %{emacs_lispdir}/root/*.el %changelog -* Thu Dec 19 2013 Mattias Ellert - 5.34.14-2 -- Use versioned BR on davix-devel +* Mon Dec 23 2013 Mattias Ellert - 5.34.14-2 +- Adapt to davix >= 0.2.8 * Thu Dec 19 2013 Mattias Ellert - 5.34.14-1 - Update to 5.34.14 From 2f5267cd4fbd4563a321f0d39f447bc3c7e82883 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 9 Jan 2014 13:53:14 +0100 Subject: [PATCH 046/344] Rebuild for cfitsio 3.360 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 1584db2..ff0bd16 100644 --- a/root.spec +++ b/root.spec @@ -2413,12 +2413,15 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Jan 09 2014 Mattias Ellert - 5.34.14-3 +- Rebuild for cfitsio 3.360 + * Mon Dec 23 2013 Mattias Ellert - 5.34.14-2 - Adapt to davix >= 0.2.8 * Thu Dec 19 2013 Mattias Ellert - 5.34.14-1 - Update to 5.34.14 -- New sub-packages: root-net-davix +- New sub-package: root-net-davix - Drop patch root-pythia8-incdir.patch * Tue Dec 03 2013 Mattias Ellert - 5.34.13-1 From 0555799990b719959035d8060d00072b6e9574e8 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 9 Jan 2014 13:56:10 +0100 Subject: [PATCH 047/344] Rebuild for cfitsio 3.360 --- root.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root.spec b/root.spec index ff0bd16..c2d2025 100644 --- a/root.spec +++ b/root.spec @@ -44,7 +44,7 @@ Name: root Version: 5.34.14 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering From 7406803d34747886d5c9685e8eefc934c011aab6 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 15 Feb 2014 07:32:03 +0100 Subject: [PATCH 048/344] Update to 5.34.15 - Drop patch root-davix.patch --- root-davix.patch | 12 ------------ root.spec | 13 +++++++------ sources | 2 +- 3 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 root-davix.patch diff --git a/root-davix.patch b/root-davix.patch deleted file mode 100644 index 3bd0338..0000000 --- a/root-davix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur root-5.34.14.orig/net/davix/src/TDavixSystem.cxx root-5.34.14/net/davix/src/TDavixSystem.cxx ---- root-5.34.14.orig/net/davix/src/TDavixSystem.cxx 2013-12-16 12:19:34.000000000 +0100 -+++ root-5.34.14/net/davix/src/TDavixSystem.cxx 2013-12-23 03:47:03.785238174 +0100 -@@ -172,7 +172,7 @@ - return 1; - } - if (vecRep.size() > 0) { -- endurl = vecRep[0].getString().c_str(); -+ endurl = vecRep[0].uri.getString().c_str(); - } else { - endurl = path; - } diff --git a/root.spec b/root.spec index c2d2025..1df6585 100644 --- a/root.spec +++ b/root.spec @@ -42,9 +42,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.14 +Version: 5.34.15 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -86,8 +86,6 @@ Patch7: %{name}-no-extra-formats.patch Patch8: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) Patch9: %{name}-dont-link-jvm.patch -# Fix for davix 0.2.8 -Patch10: %{name}-davix.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 @@ -1175,7 +1173,6 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -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 \ @@ -1520,6 +1517,7 @@ rm TFile/P070_TAlienFile.C rm TFile/P110_THDFSFile.C %endif rm TGLManager/P020_TGWin32GLManager.C +rm TGLManager/P030_TGOSXGLManager.C rm TGrid/P010_TAlien.C rm TGrid/P020_TGLite.C %if %{?fedora}%{!?fedora:0} < 9 && %{?rhel}%{!?rhel:0} < 6 @@ -1575,7 +1573,6 @@ cat includelist-geom-geom* > includelist-geom cat includelist-roofit-roo* > includelist-roofit cat includelist-gui-qt* > includelist-gui-qt cat includelist-graf2d-x11ttf >> includelist-graf2d-x11 -cat includelist-graf2d-mathtext >> includelist-graf2d-x11 cat includelist-gui-guihtml >> includelist-gui-gui cat includelist-io-xmlparser >> includelist-io-xml cat includelist-proof-proofplayer >> includelist-proof-proof @@ -2413,6 +2410,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Feb 14 2014 Mattias Ellert - 5.34.15-1 +- Update to 5.34.15 +- Drop patch root-davix.patch + * Thu Jan 09 2014 Mattias Ellert - 5.34.14-3 - Rebuild for cfitsio 3.360 diff --git a/sources b/sources index 1bc2d69..9dc830c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fd9ee1dac57ec8840fb95ee345e8ad0c root-5.34.14.tar.xz +bd618421e991e3694d5cfbf60abe82de root-5.34.15.tar.xz From 3aa26cce302f93d10f5d12989e8f5ce2de514aa8 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 27 Feb 2014 19:20:49 +0100 Subject: [PATCH 049/344] Update to 5.34.17 --- root-bsd-misc.patch | 12 ++++++++++++ root-includelist | 1 + root.spec | 11 ++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 root-bsd-misc.patch diff --git a/root-bsd-misc.patch b/root-bsd-misc.patch new file mode 100644 index 0000000..b49fbba --- /dev/null +++ b/root-bsd-misc.patch @@ -0,0 +1,12 @@ +diff -ur root-5.34.17.orig/core/base/src/TTimeStamp.cxx root-5.34.17/core/base/src/TTimeStamp.cxx +--- root-5.34.17.orig/core/base/src/TTimeStamp.cxx 2014-02-24 09:37:53.000000000 +0100 ++++ root-5.34.17/core/base/src/TTimeStamp.cxx 2014-02-27 09:37:28.381639337 +0100 +@@ -813,7 +813,7 @@ + tmstruct.tm_isdst); + #if (defined(linux) && !defined(R__WINGCC)) || defined(R__MACOSX) + printf(",\n tm_gmtoff %6ld, tm_zone \"%s\"", +-#if defined(__USE_BSD) || defined(R__MACOSX) ++#if defined(__USE_MISC) || defined(R__MACOSX) + tmstruct.tm_gmtoff, tmstruct.tm_zone); + #else + tmstruct.__tm_gmtoff, tmstruct.__tm_zone); diff --git a/root-includelist b/root-includelist index cd7842c..3faece8 100644 --- a/root-includelist +++ b/root-includelist @@ -1,3 +1,4 @@ +include config/Makefile.config include $(MODULE)/Module.mk includelist: @list=includelist-`tr / - <<< $(MODULE)` ; \ diff --git a/root.spec b/root.spec index 1df6585..40a1b3c 100644 --- a/root.spec +++ b/root.spec @@ -42,7 +42,7 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.15 +Version: 5.34.17 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -86,6 +86,8 @@ Patch7: %{name}-no-extra-formats.patch Patch8: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) Patch9: %{name}-dont-link-jvm.patch +# Avoid deprecated __USE_BSD +Patch10: %{name}-bsd-misc.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 @@ -1173,6 +1175,7 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -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 \ @@ -1563,8 +1566,7 @@ mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html # Create includelist files ... for module in `find * -name Module.mk` ; do module=`dirname $module` - make -f %{SOURCE1} includelist MODULE=$module ROOT_SRCDIR=$PWD \ - HASXRD=yes CRYPTOLIB=yes SSLLIB=yes + make -f %{SOURCE1} includelist MODULE=$module done # ... and merge some of them @@ -2410,6 +2412,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Wed Feb 26 2014 Mattias Ellert - 5.34.17-1 +- Update to 5.34.17 + * Fri Feb 14 2014 Mattias Ellert - 5.34.15-1 - Update to 5.34.15 - Drop patch root-davix.patch From 56ba6949fd1e8a109e5147653910baf546527c69 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 27 Feb 2014 19:27:56 +0100 Subject: [PATCH 050/344] Update to 5.34.17 --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 9dc830c..44a4da9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bd618421e991e3694d5cfbf60abe82de root-5.34.15.tar.xz +1ebb47511ec93108686b81bc8dce8b1e root-5.34.17.tar.xz From 62af349cdfc7bf009a5b11d108094e30a002088f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 22 Mar 2014 12:29:07 +0100 Subject: [PATCH 051/344] 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(-) create mode 100644 root-gfal2.patch 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 #include @@ -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); ++ pat = FcPatternCreate (); ++ ++ 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); } -+ 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); -+ } -+ -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&file); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); 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 + } + ++// 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 - 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 - 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 From 5fbb82bc35535f5e174f9421f70ac2a75f99c3d4 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 4 May 2014 14:27:20 +0200 Subject: [PATCH 052/344] Rebuild for ruby 2.1 - Fix build failure on F21 (missing symbol in libProofx linking) --- root-proofx-link-iolib.patch | 31 +++++++++++++++++++++++++++++++ root.spec | 11 +++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 root-proofx-link-iolib.patch diff --git a/root-proofx-link-iolib.patch b/root-proofx-link-iolib.patch new file mode 100644 index 0000000..ca06b61 --- /dev/null +++ b/root-proofx-link-iolib.patch @@ -0,0 +1,31 @@ +diff -ur root-5.34.18.orig/config/Makefile.depend root-5.34.18/config/Makefile.depend +--- root-5.34.18.orig/config/Makefile.depend 2014-03-14 16:21:52.000000000 +0100 ++++ root-5.34.18/config/Makefile.depend 2014-05-04 07:52:08.144211940 +0200 +@@ -38,7 +38,7 @@ + $(THREADLIB) $(MATHCORELIB) + PROOFDRAWLIBDEPM = $(TREEPLAYERLIB) $(G3DLIB) $(GRAFLIB) $(GPADLIB) \ + $(PROOFPLAYERLIB) $(HISTLIB) $(TREELIB) $(PROOFLIB) +-PROOFXLIBDEPM = $(NETLIB) $(PROOFLIB) $(THREADLIB) ++PROOFXLIBDEPM = $(NETLIB) $(PROOFLIB) $(THREADLIB) $(IOLIB) + PROOFBENCHLIBDEPM = $(PROOFLIB) $(PROOFDRAWLIB) $(PROOFPLAYERLIB) \ + $(TREELIB) $(GRAFLIB) $(HISTLIB) $(GPADLIB) $(IOLIB) + SESSIONVIEWERLIBDEPM = $(PROOFLIB) $(GUILIB) $(HISTLIB) $(GPADLIB) \ +@@ -291,7 +291,8 @@ + lib/libGraf.lib lib/libGpad.lib \ + lib/libProofPlayer.lib lib/libHist.lib \ + lib/libTree.lib lib/libProof.lib +-PROOFXLIBEXTRA = lib/libNet.lib lib/libProof.lib lib/libThread.lib ++PROOFXLIBEXTRA = lib/libNet.lib lib/libProof.lib lib/libThread.lib \ ++ lib/libRIO.lib + PROOFBENCHLIBEXTRA = lib/libProof.lib lib/libProofDraw.lib \ + lib/libProofPlayer.lib lib/libTree.lib lib/libGraf.lib \ + lib/libHist.lib lib/libGpad.lib lib/libRIO.lib +@@ -448,7 +449,7 @@ + -lMathCore + PROOFDRAWLIBEXTRA = -Llib -lTreePlayer -lGraf3d -lGraf -lGpad \ + -lProofPlayer -lHist -lTree -lProof +-PROOFXLIBEXTRA = -Llib -lNet -lProof -lThread ++PROOFXLIBEXTRA = -Llib -lNet -lProof -lThread -lRIO + PROOFBENCHLIBEXTRA = -Llib -lProof -lProofDraw -lProofPlayer -lTree \ + -lGraf -lHist -lGpad -lRIO + SESSIONVIEWERLIBEXTRA = -Llib -lProof -lGui -lHist -lGpad -lGraf -lTree \ diff --git a/root.spec b/root.spec index a5dbd2b..b4c7d8d 100644 --- a/root.spec +++ b/root.spec @@ -34,7 +34,7 @@ Name: root Version: 5.34.18 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -80,6 +80,8 @@ Patch9: %{name}-dont-link-jvm.patch Patch10: %{name}-bsd-misc.patch # Use GFAL2 Patch11: %{name}-gfal2.patch +# Link failure on Fedora 21 +Patch12: %{name}-proofx-link-iolib.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 @@ -147,7 +149,7 @@ BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.2.8 BuildRequires: gfal2-devel BuildRequires: srm-ifce-devel -%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7 +%if %{?fedora}%{!?fedora:0} >= 20 BuildRequires: hadoop-devel %endif BuildRequires: emacs @@ -1174,6 +1176,7 @@ fi %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -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 \ @@ -2405,6 +2408,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sun May 04 2014 Mattias Ellert - 5.34.18-2 +- Rebuild for ruby 2.1 +- Fix build failure on F21 (missing symbol in libProofx linking) + * Sat Mar 22 2014 Mattias Ellert - 5.34.18-1 - Update to 5.34.18 - Build GFAL module using libgfal2 From f53e5b080264cff22271ecca36924a304d2e7d2c Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 21:45:58 -0500 Subject: [PATCH 053/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index b4c7d8d..9882b54 100644 --- a/root.spec +++ b/root.spec @@ -34,7 +34,7 @@ Name: root Version: 5.34.18 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2408,6 +2408,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sun Jun 08 2014 Fedora Release Engineering - 5.34.18-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Sun May 04 2014 Mattias Ellert - 5.34.18-2 - Rebuild for ruby 2.1 - Fix build failure on F21 (missing symbol in libProofx linking) From a8c3d7f8d4c51656df7704bfc9d750e6d171d5be Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 30 Jun 2014 17:00:24 +0200 Subject: [PATCH 054/344] Add Requires on root-tree-player to root-gui-ged --- root.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 9882b54..2701fa1 100644 --- a/root.spec +++ b/root.spec @@ -34,7 +34,7 @@ Name: root Version: 5.34.18 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -563,6 +563,7 @@ various kinds of data. %package gui-ged Summary: GUI element for editing various ROOT objects Group: Applications/Engineering +Requires: %{name}-tree-player = %{version}-%{release} %description gui-ged This package contains a library to show a pop-up window for editing @@ -2408,6 +2409,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Jun 30 2014 Mattias Ellert - 5.34.18-4 +- Add Requires on root-tree-player to root-gui-ged + * Sun Jun 08 2014 Fedora Release Engineering - 5.34.18-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From c2c5b53558ae994ccc877714936e2422a8f4620b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 18 Jul 2014 14:07:44 +0200 Subject: [PATCH 055/344] Update to 5.34.19 - Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) - New sub-package: root-net-http - Drop patches root-thtml-revert.patch, root-gfal2.patch and root-proofx-link-iolib.patch --- root-gfal2.patch | 72 --------------------------- root-proofx-link-iolib.patch | 31 ------------ root-thtml-revert.patch | 18 ------- root.spec | 94 ++++++++++++++++++++++++++++-------- sources | 2 +- 5 files changed, 75 insertions(+), 142 deletions(-) delete mode 100644 root-gfal2.patch delete mode 100644 root-proofx-link-iolib.patch delete mode 100644 root-thtml-revert.patch diff --git a/root-gfal2.patch b/root-gfal2.patch deleted file mode 100644 index cc1374f..0000000 --- a/root-gfal2.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- 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 - } - -+// 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-proofx-link-iolib.patch b/root-proofx-link-iolib.patch deleted file mode 100644 index ca06b61..0000000 --- a/root-proofx-link-iolib.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur root-5.34.18.orig/config/Makefile.depend root-5.34.18/config/Makefile.depend ---- root-5.34.18.orig/config/Makefile.depend 2014-03-14 16:21:52.000000000 +0100 -+++ root-5.34.18/config/Makefile.depend 2014-05-04 07:52:08.144211940 +0200 -@@ -38,7 +38,7 @@ - $(THREADLIB) $(MATHCORELIB) - PROOFDRAWLIBDEPM = $(TREEPLAYERLIB) $(G3DLIB) $(GRAFLIB) $(GPADLIB) \ - $(PROOFPLAYERLIB) $(HISTLIB) $(TREELIB) $(PROOFLIB) --PROOFXLIBDEPM = $(NETLIB) $(PROOFLIB) $(THREADLIB) -+PROOFXLIBDEPM = $(NETLIB) $(PROOFLIB) $(THREADLIB) $(IOLIB) - PROOFBENCHLIBDEPM = $(PROOFLIB) $(PROOFDRAWLIB) $(PROOFPLAYERLIB) \ - $(TREELIB) $(GRAFLIB) $(HISTLIB) $(GPADLIB) $(IOLIB) - SESSIONVIEWERLIBDEPM = $(PROOFLIB) $(GUILIB) $(HISTLIB) $(GPADLIB) \ -@@ -291,7 +291,8 @@ - lib/libGraf.lib lib/libGpad.lib \ - lib/libProofPlayer.lib lib/libHist.lib \ - lib/libTree.lib lib/libProof.lib --PROOFXLIBEXTRA = lib/libNet.lib lib/libProof.lib lib/libThread.lib -+PROOFXLIBEXTRA = lib/libNet.lib lib/libProof.lib lib/libThread.lib \ -+ lib/libRIO.lib - PROOFBENCHLIBEXTRA = lib/libProof.lib lib/libProofDraw.lib \ - lib/libProofPlayer.lib lib/libTree.lib lib/libGraf.lib \ - lib/libHist.lib lib/libGpad.lib lib/libRIO.lib -@@ -448,7 +449,7 @@ - -lMathCore - PROOFDRAWLIBEXTRA = -Llib -lTreePlayer -lGraf3d -lGraf -lGpad \ - -lProofPlayer -lHist -lTree -lProof --PROOFXLIBEXTRA = -Llib -lNet -lProof -lThread -+PROOFXLIBEXTRA = -Llib -lNet -lProof -lThread -lRIO - PROOFBENCHLIBEXTRA = -Llib -lProof -lProofDraw -lProofPlayer -lTree \ - -lGraf -lHist -lGpad -lRIO - SESSIONVIEWERLIBEXTRA = -Llib -lProof -lGui -lHist -lGpad -lGraf -lTree \ diff --git a/root-thtml-revert.patch b/root-thtml-revert.patch deleted file mode 100644 index a1d1960..0000000 --- a/root-thtml-revert.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- v5-34-00-patches/html/src/THtml.cxx 2012/08/29 09:33:39 45728 -+++ v5-34-00-patches/html/src/THtml.cxx 2012/05/08 15:21:21 44178 -@@ -310,13 +310,11 @@ - if (!filename.EndsWith(fsentry->GetName())) - continue; - fsentry->GetFullName(filesysname, kTRUE); // get the short version -- filename = filesysname; - if (!filename.EndsWith(filesysname)) { -- // It's something - let's see whether we find something better -- // else leave it as plan B. This helps finding Reflex sources. -- //filesysname = ""; -+ filesysname = ""; - continue; - } -+ filename = filesysname; - fsentry->GetFullName(filesysname, kFALSE); // get the long version - if (fse) *fse = fsentry; - break; diff --git a/root.spec b/root.spec index 2701fa1..15669a3 100644 --- a/root.spec +++ b/root.spec @@ -29,12 +29,19 @@ %global emacs_lispdir %(pkg-config emacs --variable sitepkglispdir) %endif +# Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) +%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7 +%global xrootd 0 +%else +%global xrootd 1 +%endif + %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.18 +Version: 5.34.19 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -68,20 +75,14 @@ Patch3: %{name}-xrootd.patch Patch4: %{name}-meta.patch # Use TLatex in doc generation: Patch5: %{name}-doc-latex.patch -# Revert THtml change: -Patch6: %{name}-thtml-revert.patch # Don't save in all image formats: -Patch7: %{name}-no-extra-formats.patch +Patch6: %{name}-no-extra-formats.patch # Fixes for HDFS module -Patch8: %{name}-hdfs.patch +Patch7: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) -Patch9: %{name}-dont-link-jvm.patch +Patch8: %{name}-dont-link-jvm.patch # Avoid deprecated __USE_BSD -Patch10: %{name}-bsd-misc.patch -# Use GFAL2 -Patch11: %{name}-gfal2.patch -# Link failure on Fedora 21 -Patch12: %{name}-proofx-link-iolib.patch +Patch9: %{name}-bsd-misc.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 @@ -97,6 +98,7 @@ BuildRequires: libXft-devel BuildRequires: libXext-devel BuildRequires: fontconfig-devel BuildRequires: freetype-devel +BuildRequires: fcgi-devel BuildRequires: ftgl-devel BuildRequires: glew-devel BuildRequires: gl2ps-devel @@ -143,8 +145,10 @@ BuildRequires: libtool-ltdl-devel BuildRequires: desktop-file-utils BuildRequires: dcap-devel BuildRequires: dpm-devel +%if %{xrootd} BuildRequires: xrootd-client-devel >= 1:3.3.5 BuildRequires: xrootd-private-devel >= 1:3.3.5 +%endif BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.2.8 BuildRequires: gfal2-devel @@ -979,6 +983,15 @@ Group: Applications/Engineering This package contains the LDAP extension for ROOT. This gives you access to LDAP directories via ROOT. +%package net-http +Summary: HTTP server extension for ROOT +Group: Applications/Engineering + +%description net-http +This package contains the HTTP server extension for ROOT. It provides +an http interface to arbitrary ROOT applications. + +%if %{xrootd} %package netx Summary: NetX extension for ROOT Group: Applications/Engineering @@ -987,6 +1000,7 @@ Group: Applications/Engineering This package contains the NetX extension for ROOT, i.e. a client for the xrootd server. Both the old (NetX) and the new (NetXNG) version are provided. +%endif %package proof Summary: PROOF extension for ROOT @@ -1020,6 +1034,7 @@ Group: Applications/Engineering This package contains a library for browsing an interactive PROOF session in ROOT. +%if %{xrootd} %package xproof Summary: XPROOF extension for ROOT Group: Applications/Engineering @@ -1027,6 +1042,7 @@ Group: Applications/Engineering %description xproof This package contains the xproof extension for ROOT. This provides a client to be used in a PROOF environment. +%endif %package roofit Summary: ROOT extension for modeling expected distributions @@ -1175,9 +1191,6 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -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 \ @@ -1225,8 +1238,6 @@ rm graf3d/gl/src/gl2ps.cxx graf3d/gl/inc/gl2ps.h sed 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' -i graf3d/gl/Module.mk # * unuran rm -rf math/unuran/src/*.tar.gz -# * xrootd -rm -rf net/xrootd/src # Remove unsupported man page macros sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* @@ -1298,6 +1309,7 @@ unset QTINC %else --disable-hdfs \ %endif + --enable-http \ --enable-krb5 \ --enable-ldap \ --enable-mathmore \ @@ -1338,9 +1350,13 @@ unset QTINC --enable-x11 \ --enable-xft \ --enable-xml \ +%if %{xrootd} --enable-xrootd \ --with-xrootd-incdir=%{_includedir}/xrootd \ --with-xrootd-libdir=%{_libdir} \ +%else + --disable-xrootd \ +%endif %ifarch %{ix86} x86_64 --enable-cintex \ %else @@ -1363,6 +1379,7 @@ unset QTINC --disable-sapdb \ --disable-srp \ --disable-vc \ + --disable-werror \ --fail-on-missing make OPTFLAGS="%{optflags}" \ @@ -1487,6 +1504,9 @@ rm ${RPM_BUILD_ROOT}%{_mandir}/man1/makecint.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/proofserva.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/roota.1 rm ${RPM_BUILD_ROOT}%{_mandir}/man1/setup-pq2.1 +%if %{xrootd} == 0 +rm ${RPM_BUILD_ROOT}%{_mandir}/man1/xproofd.1 +%endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.cw rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.pri @@ -1538,6 +1558,14 @@ rm TVirtualX/P030_TGWin32.C rm TVirtualX/P040_TGQt.C %endif rm TVirtualX/P050_TGQuartz.C +%if %{xrootd} == 0 +rm TFile/P100_TXNetFile.C +rm TFileStager/P010_TXNetFileStager.C +rm TProofMgr/P010_TXProofMgr.C +rm TProofServ/P010_TXProofServ.C +rm TSlave/P010_TXSlave.C +rm TSystem/P040_TXNetSystem.C +%endif rmdir TAFS rmdir TDataProgressDialog rmdir TGrid @@ -1821,14 +1849,20 @@ fi %postun net-krb5 -p /sbin/ldconfig %post net-ldap -p /sbin/ldconfig %postun net-ldap -p /sbin/ldconfig +%post net-http -p /sbin/ldconfig +%postun net-http -p /sbin/ldconfig +%if %{xrootd} %post netx -p /sbin/ldconfig %postun netx -p /sbin/ldconfig +%endif %post proof -p /sbin/ldconfig %postun proof -p /sbin/ldconfig %post proof-sessionviewer -p /sbin/ldconfig %postun proof-sessionviewer -p /sbin/ldconfig +%if %{xrootd} %post xproof -p /sbin/ldconfig %postun xproof -p /sbin/ldconfig +%endif %post roofit -p /sbin/ldconfig %postun roofit -p /sbin/ldconfig %post sql-mysql -p /sbin/ldconfig @@ -1950,15 +1984,19 @@ fi %files proofd %{_bindir}/proofd -%{_bindir}/proofexecv %{_bindir}/proofserv %{_bindir}/proofserv.exe -%{_bindir}/xproofd %{_bindir}/xpdtest +%if %{xrootd} +%{_bindir}/proofexecv +%{_bindir}/xproofd +%endif %{_mandir}/man1/proofd.1* %{_mandir}/man1/proofserv.1* -%{_mandir}/man1/xproofd.1* %{_mandir}/man1/xpdtest.1* +%if %{xrootd} +%{_mandir}/man1/xproofd.1* +%endif %{_initrddir}/proofd %files rootd @@ -2313,12 +2351,19 @@ fi %files net-ldap -f includelist-net-ldap %{_libdir}/%{name}/libRLDAP.* +%files net-http -f includelist-net-http +%{_libdir}/%{name}/libRHTTP.* +%{_datadir}/%{name}/http +%doc net/http/README.txt net/http/civetweb/*.md + +%if %{xrootd} %files netx -f includelist-netx %{_libdir}/%{name}/libNetx.* %{_libdir}/%{name}/libNetxNG.* %{_datadir}/%{name}/plugins/TFile/P100_TXNetFile.C %{_datadir}/%{name}/plugins/TFileStager/P010_TXNetFileStager.C %{_datadir}/%{name}/plugins/TSystem/P040_TXNetSystem.C +%endif %files proof -f includelist-proof-proof %{_libdir}/%{name}/libProof.* @@ -2354,12 +2399,14 @@ fi %{_datadir}/%{name}/plugins/TProofProgressLog/P010_TProofProgressLog.C %{_datadir}/%{name}/plugins/TSessionViewer/P010_TSessionViewer.C +%if %{xrootd} %files xproof -f includelist-proof-proofx %{_libdir}/%{name}/libProofx.* %{_libdir}/%{name}/libXrdProofd.* %{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C %{_datadir}/%{name}/plugins/TProofServ/P010_TXProofServ.C %{_datadir}/%{name}/plugins/TSlave/P010_TXSlave.C +%endif %files roofit -f includelist-roofit %{_libdir}/%{name}/libRooFit.* @@ -2409,6 +2456,13 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Jul 14 2014 Mattias Ellert - 5.34.19-1 +- Update to 5.34.19 +- Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) +- New sub-package: root-net-http +- Drop patches root-thtml-revert.patch, root-gfal2.patch and + root-proofx-link-iolib.patch + * Mon Jun 30 2014 Mattias Ellert - 5.34.18-4 - Add Requires on root-tree-player to root-gui-ged diff --git a/sources b/sources index 500a62f..bcc042a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -56c3603bfc416382f20b3b65dcd41b1e root-5.34.18.tar.xz +3c68587354619c0a2d3bb9f77381b1b9 root-5.34.19.tar.xz From 4abba64da95bc764407d96397731332298d27636 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 18 Jul 2014 22:21:35 +0200 Subject: [PATCH 056/344] Don't use new gcc options for old gcc versions --- root-gccopt.patch | 37 +++++++++++++++++++++++++++++++++++++ root.spec | 3 +++ 2 files changed, 40 insertions(+) create mode 100644 root-gccopt.patch diff --git a/root-gccopt.patch b/root-gccopt.patch new file mode 100644 index 0000000..5fb3cb6 --- /dev/null +++ b/root-gccopt.patch @@ -0,0 +1,37 @@ +diff -ur root-5.34.19.orig/bindings/pyroot/Module.mk root-5.34.19/bindings/pyroot/Module.mk +--- root-5.34.19.orig/bindings/pyroot/Module.mk 2014-07-09 16:50:16.000000000 +0200 ++++ root-5.34.19/bindings/pyroot/Module.mk 2014-07-18 16:26:11.682503438 +0200 +@@ -123,14 +123,15 @@ + $(PYTHON64O): CFLAGS += $(PYTHONINCDIR:%=-I%) + ifeq ($(GCC_MAJOR),4) + $(PYROOTO): CXXFLAGS += -fno-strict-aliasing +-endif +-ifneq ($(CLANG_MAJOR)$(GCC_MAJOR),) +-# Building with clang or GCC ++ifeq ($(subst $(GCC_MINOR),,0 1),0 1) ++# GCC >= 4.2 + $(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-error=format + endif ++endif + + ifneq ($(CLANG_MAJOR),) + # Building with clang + $(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-ignored-attributes ++$(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-error=format + endif + +diff -ur root-5.34.19.orig/io/dcache/Module.mk root-5.34.19/io/dcache/Module.mk +--- root-5.34.19.orig/io/dcache/Module.mk 2014-07-09 16:50:16.000000000 +0200 ++++ root-5.34.19/io/dcache/Module.mk 2014-07-18 14:41:34.700841953 +0200 +@@ -68,7 +68,10 @@ + + ##### extra rules ###### + $(DCACHEO) $(DCACHEDO): CXXFLAGS := $(filter-out -Wall,$(CXXFLAGS)) $(DCAPINCDIR:%=-I%) +-ifneq ($(CXX:g++=),$(CXX)) ++ifeq ($(GCC_MAJOR),4) ++ifeq ($(subst $(GCC_MINOR),,0 1 2),0 1 2) ++# GCC >= 4.3 + $(DCACHEO) $(DCACHEDO): CXXFLAGS += -Wno-ignored-qualifiers + endif ++endif + diff --git a/root.spec b/root.spec index 15669a3..69dc5bb 100644 --- a/root.spec +++ b/root.spec @@ -83,6 +83,8 @@ Patch7: %{name}-hdfs.patch Patch8: %{name}-dont-link-jvm.patch # Avoid deprecated __USE_BSD Patch9: %{name}-bsd-misc.patch +# Don't use new gcc options for old gcc versions +Patch10: %{name}-gccopt.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 @@ -1191,6 +1193,7 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -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 \ From 63400c04124fa020c719111f21b50389b0c83191 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 Aug 2014 00:10:28 +0000 Subject: [PATCH 057/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 69dc5bb..20bf3ae 100644 --- a/root.spec +++ b/root.spec @@ -41,7 +41,7 @@ Name: root Version: 5.34.19 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2459,6 +2459,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Mon Aug 18 2014 Fedora Release Engineering - 5.34.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Mon Jul 14 2014 Mattias Ellert - 5.34.19-1 - Update to 5.34.19 - Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) From 57e8c20a997f50a76be060cc4284aa14114f0b92 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 20 Aug 2014 05:24:01 +0200 Subject: [PATCH 058/344] Update to 5.34.20 - Re-enable xrootd support for F21+ and EPEL7 (now ported to xrootd 4) - Do not depend on wine's fonts - Drop patch root-gccopt.patch --- .gitignore | 1 + root-doc-latex.patch | 38 +-- root-fontconfig.patch | 756 ++++++++++++++++++++---------------------- root-gccopt.patch | 37 --- root-usa.patch | 13 + root.spec | 88 ++--- sources | 3 +- 7 files changed, 437 insertions(+), 499 deletions(-) delete mode 100644 root-gccopt.patch create mode 100644 root-usa.patch diff --git a/.gitignore b/.gitignore index 5c35620..9ff0650 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /*.tar.gz /*.tar.xz +/usa.root diff --git a/root-doc-latex.patch b/root-doc-latex.patch index c3150a0..c66850f 100644 --- a/root-doc-latex.patch +++ b/root-doc-latex.patch @@ -1,25 +1,25 @@ -diff -ur root-5.34.09.orig/hist/hist/src/TEfficiency.cxx root-5.34.09/hist/hist/src/TEfficiency.cxx ---- root-5.34.09.orig/hist/hist/src/TEfficiency.cxx 2013-06-26 17:05:06.000000000 +0200 -+++ root-5.34.09/hist/hist/src/TEfficiency.cxx 2013-06-27 07:06:03.769693346 +0200 -@@ -2498,7 +2498,7 @@ +diff -ur root-5.34.20.orig/hist/hist/src/TEfficiency.cxx root-5.34.20/hist/hist/src/TEfficiency.cxx +--- root-5.34.20.orig/hist/hist/src/TEfficiency.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/hist/hist/src/TEfficiency.cxx 2014-08-16 22:50:04.139089920 +0200 +@@ -2668,7 +2668,7 @@ //the same process. // //The new weight is set according to: -- //Begin_Latex #frac{1}{w_{new}} = #sum_{i} \frac{1}{w_{i}}End_Latex -+ //Begin_Latex #frac{1}{w_{new}} = #sum_{i} #frac{1}{w_{i}}End_Latex - - if(!pList->IsEmpty()) { +- //Begin_Latex #frac{1}{w_{new}} = #sum_{i} \frac{1}{w_{i}}End_Latex ++ //Begin_Latex #frac{1}{w_{new}} = #sum_{i} #frac{1}{w_{i}}End_Latex + + if(!pList->IsEmpty()) { TIter next(pList); -@@ -2558,7 +2558,7 @@ +@@ -2728,7 +2728,7 @@ //calculates a new weight: //current weight of this TEfficiency object = Begin_Latex w_{1} End_Latex //weight of rhs = Begin_Latex w_{2} End_Latex - //Begin_Latex w_{new} = \frac{w_{1} \times w_{2}}{w_{1} + w_{2}}End_Latex + //Begin_Latex w_{new} = #frac{w_{1} #times w_{2}}{w_{1} + w_{2}}End_Latex - - if (fTotalHistogram == 0 && fPassedHistogram == 0) { -@@ -2971,11 +2971,11 @@ + + if (fTotalHistogram == 0 && fPassedHistogram == 0) { +@@ -3050,11 +3050,11 @@ //______________________________________________________________________________ void TEfficiency::SetBetaAlpha(Double_t alpha) { @@ -33,10 +33,10 @@ diff -ur root-5.34.09.orig/hist/hist/src/TEfficiency.cxx root-5.34.09/hist/hist/ //End_Latex // //Note: - both shape parameters have to be positive (i.e. > 0) -@@ -2989,11 +2989,11 @@ +@@ -3068,11 +3068,11 @@ //______________________________________________________________________________ void TEfficiency::SetBetaBeta(Double_t beta) - { + { - //sets the shape parameter Begin_Latex \beta End_Latex + //sets the shape parameter Begin_Latex #beta End_Latex // @@ -47,16 +47,14 @@ diff -ur root-5.34.09.orig/hist/hist/src/TEfficiency.cxx root-5.34.09/hist/hist/ //End_Latex // //Note: - both shape parameters have to be positive (i.e. > 0) -@@ -3007,12 +3007,12 @@ +@@ -3086,12 +3086,12 @@ //______________________________________________________________________________ void TEfficiency::SetBetaBinParameters(Int_t bin, Double_t alpha, Double_t beta) { - //sets different shape parameter Begin_Latex \alpha and \beta End_Latex -- // for the prior distribution for each bin. By default the global parameter are used if they are not set -- // for the specific bin -+ //sets different shape parameter Begin_Latex #alpha and #beta End_Latex -+ //for the prior distribution for each bin. By default the global parameter are used if they are not set -+ //for the specific bin ++ //sets different shape parameter Begin_Latex #alpha and #beta End_Latex + // for the prior distribution for each bin. By default the global parameter are used if they are not set + // for the specific bin //The prior probability of the efficiency is given by the beta distribution: //Begin_Latex - // f(\varepsilon;\alpha;\beta) = \frac{1}{B(\alpha,\beta)} \varepsilon^{\alpha-1} (1 - \varepsilon)^{\beta-1} diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 4a5621f..620dffa 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,6 +1,6 @@ -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 +diff -ur root-5.34.20.orig/core/base/src/TApplication.cxx root-5.34.20/core/base/src/TApplication.cxx +--- root-5.34.20.orig/core/base/src/TApplication.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/core/base/src/TApplication.cxx 2014-08-16 19:24:53.337132201 +0200 @@ -265,22 +265,11 @@ LoadGraphicsLibs(); @@ -34,9 +34,9 @@ diff -ur root-5.34.18.orig/core/base/src/TApplication.cxx root-5.34.18/core/base // Create WM dependent application environment if (fAppImp) -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 +diff -ur root-5.34.20.orig/graf2d/graf/inc/TTF.h root-5.34.20/graf2d/graf/inc/TTF.h +--- root-5.34.20.orig/graf2d/graf/inc/TTF.h 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf2d/graf/inc/TTF.h 2014-08-16 19:24:53.338132209 +0200 @@ -70,9 +70,8 @@ static FT_BBox fgCBox; // string control box static FT_CharMap fgCharMap[kTTMaxFonts]; // font character map @@ -48,9 +48,9 @@ diff -ur root-5.34.18.orig/graf2d/graf/inc/TTF.h root-5.34.18/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.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 +diff -ur root-5.34.20.orig/graf2d/graf/Module.mk root-5.34.20/graf2d/graf/Module.mk +--- root-5.34.20.orig/graf2d/graf/Module.mk 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf2d/graf/Module.mk 2014-08-16 19:24:53.338132209 +0200 @@ -46,7 +46,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ @@ -60,9 +60,9 @@ diff -ur root-5.34.18.orig/graf2d/graf/Module.mk root-5.34.18/graf2d/graf/Module $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) $(MAKEDIR) -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 +diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/TTF.cxx +--- root-5.34.20.orig/graf2d/graf/src/TTF.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf2d/graf/src/TTF.cxx 2014-08-16 20:48:07.427205257 +0200 @@ -17,15 +17,13 @@ // // ////////////////////////////////////////////////////////////////////////// @@ -299,10 +299,11 @@ diff -ur root-5.34.18.orig/graf2d/graf/src/TTF.cxx root-5.34.18/graf2d/graf/src/ - "$(ROOTSYS)/fonts" -# endif - ); + +- char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); + char *ttfont = NULL; + int ttindex = 0; -- char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission); + if (fontid >= 16 && fontid <= 28) { + // Use the texlive-stix fonts if they exist + // Texlive-stix not packaged correctly - can not be found through fontconfig @@ -350,7 +351,6 @@ diff -ur root-5.34.18.orig/graf2d/graf/src/TTF.cxx root-5.34.18/graf2d/graf/src/ + break; + } + } - if (!ttfont) { - Error("TTF::SetTextFont", "font file %s not found in path", fontname); - if (fgFontCount) { @@ -616,38 +616,38 @@ diff -ur root-5.34.18.orig/graf2d/graf/src/TTF.cxx root-5.34.18/graf2d/graf/src/ - // Table of Microsoft and (for non-MSFT operating systems) backup - // FreeFont TTF fonts. - static const char *fonttable[][2] = { -- { "Root.TTFont.0", "FreeSansBold.otf" }, -- { "Root.TTFont.1", "FreeSerifItalic.otf" }, -- { "Root.TTFont.2", "FreeSerifBold.otf" }, -- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, -- { "Root.TTFont.4", "FreeSans.otf" }, -- { "Root.TTFont.5", "FreeSansOblique.otf" }, -- { "Root.TTFont.6", "FreeSansBold.otf" }, -- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, -- { "Root.TTFont.8", "FreeMono.otf" }, -- { "Root.TTFont.9", "FreeMonoOblique.otf" }, -- { "Root.TTFont.10", "FreeMonoBold.otf" }, -- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, -- { "Root.TTFont.12", "symbol.ttf" }, -- { "Root.TTFont.13", "FreeSerif.otf" }, -- { "Root.TTFont.14", "wingding.ttf" }, -- { "Root.TTFont.15", "symbol.ttf" }, -- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, -- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, -- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, -- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, -- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, -- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, -- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, -- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, -- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, -- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, -- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, -- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, -- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, -- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKGothic", "DroidSansFallback.ttf" } +- { "Root.TTFont.0", "FreeSansBold.otf" }, +- { "Root.TTFont.1", "FreeSerifItalic.otf" }, +- { "Root.TTFont.2", "FreeSerifBold.otf" }, +- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, +- { "Root.TTFont.4", "FreeSans.otf" }, +- { "Root.TTFont.5", "FreeSansOblique.otf" }, +- { "Root.TTFont.6", "FreeSansBold.otf" }, +- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, +- { "Root.TTFont.8", "FreeMono.otf" }, +- { "Root.TTFont.9", "FreeMonoOblique.otf" }, +- { "Root.TTFont.10", "FreeMonoBold.otf" }, +- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, +- { "Root.TTFont.12", "symbol.ttf" }, +- { "Root.TTFont.13", "FreeSerif.otf" }, +- { "Root.TTFont.14", "wingding.ttf" }, +- { "Root.TTFont.15", "symbol.ttf" }, +- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, +- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, +- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, +- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, +- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, +- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, +- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, +- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, +- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, +- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, +- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, +- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, +- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, +- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKGothic", "DroidSansFallback.ttf" } - }; - - static int fontset = -1; @@ -685,9 +685,9 @@ diff -ur root-5.34.18.orig/graf2d/graf/src/TTF.cxx root-5.34.18/graf2d/graf/src/ } //______________________________________________________________________________ -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 +diff -ur root-5.34.20.orig/graf2d/postscript/Module.mk root-5.34.20/graf2d/postscript/Module.mk +--- root-5.34.20.orig/graf2d/postscript/Module.mk 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf2d/postscript/Module.mk 2014-08-16 19:24:53.363132437 +0200 @@ -50,7 +50,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \ @@ -697,9 +697,9 @@ diff -ur root-5.34.18.orig/graf2d/postscript/Module.mk root-5.34.18/graf2d/posts $(POSTSCRIPTDS): $(POSTSCRIPTH) $(POSTSCRIPTL) $(ROOTCINTTMPDEP) $(MAKEDIR) -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 +diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/graf2d/postscript/src/TPostScript.cxx +--- root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf2d/postscript/src/TPostScript.cxx 2014-08-16 20:30:03.271041920 +0200 @@ -238,6 +238,7 @@ #include #include @@ -708,43 +708,43 @@ diff -ur root-5.34.18.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.18/gr #include "Riostream.h" #include "Byteswap.h" -@@ -1511,78 +1512,258 @@ +@@ -1511,63 +1512,244 @@ { // Embed font in PS file. - static const char *fonttable[32][2] = { -- { "Root.TTFont.0", "FreeSansBold.otf" }, -- { "Root.TTFont.1", "FreeSerifItalic.otf" }, -- { "Root.TTFont.2", "FreeSerifBold.otf" }, -- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, -- { "Root.TTFont.4", "FreeSans.otf" }, -- { "Root.TTFont.5", "FreeSansOblique.otf" }, -- { "Root.TTFont.6", "FreeSansBold.otf" }, -- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, -- { "Root.TTFont.8", "FreeMono.otf" }, -- { "Root.TTFont.9", "FreeMonoOblique.otf" }, -- { "Root.TTFont.10", "FreeMonoBold.otf" }, -- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, -- { "Root.TTFont.12", "symbol.ttf" }, -- { "Root.TTFont.13", "FreeSerif.otf" }, -- { "Root.TTFont.14", "wingding.ttf" }, -- { "Root.TTFont.15", "symbol.ttf" }, -- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, -- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, -- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, -- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, -- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, -- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, -- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, -- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, -- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, -- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, -- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, -- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, -- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, -- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, -- { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" } +- { "Root.TTFont.0", "FreeSansBold.otf" }, +- { "Root.TTFont.1", "FreeSerifItalic.otf" }, +- { "Root.TTFont.2", "FreeSerifBold.otf" }, +- { "Root.TTFont.3", "FreeSerifBoldItalic.otf" }, +- { "Root.TTFont.4", "FreeSans.otf" }, +- { "Root.TTFont.5", "FreeSansOblique.otf" }, +- { "Root.TTFont.6", "FreeSansBold.otf" }, +- { "Root.TTFont.7", "FreeSansBoldOblique.otf" }, +- { "Root.TTFont.8", "FreeMono.otf" }, +- { "Root.TTFont.9", "FreeMonoOblique.otf" }, +- { "Root.TTFont.10", "FreeMonoBold.otf" }, +- { "Root.TTFont.11", "FreeMonoBoldOblique.otf" }, +- { "Root.TTFont.12", "symbol.ttf" }, +- { "Root.TTFont.13", "FreeSerif.otf" }, +- { "Root.TTFont.14", "wingding.ttf" }, +- { "Root.TTFont.15", "symbol.ttf" }, +- { "Root.TTFont.STIXGen", "STIXGeneral.otf" }, +- { "Root.TTFont.STIXGenIt", "STIXGeneralItalic.otf" }, +- { "Root.TTFont.STIXGenBd", "STIXGeneralBol.otf" }, +- { "Root.TTFont.STIXGenBdIt", "STIXGeneralBolIta.otf" }, +- { "Root.TTFont.STIXSiz1Sym", "STIXSiz1Sym.otf" }, +- { "Root.TTFont.STIXSiz1SymBd", "STIXSiz1SymBol.otf" }, +- { "Root.TTFont.STIXSiz2Sym", "STIXSiz2Sym.otf" }, +- { "Root.TTFont.STIXSiz2SymBd", "STIXSiz2SymBol.otf" }, +- { "Root.TTFont.STIXSiz3Sym", "STIXSiz3Sym.otf" }, +- { "Root.TTFont.STIXSiz3SymBd", "STIXSiz3SymBol.otf" }, +- { "Root.TTFont.STIXSiz4Sym", "STIXSiz4Sym.otf" }, +- { "Root.TTFont.STIXSiz4SymBd", "STIXSiz4SymBol.otf" }, +- { "Root.TTFont.STIXSiz5Sym", "STIXSiz5Sym.otf" }, +- { "Root.TTFont.ME", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKMing", "DroidSansFallback.ttf" }, +- { "Root.TTFont.CJKCothic", "DroidSansFallback.ttf" } - }; - PrintStr("%%IncludeResource: ProcSet (FontSetInit)@"); @@ -752,308 +752,288 @@ diff -ur root-5.34.18.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.18/gr - // try to load font (font must be in Root.TTFontPath resource) - const char *ttpath = gEnv->GetValue("Root.TTFontPath", -#ifdef TTFFONTDIR -- TTFFONTDIR +- TTFFONTDIR -#else // TTFFONTDIR -- "$(ROOTSYS)/fonts" +- "$(ROOTSYS)/fonts" -#endif // TTFFONTDIR -- ); +- ); - for (Int_t fontid = 1; fontid < 30; fontid++) { -- if (fontid != 15) { -- const char *filename = gEnv->GetValue( -- fonttable[fontid][0], fonttable[fontid][1]); -- char *ttfont = gSystem->Which(ttpath, filename, -- kReadPermission); -- -- if(!ttfont) { -- Error("TPostScript::FontEmbed", -- "font %d (filename `%s') not found in path", -- fontid, filename); -- } else { -- if (FontEmbedType2(ttfont)) { -- // nothing -- } else if(FontEmbedType1(ttfont)) { -- // nothing -- } else if(FontEmbedType42(ttfont)) { -- // nothing -- } else { -- Error("TPostScript::FontEmbed", -- "failed to embed font %d (filename `%s')", -- fontid, filename); -- } -- delete [] ttfont; -- } -- } -+ if (fontid != 15) { + if (fontid != 15) { +- const char *filename = gEnv->GetValue( +- fonttable[fontid][0], fonttable[fontid][1]); +- char *ttfont = gSystem->Which(ttpath, filename, +- kReadPermission); + -+ char *ttfont = NULL; ++ char *ttfont = NULL; + -+ if (fontid >= 16 && fontid <= 28) { -+ // 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 (fontid) { -+ case 16: -+ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); -+ break; -+ case 17: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); -+ break; -+ case 18: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); -+ break; -+ case 19: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); -+ break; -+ case 20: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); -+ break; -+ case 21: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); -+ break; -+ case 22: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); -+ break; -+ case 23: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); -+ break; -+ case 24: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); -+ break; -+ case 25: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); -+ break; -+ case 26: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); -+ break; -+ case 27: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); -+ break; -+ case 28: -+ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); -+ break; -+ } -+ } ++ if (fontid >= 16 && fontid <= 28) { ++ // 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 (fontid) { ++ case 16: ++ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); ++ break; ++ case 17: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); ++ break; ++ case 18: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); ++ break; ++ case 19: ++ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); ++ break; ++ case 20: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); ++ break; ++ case 21: ++ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); ++ break; ++ case 22: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); ++ break; ++ case 23: ++ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); ++ break; ++ case 24: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); ++ break; ++ case 25: ++ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); ++ break; ++ case 26: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); ++ break; ++ case 27: ++ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); ++ break; ++ case 28: ++ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); ++ break; ++ } ++ } + -+ if (!ttfont) { -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; ++ if (!ttfont) { ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; + -+ pat = FcPatternCreate (); ++ pat = FcPatternCreate (); + -+ 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; -+ 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; -+ 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; -+ case 4: -+ 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; -+ case 6: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 12: -+ 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; -+ case 14: -+ 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; -+ case 17: -+ 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; -+ case 19: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 29: -+ 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; -+ } ++ 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; ++ 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; ++ 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; ++ case 4: ++ 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; ++ case 6: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 12: ++ 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; ++ case 14: ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ 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; ++ case 29: ++ 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; ++ } + -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ ttfont = StrDup(ttfnt); -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); -+ } -+ -+ if(!ttfont) { -+ Error("TPostScript::FontEmbed", "font %d not found in path", -+ fontid); -+ } else { -+ if (FontEmbedType2(ttfont)) { -+ // nothing -+ } else if(FontEmbedType1(ttfont)) { -+ // nothing -+ } else if(FontEmbedType42(ttfont)) { -+ // nothing -+ } else { -+ Error("TPostScript::FontEmbed", "failed to embed font %d)", -+ fontid); -+ } -+ delete [] ttfont; -+ } -+ } - } - PrintStr("%%IncludeResource: font Times-Roman@"); - PrintStr("%%IncludeResource: font Times-Italic@"); ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); ++ ttfont = StrDup(ttfnt); ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); ++ if (set) FcCharSetDestroy (set); ++ } + + if(!ttfont) { +- Error("TPostScript::FontEmbed", +- "font %d (filename `%s') not found in path", +- fontid, filename); ++ Error("TPostScript::FontEmbed", "font %d not found in path", ++ fontid); + } else { + if (FontEmbedType2(ttfont)) { + // nothing +@@ -1576,9 +1758,8 @@ + } else if(FontEmbedType42(ttfont)) { + // nothing + } else { +- Error("TPostScript::FontEmbed", +- "failed to embed font %d (filename `%s')", +- fontid, filename); ++ Error("TPostScript::FontEmbed", "failed to embed font %d)", ++ fontid); + } + delete [] ttfont; + } @@ -2571,10 +2752,10 @@ - { "Root.PSFont.5", "/Helvetica-Oblique" }, - { "Root.PSFont.6", "/Helvetica-Bold" }, - { "Root.PSFont.7", "/Helvetica-BoldOblique" }, -- { "Root.PSFont.8", "/Courrier" }, -- { "Root.PSFont.9", "/Courrier-Oblique" }, -- { "Root.PSFont.10", "/Courrier-Bold" }, -- { "Root.PSFont.11", "/Courrier-BoldOblique" }, -+ { "Root.PSFont.8", "/Courier" }, -+ { "Root.PSFont.9", "/Courier-Oblique" }, -+ { "Root.PSFont.10", "/Courier-Bold" }, -+ { "Root.PSFont.11", "/Courier-BoldOblique" }, - { "Root.PSFont.12", "/Symbol" }, - { "Root.PSFont.13", "/Times-Roman" }, - { "Root.PSFont.14", "/ZapfDingbats" }, -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 + { "Root.PSFont.5", "/Helvetica-Oblique" }, + { "Root.PSFont.6", "/Helvetica-Bold" }, + { "Root.PSFont.7", "/Helvetica-BoldOblique" }, +- { "Root.PSFont.8", "/Courrier" }, +- { "Root.PSFont.9", "/Courrier-Oblique" }, +- { "Root.PSFont.10", "/Courrier-Bold" }, +- { "Root.PSFont.11", "/Courrier-BoldOblique" }, ++ { "Root.PSFont.8", "/Courier" }, ++ { "Root.PSFont.9", "/Courier-Oblique" }, ++ { "Root.PSFont.10", "/Courier-Bold" }, ++ { "Root.PSFont.11", "/Courier-BoldOblique" }, + { "Root.PSFont.12", "/Symbol" }, + { "Root.PSFont.13", "/Times-Roman" }, + { "Root.PSFont.14", "/ZapfDingbats" }, +diff -ur root-5.34.20.orig/graf3d/gl/Module.mk root-5.34.20/graf3d/gl/Module.mk +--- root-5.34.20.orig/graf3d/gl/Module.mk 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf3d/gl/Module.mk 2014-08-16 19:24:53.377132564 +0200 @@ -78,7 +78,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ @@ -1063,9 +1043,9 @@ diff -ur root-5.34.18.orig/graf3d/gl/Module.mk root-5.34.18/graf3d/gl/Module.mk $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) $(MAKEDIR) -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 +diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/gl/src/TGLFontManager.cxx +--- root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf3d/gl/src/TGLFontManager.cxx 2014-08-16 19:24:53.378132573 +0200 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1388,9 +1368,9 @@ diff -ur root-5.34.18.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.18/graf3d/ 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 +diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/TGLText.cxx +--- root-5.34.20.orig/graf3d/gl/src/TGLText.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/graf3d/gl/src/TGLText.cxx 2014-08-16 19:24:53.378132573 +0200 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1530,9 +1510,9 @@ diff -ur root-5.34.18.orig/graf3d/gl/src/TGLText.cxx root-5.34.18/graf3d/gl/src/ - delete [] ttfont; + Error("SetGLTextFont","Cannot set FTGL::FaceSize"); } -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 +diff -ur root-5.34.20.orig/gui/gui/src/TGApplication.cxx root-5.34.20/gui/gui/src/TGApplication.cxx +--- root-5.34.20.orig/gui/gui/src/TGApplication.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/gui/gui/src/TGApplication.cxx 2014-08-16 19:24:53.379132582 +0200 @@ -83,25 +83,12 @@ gROOT->SetBatch(kFALSE); @@ -1560,9 +1540,9 @@ diff -ur root-5.34.18.orig/gui/gui/src/TGApplication.cxx root-5.34.18/gui/gui/sr } // Create the canvas colors early so they are allocated before -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 +diff -ur root-5.34.20.orig/gui/gui/src/TGSpeedo.cxx root-5.34.20/gui/gui/src/TGSpeedo.cxx +--- root-5.34.20.orig/gui/gui/src/TGSpeedo.cxx 2014-08-13 15:03:22.000000000 +0200 ++++ root-5.34.20/gui/gui/src/TGSpeedo.cxx 2014-08-16 19:24:53.379132582 +0200 @@ -119,8 +119,7 @@ TString sc; diff --git a/root-gccopt.patch b/root-gccopt.patch deleted file mode 100644 index 5fb3cb6..0000000 --- a/root-gccopt.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -ur root-5.34.19.orig/bindings/pyroot/Module.mk root-5.34.19/bindings/pyroot/Module.mk ---- root-5.34.19.orig/bindings/pyroot/Module.mk 2014-07-09 16:50:16.000000000 +0200 -+++ root-5.34.19/bindings/pyroot/Module.mk 2014-07-18 16:26:11.682503438 +0200 -@@ -123,14 +123,15 @@ - $(PYTHON64O): CFLAGS += $(PYTHONINCDIR:%=-I%) - ifeq ($(GCC_MAJOR),4) - $(PYROOTO): CXXFLAGS += -fno-strict-aliasing --endif --ifneq ($(CLANG_MAJOR)$(GCC_MAJOR),) --# Building with clang or GCC -+ifeq ($(subst $(GCC_MINOR),,0 1),0 1) -+# GCC >= 4.2 - $(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-error=format - endif -+endif - - ifneq ($(CLANG_MAJOR),) - # Building with clang - $(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-ignored-attributes -+$(PYROOTO) $(PYTHON64O) $(PYROOTDO): CXXFLAGS += -Wno-error=format - endif - -diff -ur root-5.34.19.orig/io/dcache/Module.mk root-5.34.19/io/dcache/Module.mk ---- root-5.34.19.orig/io/dcache/Module.mk 2014-07-09 16:50:16.000000000 +0200 -+++ root-5.34.19/io/dcache/Module.mk 2014-07-18 14:41:34.700841953 +0200 -@@ -68,7 +68,10 @@ - - ##### extra rules ###### - $(DCACHEO) $(DCACHEDO): CXXFLAGS := $(filter-out -Wall,$(CXXFLAGS)) $(DCAPINCDIR:%=-I%) --ifneq ($(CXX:g++=),$(CXX)) -+ifeq ($(GCC_MAJOR),4) -+ifeq ($(subst $(GCC_MINOR),,0 1 2),0 1 2) -+# GCC >= 4.3 - $(DCACHEO) $(DCACHEDO): CXXFLAGS += -Wno-ignored-qualifiers - endif -+endif - diff --git a/root-usa.patch b/root-usa.patch new file mode 100644 index 0000000..4b5a380 --- /dev/null +++ b/root-usa.patch @@ -0,0 +1,13 @@ +diff -ur root-5.34.19.orig/hist/histpainter/src/THistPainter.cxx root-5.34.19/hist/histpainter/src/THistPainter.cxx +--- root-5.34.19.orig/hist/histpainter/src/THistPainter.cxx 2014-07-09 16:50:16.000000000 +0200 ++++ root-5.34.19/hist/histpainter/src/THistPainter.cxx 2014-07-26 23:01:20.083002118 +0200 +@@ -2305,7 +2305,8 @@ + TH2Poly *p = new TH2Poly("USA","USA Population",lon1,lon2,lat1,lat2); + + TFile *f; +- f = TFile::Open("http://root.cern.ch/files/usa.root"); ++ // f = TFile::Open("http://root.cern.ch/files/usa.root"); ++ f = TFile::Open("$(ROOTSYS)/tutorials/hist/usa.root"); + + TMultiGraph *mg; + TKey *key; diff --git a/root.spec b/root.spec index 69dc5bb..028e0f7 100644 --- a/root.spec +++ b/root.spec @@ -29,17 +29,12 @@ %global emacs_lispdir %(pkg-config emacs --variable sitepkglispdir) %endif -# Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) -%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7 -%global xrootd 0 -%else %global xrootd 1 -%endif %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.19 +Version: 5.34.20 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -62,6 +57,8 @@ Source2: root-html.C Source3: http://root.cern.ch/drupal/sites/default/files/rootdrawing-logo.png Source4: http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/root-banner.png Source5: http://root.cern.ch/drupal/sites/all/themes/newsflash/images/info.png +# Use local copy of input file during documentation generation +Source6: http://root.cern.ch/files/usa.root # Patch for ftgl older than version 2.1.3: Patch0: %{name}-ftgl.patch # Use system fonts: @@ -83,8 +80,8 @@ Patch7: %{name}-hdfs.patch Patch8: %{name}-dont-link-jvm.patch # Avoid deprecated __USE_BSD Patch9: %{name}-bsd-misc.patch -# Don't use new gcc options for old gcc versions -Patch10: %{name}-gccopt.patch +# Use local copy of input file during documentation generation +Patch10: %{name}-usa.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 @@ -176,20 +173,7 @@ BuildRequires: font(liberationmono) %else BuildRequires: liberation-fonts %endif -%if %{?fedora}%{!?fedora:0} >= 12 || %{?rhel}%{!?rhel:0} >= 6 -%ifarch %{ix86} x86_64 -BuildRequires: font(symbol) -%else BuildRequires: urw-fonts -%endif -%else -BuildRequires: urw-fonts -%endif -%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 -%ifarch %{ix86} x86_64 -BuildRequires: font(wingdings) -%endif -%endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: font(droidsansfallback) %endif @@ -278,7 +262,7 @@ Summary: ROOT core libraries Group: Applications/Engineering License: LGPLv2+ and BSD Requires: %{name}-icons = %{version}-%{release} -Requires: %{name}-graf-asimage = %{version}-%{release} +Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} Requires: xorg-x11-fonts-ISO8859-1-75dpi %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 Requires: font(liberationsans) @@ -287,20 +271,7 @@ Requires: font(liberationmono) %else Requires: liberation-fonts %endif -%if %{?fedora}%{!?fedora:0} >= 12 || %{?rhel}%{!?rhel:0} >= 6 -%ifarch %{ix86} x86_64 -Requires: font(symbol) -%else Requires: urw-fonts -%endif -%else -Requires: urw-fonts -%endif -%if %{?fedora}%{!?fedora:0} >= 17 || %{?rhel}%{!?rhel:0} >= 7 -%ifarch %{ix86} x86_64 -Requires: font(wingdings) -%endif -%endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 Requires: font(droidsansfallback) %endif @@ -361,8 +332,11 @@ with CINT with any class for which a Reflex dictionary is provided. %package proofd Summary: Parallel ROOT Facility - distributed, parallel computing Group: Applications/Engineering -Requires: %{name}-net-rpdutils = %{version}-%{release} -Requires: %{name}-proof = %{version}-%{release} +Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} +%if %{xrootd} +Requires: xrootd-server%{?_isa} +%endif Requires(preun): chkconfig Requires(preun): initscripts Requires(post): chkconfig @@ -379,7 +353,7 @@ transparent interface. %package rootd Summary: ROOT remote file server Group: Applications/Engineering -Requires: %{name}-net-rpdutils = %{version}-%{release} +Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} Requires(preun): chkconfig Requires(preun): initscripts Requires(post): chkconfig @@ -471,7 +445,7 @@ System (FITS) data format in root. %package graf-gpad Summary: Canvas and pad library for ROOT Group: Applications/Engineering -Requires: %{name}-graf-postscript = %{version}-%{release} +Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} %description graf-gpad This package contains a library for canvas and pad manipulations. @@ -552,8 +526,8 @@ a low quality 3D viewer for ROOT defined geometries. %package gui Summary: GUI library for ROOT Group: Applications/Engineering -Requires: %{name}-graf-x11 = %{version}-%{release} -Requires: %{name}-gui-ged = %{version}-%{release} +Requires: %{name}-graf-x11%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} %description gui This package contains a library for defining graphical user interfaces. @@ -569,7 +543,7 @@ various kinds of data. %package gui-ged Summary: GUI element for editing various ROOT objects Group: Applications/Engineering -Requires: %{name}-tree-player = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description gui-ged This package contains a library to show a pop-up window for editing @@ -615,7 +589,7 @@ access legacy Hbook files (NTuples and Histograms from PAW). %package hist Summary: Histogram library for ROOT Group: Applications/Engineering -Requires: %{name}-hist-painter = %{version}-%{release} +Requires: %{name}-hist-painter%{?_isa} = %{version}-%{release} %description hist This package contains a library for histogramming in ROOT. @@ -749,7 +723,7 @@ a generalized vector library. %package mathcore Summary: Core mathematics library for ROOT Group: Applications/Engineering -Requires: %{name}-minuit = %{version}-%{release} +Requires: %{name}-minuit%{?_isa} = %{version}-%{release} %description mathcore This package contains the MathCore library for ROOT. @@ -1402,8 +1376,8 @@ make OPTFLAGS="%{optflags}" \ %endif %install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} # Move python modules to the sitelib mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch} @@ -1586,6 +1560,7 @@ echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C +install -m 644 -p %{SOURCE6} tutorials/hist/usa.root LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc @@ -1610,16 +1585,16 @@ cat includelist-net-netx* > includelist-netx %if "%{?rhel}" == "5" # Python byte code compilation -%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{_libdir}/%{name}/python"'", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null -%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{_libdir}/%{name}/python"'", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null -%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python_sitearch}"'", 10, "%{python_sitearch}", 1)' > /dev/null -%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python_sitearch}"'", 10, "%{python_sitearch}", 1)' > /dev/null -%{__python26} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python26_sitearch}"'", 10, "%{python26_sitearch}", 1)' > /dev/null -%{__python26} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{python26_sitearch}"'", 10, "%{python26_sitearch}", 1)' > /dev/null +%{__python} -c 'import compileall; compileall.compile_dir("%{buildroot}%{_libdir}/%{name}/python", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null +%{__python} -O -c 'import compileall; compileall.compile_dir("%{buildroot}%{_libdir}/%{name}/python", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null +%{__python} -c 'import compileall; compileall.compile_dir("%{buildroot}%{python_sitearch}", 10, "%{python_sitearch}", 1)' > /dev/null +%{__python} -O -c 'import compileall; compileall.compile_dir("%{buildroot}%{python_sitearch}", 10, "%{python_sitearch}", 1)' > /dev/null +%{__python26} -c 'import compileall; compileall.compile_dir("%{buildroot}%{python26_sitearch}", 10, "%{python26_sitearch}", 1)' > /dev/null +%{__python26} -O -c 'import compileall; compileall.compile_dir("%{buildroot}%{python26_sitearch}", 10, "%{python26_sitearch}", 1)' > /dev/null %endif %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} %post touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 || : @@ -1924,6 +1899,7 @@ fi %dir %{_datadir}/%{name} %{_datadir}/%{name}/class.rules %{_datadir}/%{name}/gdb-backtrace.sh +%{_datadir}/%{name}/helgrind-root.supp %{_datadir}/%{name}/Makefile.arch %{_datadir}/%{name}/root.mimes %{_datadir}/%{name}/system.rootauthrc @@ -2459,6 +2435,12 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Aug 16 2014 Mattias Ellert - 5.34.20-1 +- Update to 5.34.20 +- Re-enable xrootd support for F21+ and EPEL7 (now ported to xrootd 4) +- Do not depend on wine's fonts +- Drop patch root-gccopt.patch + * Mon Jul 14 2014 Mattias Ellert - 5.34.19-1 - Update to 5.34.19 - Disable xrootd support for F21+ and EPEL7 (root not yet ported to xrootd 4) diff --git a/sources b/sources index bcc042a..ba6bec6 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -3c68587354619c0a2d3bb9f77381b1b9 root-5.34.19.tar.xz +7ac7d0cdb28c2afe44be4c74a7cecb33 root-5.34.20.tar.xz +afb35390554c43a7d92576a6d9d3ae8a usa.root From 2f29b57628dbd1fc70abd190609da750ba7bc514 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 20 Aug 2014 05:53:54 +0200 Subject: [PATCH 059/344] Fix changelog date --- root.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root.spec b/root.spec index daa364e..7ee5324 100644 --- a/root.spec +++ b/root.spec @@ -2435,7 +2435,7 @@ fi %{emacs_lispdir}/root/*.el %changelog -* Sat Aug 16 2014 Mattias Ellert - 5.34.20-1 +* Wed Aug 20 2014 Mattias Ellert - 5.34.20-1 - Update to 5.34.20 - Re-enable xrootd support for F21+ and EPEL7 (now ported to xrootd 4) - Do not depend on wine's fonts From db06f3797ebfb2b62d182dc5cf6b7f0b8cdced85 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 29 Aug 2014 07:38:37 +0200 Subject: [PATCH 060/344] Move xproofd binaries from root-proofd to root-xproof - Adjust EPEL 7 font dependencies - Rebuild using new binutils (ld bug fixed - F21+) --- root.spec | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/root.spec b/root.spec index 7ee5324..1503d61 100644 --- a/root.spec +++ b/root.spec @@ -36,7 +36,7 @@ Name: root Version: 5.34.20 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -174,10 +174,10 @@ BuildRequires: font(liberationmono) BuildRequires: liberation-fonts %endif BuildRequires: urw-fonts -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 BuildRequires: font(droidsansfallback) %endif -%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 +%if %{?fedora}%{!?fedora:0} >= 18 # STIX font version 1.1 - not backwards compatible with earlier versions # We use the texlive supplied version 1.0 instead of font(stix) BuildRequires: texlive-stix @@ -187,7 +187,7 @@ BuildRequires: texlive-stix BuildRequires: font(stixgeneral) BuildRequires: font(stixsizeonesym) %else -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 # STIX font version 0.9 BuildRequires: font(stixgeneral) BuildRequires: font(stixsize1) @@ -272,10 +272,10 @@ Requires: font(liberationmono) Requires: liberation-fonts %endif Requires: urw-fonts -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 Requires: font(droidsansfallback) %endif -%if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 7 +%if %{?fedora}%{!?fedora:0} >= 18 # STIX font version 1.1 - not backwards compatible with earlier versions # We use the texlive supplied version 1.0 instead of font(stix) Requires: texlive-stix @@ -285,7 +285,7 @@ Requires: texlive-stix Requires: font(stixgeneral) Requires: font(stixsizeonesym) %else -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 +%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 # STIX font version 0.9 Requires: font(stixgeneral) Requires: font(stixsize1) @@ -333,10 +333,6 @@ with CINT with any class for which a Reflex dictionary is provided. Summary: Parallel ROOT Facility - distributed, parallel computing Group: Applications/Engineering Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} -Requires: %{name}-proof%{?_isa} = %{version}-%{release} -%if %{xrootd} -Requires: xrootd-server%{?_isa} -%endif Requires(preun): chkconfig Requires(preun): initscripts Requires(post): chkconfig @@ -1014,6 +1010,8 @@ session in ROOT. %package xproof Summary: XPROOF extension for ROOT Group: Applications/Engineering +Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} +Requires: xrootd-server%{?_isa} %description xproof This package contains the xproof extension for ROOT. This provides a @@ -1966,16 +1964,9 @@ fi %{_bindir}/proofserv %{_bindir}/proofserv.exe %{_bindir}/xpdtest -%if %{xrootd} -%{_bindir}/proofexecv -%{_bindir}/xproofd -%endif %{_mandir}/man1/proofd.1* %{_mandir}/man1/proofserv.1* %{_mandir}/man1/xpdtest.1* -%if %{xrootd} -%{_mandir}/man1/xproofd.1* -%endif %{_initrddir}/proofd %files rootd @@ -2380,6 +2371,9 @@ fi %if %{xrootd} %files xproof -f includelist-proof-proofx +%{_bindir}/proofexecv +%{_bindir}/xproofd +%{_mandir}/man1/xproofd.1* %{_libdir}/%{name}/libProofx.* %{_libdir}/%{name}/libXrdProofd.* %{_datadir}/%{name}/plugins/TProofMgr/P010_TXProofMgr.C @@ -2435,6 +2429,11 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Aug 28 2014 Mattias Ellert - 5.34.20-2 +- Move xproofd binaries from root-proofd to root-xproof +- Adjust EPEL 7 font dependencies +- Rebuild using new binutils (ld bug fixed - F21+) + * Wed Aug 20 2014 Mattias Ellert - 5.34.20-1 - Update to 5.34.20 - Re-enable xrootd support for F21+ and EPEL7 (now ported to xrootd 4) From b1435a8750bac5b9a00c09201c05c6dad971a9cc Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 19 Dec 2014 15:16:09 +0100 Subject: [PATCH 061/344] Update to 5.34.24 - Drop patch root-bsd-misc.patch --- root-bsd-misc.patch | 12 ----------- root-dont-link-jvm.patch | 44 ++++++++++++++++++++-------------------- root-xrdversion.patch | 11 ++++++++++ root.spec | 15 +++++++++----- sources | 2 +- 5 files changed, 44 insertions(+), 40 deletions(-) delete mode 100644 root-bsd-misc.patch create mode 100644 root-xrdversion.patch diff --git a/root-bsd-misc.patch b/root-bsd-misc.patch deleted file mode 100644 index b49fbba..0000000 --- a/root-bsd-misc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur root-5.34.17.orig/core/base/src/TTimeStamp.cxx root-5.34.17/core/base/src/TTimeStamp.cxx ---- root-5.34.17.orig/core/base/src/TTimeStamp.cxx 2014-02-24 09:37:53.000000000 +0100 -+++ root-5.34.17/core/base/src/TTimeStamp.cxx 2014-02-27 09:37:28.381639337 +0100 -@@ -813,7 +813,7 @@ - tmstruct.tm_isdst); - #if (defined(linux) && !defined(R__WINGCC)) || defined(R__MACOSX) - printf(",\n tm_gmtoff %6ld, tm_zone \"%s\"", --#if defined(__USE_BSD) || defined(R__MACOSX) -+#if defined(__USE_MISC) || defined(R__MACOSX) - tmstruct.tm_gmtoff, tmstruct.tm_zone); - #else - tmstruct.__tm_gmtoff, tmstruct.__tm_zone); diff --git a/root-dont-link-jvm.patch b/root-dont-link-jvm.patch index 594d7c3..c6bf63b 100644 --- a/root-dont-link-jvm.patch +++ b/root-dont-link-jvm.patch @@ -1,21 +1,21 @@ -diff -ur root-5.34.11.orig/cmake/modules/RootConfiguration.cmake root-5.34.11/cmake/modules/RootConfiguration.cmake ---- root-5.34.11.orig/cmake/modules/RootConfiguration.cmake 2013-10-31 16:46:31.000000000 +0100 -+++ root-5.34.11/cmake/modules/RootConfiguration.cmake 2013-11-06 09:43:56.008974184 +0100 -@@ -167,10 +167,6 @@ - set(hdfslib ${HDFS_LIBRARY}) +diff -ur root-5.34.24.orig/cmake/modules/RootConfiguration.cmake root-5.34.24/cmake/modules/RootConfiguration.cmake +--- root-5.34.24.orig/cmake/modules/RootConfiguration.cmake 2014-12-02 18:12:03.000000000 +0100 ++++ root-5.34.24/cmake/modules/RootConfiguration.cmake 2014-12-19 11:41:09.559330313 +0100 +@@ -257,10 +257,6 @@ + string(REPLACE ";" " " hdfslib "${HDFS_LIBRARY}") set(hdfsincdir ${HDFS_INCLUDE_DIR}) -set(jniincdir ${Java_INCLUDE_DIRS}) --set(jvmlib ${Java_LIBRARIES}) +-string(REPLACE ";" " " jvmlib "${Java_LIBRARIES}") -set(jvmlibdir ${Java_LIBRARY_DIR}) - set(buildalien ${value${alien}}) set(alienlibdir ${ALIEN_LIBRARY_DIR}) - set(alienlib ${ALIEN_LIBRARY}) -diff -ur root-5.34.11.orig/config/Makefile.in root-5.34.11/config/Makefile.in ---- root-5.34.11.orig/config/Makefile.in 2013-10-31 16:46:31.000000000 +0100 -+++ root-5.34.11/config/Makefile.in 2013-11-06 09:41:09.145976839 +0100 -@@ -198,9 +198,6 @@ + string(REPLACE ";" " " alienlib "${ALIEN_LIBRARY}") +diff -ur root-5.34.24.orig/config/Makefile.in root-5.34.24/config/Makefile.in +--- root-5.34.24.orig/config/Makefile.in 2014-12-02 18:12:03.000000000 +0100 ++++ root-5.34.24/config/Makefile.in 2014-12-19 11:39:26.580520172 +0100 +@@ -207,9 +207,6 @@ HDFSLIBDIR := @hdfslibdir@ HDFSCLILIB := @hdfslib@ HDFSINCDIR := $(filter-out /usr/include, @hdfsincdir@) @@ -25,10 +25,10 @@ diff -ur root-5.34.11.orig/config/Makefile.in root-5.34.11/config/Makefile.in BUILDALIEN := @buildalien@ ALIENLIBDIR := @alienlibdir@ -diff -ur root-5.34.11.orig/configure root-5.34.11/configure ---- root-5.34.11.orig/configure 2013-10-31 16:46:31.000000000 +0100 -+++ root-5.34.11/configure 2013-11-06 09:39:57.651833708 +0100 -@@ -1682,8 +1682,6 @@ +diff -ur root-5.34.24.orig/configure root-5.34.24/configure +--- root-5.34.24.orig/configure 2014-12-02 18:12:03.000000000 +0100 ++++ root-5.34.24/configure 2014-12-19 11:39:26.607519860 +0100 +@@ -1753,8 +1753,6 @@ hdfs-incdir HDFS support, location of hdfs.h hdfs-libdir HDFS support, location of libhdfs iosvers iOS SDK version (6.1, 7.0), default will be latest SDK @@ -37,7 +37,7 @@ diff -ur root-5.34.11.orig/configure root-5.34.11/configure krb5 Kerberos5 support, location of Kerberos distribution krb5-incdir Kerberos5 support, location of krb5.h krb5-libdir Kerberos5 support, location of libkrb5 -@@ -2047,8 +2045,6 @@ +@@ -2141,8 +2139,6 @@ --with-hdfs-incdir=*) hdfsincdir=$optarg ; enable_hdfs="yes" ;; --with-hdfs-libdir=*) hdfslibdir=$optarg ; enable_hdfs="yes" ;; --with-iosvers=*) iosvers=$optarg ;; @@ -46,7 +46,7 @@ diff -ur root-5.34.11.orig/configure root-5.34.11/configure --with-krb5=*) krb5dir=$optarg ; enable_krb5="yes" ;; --with-krb5-incdir=*) krb5incdir=$optarg ; enable_krb5="yes" ;; --with-krb5-libdir=*) krb5libdir=$optarg ; enable_krb5="yes" ;; -@@ -4082,17 +4078,6 @@ +@@ -4285,17 +4281,6 @@ hdfsinc=$found_hdr hdfsincdir=$found_dir @@ -64,7 +64,7 @@ diff -ur root-5.34.11.orig/configure root-5.34.11/configure check_library "libhdfs" "$enable_shared" "$hdfslibdir" \ $HDFS ${HDFS:+$HDFS/lib} ${HDFS:+$HDFS/build/libhdfs} \ $HADOOP_HOME ${HADOOP_HOME:+$HADOOP_HOME/build/libhdfs} \ -@@ -4100,26 +4085,12 @@ +@@ -4303,26 +4288,12 @@ hdfslib=$found_lib hdfslibdir=$found_dir @@ -93,7 +93,7 @@ diff -ur root-5.34.11.orig/configure root-5.34.11/configure if test $link_result -eq 0 ; then enable_hdfs="no" fi -@@ -6843,9 +6814,6 @@ +@@ -7324,9 +7295,6 @@ -e "s|@iosvers@|$iosvers|" \ -e "s|@iconpath@|$iconpath|" \ -e "s|@incdir@|$incdir|" \ @@ -103,9 +103,9 @@ diff -ur root-5.34.11.orig/configure root-5.34.11/configure -e "s|@krb5incdir@|$krb5incdir|" \ -e "s|@krb5lib@|$krb5lib|" \ -e "s|@krb5libdir@|$krb5libdir|" \ -diff -ur root-5.34.11.orig/io/hdfs/Module.mk root-5.34.11/io/hdfs/Module.mk ---- root-5.34.11.orig/io/hdfs/Module.mk 2013-10-31 16:46:31.000000000 +0100 -+++ root-5.34.11/io/hdfs/Module.mk 2013-11-06 09:42:21.320111053 +0100 +diff -ur root-5.34.24.orig/io/hdfs/Module.mk root-5.34.24/io/hdfs/Module.mk +--- root-5.34.24.orig/io/hdfs/Module.mk 2014-12-02 18:12:03.000000000 +0100 ++++ root-5.34.24/io/hdfs/Module.mk 2014-12-19 11:39:26.608519849 +0100 @@ -44,7 +44,7 @@ $(HDFSLIB): $(HDFSO) $(HDFSDO) $(ORDER_) $(MAINLIBS) $(HDFSLIBDEP) @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ diff --git a/root-xrdversion.patch b/root-xrdversion.patch new file mode 100644 index 0000000..84b8f92 --- /dev/null +++ b/root-xrdversion.patch @@ -0,0 +1,11 @@ +diff -ur root-5.34.23.orig/net/netxng/src/TNetXNGFile.cxx root-5.34.23/net/netxng/src/TNetXNGFile.cxx +--- root-5.34.23.orig/net/netxng/src/TNetXNGFile.cxx 2014-11-07 15:06:59.000000000 +0100 ++++ root-5.34.23/net/netxng/src/TNetXNGFile.cxx 2014-12-19 10:11:33.343919333 +0100 +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + + //------------------------------------------------------------------------------ diff --git a/root.spec b/root.spec index 1503d61..2dc3451 100644 --- a/root.spec +++ b/root.spec @@ -34,9 +34,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.20 +Version: 5.34.24 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -78,10 +78,10 @@ Patch6: %{name}-no-extra-formats.patch Patch7: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) Patch8: %{name}-dont-link-jvm.patch -# Avoid deprecated __USE_BSD -Patch9: %{name}-bsd-misc.patch # Use local copy of input file during documentation generation -Patch10: %{name}-usa.patch +Patch9: %{name}-usa.patch +# Make sure xrootd version is known +Patch10: %{name}-xrdversion.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 @@ -1345,6 +1345,7 @@ unset QTINC --disable-chirp \ --disable-cling \ --disable-cxx11 \ + --disable-cxx14 \ --disable-glite \ --disable-libcxx \ --disable-monalisa \ @@ -2429,6 +2430,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Fri Dec 19 2014 Mattias Ellert - 5.34.24-1 +- Update to 5.34.24 +- Drop patch root-bsd-misc.patch + * Thu Aug 28 2014 Mattias Ellert - 5.34.20-2 - Move xproofd binaries from root-proofd to root-xproof - Adjust EPEL 7 font dependencies diff --git a/sources b/sources index ba6bec6..2a3f5cd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -7ac7d0cdb28c2afe44be4c74a7cecb33 root-5.34.20.tar.xz +8428348c943e4cbb58fb188dcb3d02c5 root-5.34.24.tar.xz afb35390554c43a7d92576a6d9d3ae8a usa.root From 6a86160033fa2926c186e6a6346f2271609880d7 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Sat, 17 Jan 2015 01:17:04 +0900 Subject: [PATCH 062/344] Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 2dc3451..757bd77 100644 --- a/root.spec +++ b/root.spec @@ -36,7 +36,7 @@ Name: root Version: 5.34.24 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2430,6 +2430,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Sat Jan 17 2015 Mamoru TASAKA - 5.34.24-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 + * Fri Dec 19 2014 Mattias Ellert - 5.34.24-1 - Update to 5.34.24 - Drop patch root-bsd-misc.patch From 5055650a66cfdbfad8a337363abaff8289cc7ce4 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 29 Jan 2015 22:12:56 +0100 Subject: [PATCH 063/344] Rebuild with fixed cairo (bz 1183242) --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 757bd77..e02ae99 100644 --- a/root.spec +++ b/root.spec @@ -36,7 +36,7 @@ Name: root Version: 5.34.24 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2430,6 +2430,9 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Thu Jan 29 2015 Mattias Ellert - 5.34.24-3 +- Rebuild with fixed cairo (bz 1183242) + * Sat Jan 17 2015 Mamoru TASAKA - 5.34.24-2 - Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 From 1b4917794ee8a61cbe5fdeb74de9d40cbaed34fc Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Mon, 2 Mar 2015 10:37:17 +0100 Subject: [PATCH 064/344] Update to 5.34.26 - Drop patch root-xrdversion.patch --- root-xrdversion.patch | 11 --- root.spec | 180 ++++++++++++++++++++---------------------- sources | 2 +- 3 files changed, 88 insertions(+), 105 deletions(-) delete mode 100644 root-xrdversion.patch diff --git a/root-xrdversion.patch b/root-xrdversion.patch deleted file mode 100644 index 84b8f92..0000000 --- a/root-xrdversion.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur root-5.34.23.orig/net/netxng/src/TNetXNGFile.cxx root-5.34.23/net/netxng/src/TNetXNGFile.cxx ---- root-5.34.23.orig/net/netxng/src/TNetXNGFile.cxx 2014-11-07 15:06:59.000000000 +0100 -+++ root-5.34.23/net/netxng/src/TNetXNGFile.cxx 2014-12-19 10:11:33.343919333 +0100 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - - //------------------------------------------------------------------------------ diff --git a/root.spec b/root.spec index e02ae99..ad2948c 100644 --- a/root.spec +++ b/root.spec @@ -1,6 +1,6 @@ %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 %global __python26 /usr/bin/python26 %{!?python26_sitearch: %global python26_sitearch %(%{__python26} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} # Disable the default python byte code compilation @@ -34,9 +34,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.24 +Version: 5.34.26 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -80,8 +80,6 @@ Patch7: %{name}-hdfs.patch Patch8: %{name}-dont-link-jvm.patch # Use local copy of input file during documentation generation Patch9: %{name}-usa.patch -# Make sure xrootd version is known -Patch10: %{name}-xrdversion.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 @@ -128,7 +126,7 @@ BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLU-devel BuildRequires: postgresql-devel BuildRequires: python-devel -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 BuildRequires: python26-devel %endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 @@ -159,7 +157,7 @@ BuildRequires: emacs BuildRequires: emacs-el BuildRequires: gcc-gfortran BuildRequires: graphviz-devel -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 BuildRequires: graphviz-gd %endif BuildRequires: expat-devel @@ -369,7 +367,7 @@ Group: Applications/Engineering This package contains the Python extension for ROOT. This package provide a Python interface to ROOT, and a ROOT interface to Python. -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 %package python26 Summary: Python extension for ROOT Group: Applications/Engineering @@ -1128,7 +1126,7 @@ Group: Applications/Engineering BuildArch: noarch %endif Requires: %{name} = %{version}-%{release} -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 Requires: emacs >= %{emacs_version} %else Requires: emacs(bin) >= %{emacs_version} @@ -1165,7 +1163,6 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -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 \ @@ -1213,6 +1210,8 @@ rm graf3d/gl/src/gl2ps.cxx graf3d/gl/inc/gl2ps.h sed 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' -i graf3d/gl/Module.mk # * unuran rm -rf math/unuran/src/*.tar.gz +# * xrootd-private-devel headers +rm -rf proof/xrdinc # Remove unsupported man page macros sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* @@ -1235,7 +1234,7 @@ sed s/c1/c1c/g -i tutorials/graphics/earth.C sed s/c3/c3c/g -i tutorials/graphs/multipalette.C sed s/c1/c1simp/g -i tutorials/hsimple.C -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 # Build PyROOT for python 2.6 cp -pr bindings/pyroot bindings/pyroot26 sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ @@ -1273,14 +1272,11 @@ unset QTINC --enable-gdml \ --enable-genvector \ --enable-gfal \ - --with-gfal-incdir=%{_includedir}/gfal2 \ - --with-gfal-libdir=%{_libdir} \ --enable-globus \ --enable-gsl-shared \ --enable-gviz \ %if %{?fedora}%{!?fedora:0} >= 20 --enable-hdfs \ - --with-hdfs-incdir=%{_includedir}/hadoop \ %else --disable-hdfs \ %endif @@ -1309,8 +1305,6 @@ unset QTINC %endif --enable-reflex \ --enable-rfio \ - --with-rfio-incdir=%{_includedir}/dpm \ - --with-rfio-libdir=%{_libdir} \ --enable-roofit \ --enable-ruby \ --enable-shadowpw \ @@ -1327,8 +1321,6 @@ unset QTINC --enable-xml \ %if %{xrootd} --enable-xrootd \ - --with-xrootd-incdir=%{_includedir}/xrootd \ - --with-xrootd-libdir=%{_libdir} \ %else --disable-xrootd \ %endif @@ -1361,7 +1353,7 @@ unset QTINC make OPTFLAGS="%{optflags}" \ EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 # Build PyROOT for python 2.6 mkdir pyroot26 cp bindings/pyroot26/ROOT.py pyroot26 @@ -1379,17 +1371,16 @@ rm -rf %{buildroot} make install DESTDIR=%{buildroot} # Move python modules to the sitelib -mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch} -mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/*.py* \ - ${RPM_BUILD_ROOT}%{python_sitearch} +mkdir -p %{buildroot}%{python_sitearch} +mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python_sitearch} # Do emacs byte compilation emacs -batch -no-site-file -f batch-byte-compile \ - ${RPM_BUILD_ROOT}%{emacs_lispdir}/%{name}/*.el + %{buildroot}%{emacs_lispdir}/%{name}/*.el # Install desktop entry and icon -mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/applications -mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps +mkdir -p %{buildroot}%{_datadir}/applications +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps cat > root.desktop << EOF [Desktop Entry] @@ -1405,104 +1396,103 @@ Categories=Utility; Encoding=UTF-8 EOF -desktop-file-install --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \ +desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ --vendor "" root.desktop install -p -m 644 build/package/debian/root-system-bin.png \ - ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/root.png + %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/root.png # Install mime type and icon -mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/mime/packages -mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/mimetypes +mkdir -p %{buildroot}%{_datadir}/mime/packages +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes install -p -m 644 build/package/debian/root-system-bin.sharedmimeinfo \ - ${RPM_BUILD_ROOT}%{_datadir}/mime/packages/root.xml + %{buildroot}%{_datadir}/mime/packages/root.xml install -p -m 644 build/package/debian/application-x-root.png \ - ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/mimetypes + %{buildroot}%{_datadir}/icons/hicolor/48x48/mimetypes # Init scripts for services -mkdir -p ${RPM_BUILD_ROOT}%{_initrddir} -mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/proofd.rc.d \ - ${RPM_BUILD_ROOT}%{_initrddir}/proofd -mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/rootd.rc.d \ - ${RPM_BUILD_ROOT}%{_initrddir}/rootd +mkdir -p %{buildroot}%{_initrddir} +mv %{buildroot}%{_datadir}/%{name}/daemons/proofd.rc.d \ + %{buildroot}%{_initrddir}/proofd +mv %{buildroot}%{_datadir}/%{name}/daemons/rootd.rc.d \ + %{buildroot}%{_initrddir}/rootd # Turn off services by default -sed 's/\(chkconfig: \)[0-9]*/\1-/' -i ${RPM_BUILD_ROOT}%{_initrddir}/* +sed 's/\(chkconfig: \)[0-9]*/\1-/' -i %{buildroot}%{_initrddir}/* # The Python interface library must be in two places -mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch} -mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} \ - ${RPM_BUILD_ROOT}%{python_sitearch}/libPyROOT.so -%if "%{?rhel}" == "5" -touch ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} +mkdir -p %{buildroot}%{python_sitearch} +mv %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{libversion} \ + %{buildroot}%{python_sitearch}/libPyROOT.so +%if %{?rhel}%{!?rhel:0} == 5 +touch %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{libversion} %else ln -s ..`sed 's!%{_libdir}!!' <<< %{python_sitearch}`/libPyROOT.so \ - ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libPyROOT.so.%{libversion} + %{buildroot}%{_libdir}/%{name}/libPyROOT.so.%{libversion} %endif -%if "%{?rhel}" == "5" -mkdir -p ${RPM_BUILD_ROOT}%{python26_sitearch} +%if %{?rhel}%{!?rhel:0} == 5 +mkdir -p %{buildroot}%{python26_sitearch} install pyroot26/libPyROOT.so.%{libversion} \ - ${RPM_BUILD_ROOT}%{python26_sitearch}/libPyROOT.so -install -m 644 pyroot26/ROOT.py* ${RPM_BUILD_ROOT}%{python26_sitearch} -install -m 644 pyroot26/cppyy.py* ${RPM_BUILD_ROOT}%{python26_sitearch} + %{buildroot}%{python26_sitearch}/libPyROOT.so +install -m 644 pyroot26/ROOT.py* %{buildroot}%{python26_sitearch} +install -m 644 pyroot26/cppyy.py* %{buildroot}%{python26_sitearch} %endif # Same for the Ruby interface library -mkdir -p ${RPM_BUILD_ROOT}%{ruby_installdir} -mv ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} \ - ${RPM_BUILD_ROOT}%{ruby_installdir}/libRuby.so +mkdir -p %{buildroot}%{ruby_installdir} +mv %{buildroot}%{_libdir}/%{name}/libRuby.so.%{libversion} \ + %{buildroot}%{ruby_installdir}/libRuby.so ln -s ..`sed 's!%{_libdir}!!' <<< %{ruby_installdir}`/libRuby.so \ - ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libRuby.so.%{libversion} + %{buildroot}%{_libdir}/%{name}/libRuby.so.%{libversion} # These should be in PATH -mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils/pq2/pq2* \ - ${RPM_BUILD_ROOT}%{_bindir} +mv %{buildroot}%{_datadir}/%{name}/proof/utils/pq2/pq2* %{buildroot}%{_bindir} # Remove some junk -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.plist -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/*.xinetd -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/daemons/README -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/hostcert.conf -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/*.sample -rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/proof/utils -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/root.desktop -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/system.plugins-ios -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/gitinfo.txt +rm %{buildroot}%{_datadir}/%{name}/daemons/*.plist +rm %{buildroot}%{_datadir}/%{name}/daemons/*.xinetd +rm %{buildroot}%{_datadir}/%{name}/daemons/README +rm %{buildroot}%{_datadir}/%{name}/hostcert.conf +rm %{buildroot}%{_datadir}/%{name}/proof/*.sample +rm -rf %{buildroot}%{_datadir}/%{name}/proof/utils +rm %{buildroot}%{_datadir}/%{name}/root.desktop +rm %{buildroot}%{_datadir}/%{name}/system.plugins-ios +rm %{buildroot}%{_datadir}/%{name}/gitinfo.txt %if %{?fedora}%{!?fedora:0} < 13 && %{?rhel}%{!?rhel:0} < 6 -rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libAfterImage.a +rm %{buildroot}%{_libdir}/%{name}/libAfterImage.a %endif -rm ${RPM_BUILD_ROOT}%{_libdir}/%{name}/libmathtext.a -rm ${RPM_BUILD_ROOT}%{_bindir}/setxrd* -rm ${RPM_BUILD_ROOT}%{_bindir}/thisroot* -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/cint.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/g2rootold.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/makecint.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/proofserva.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/roota.1 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/setup-pq2.1 +rm %{buildroot}%{_libdir}/%{name}/libmathtext.a +rm %{buildroot}%{_bindir}/setxrd* +rm %{buildroot}%{_bindir}/thisroot* +rm %{buildroot}%{_mandir}/man1/cint.1 +rm %{buildroot}%{_mandir}/man1/g2rootold.1 +rm %{buildroot}%{_mandir}/man1/makecint.1 +rm %{buildroot}%{_mandir}/man1/proofserva.1 +rm %{buildroot}%{_mandir}/man1/roota.1 +rm %{buildroot}%{_mandir}/man1/setup-pq2.1 %if %{xrootd} == 0 -rm ${RPM_BUILD_ROOT}%{_mandir}/man1/xproofd.1 +rm %{buildroot}%{_mandir}/man1/xproofd.1 %endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 -rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.cw -rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/*.pri +rm %{buildroot}%{_includedir}/%{name}/*.cw +rm %{buildroot}%{_includedir}/%{name}/*.pri %endif -rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/proofdp.h -rm ${RPM_BUILD_ROOT}%{_includedir}/%{name}/rootdp.h -rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/BUILDSYSTEM -rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/ChangeLog-2-24 -rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/INSTALL -rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/README.ALIEN -rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/README.MONALISA +rm %{buildroot}%{_includedir}/%{name}/proofdp.h +rm %{buildroot}%{_includedir}/%{name}/rootdp.h +rm %{buildroot}%{_pkgdocdir}/BUILDSYSTEM +rm %{buildroot}%{_pkgdocdir}/ChangeLog-2-24 +rm %{buildroot}%{_pkgdocdir}/INSTALL +rm %{buildroot}%{_pkgdocdir}/README.ALIEN +rm %{buildroot}%{_pkgdocdir}/README.MONALISA # Remove cintdll sources - keep the prec_stl directory -rm -rf ${RPM_BUILD_ROOT}%{_libdir}/%{name}/cint/cint/lib/{[^p],p[^r]}* +rm -rf %{buildroot}%{_libdir}/%{name}/cint/cint/lib/{[^p],p[^r]}* # Only used on Windows -rm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/macros/fileopen.C +rm %{buildroot}%{_datadir}/%{name}/macros/fileopen.C # Remove plugin definitions for non-built and obsolete plugins -pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins +pushd %{buildroot}%{_datadir}/%{name}/plugins rm TAFS/P010_TAFS.C rm TDataProgressDialog/P010_TDataProgressDialog.C rm TDataSetManager/P020_TDataSetManagerAliEn.C @@ -1549,9 +1539,9 @@ rmdir TImagePlugin popd # Create ldconfig configuration -mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d echo %{_libdir}/%{name} > \ - ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf + %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf # Generate documentation echo Rint.Includes: 0 > .rootrc @@ -1563,7 +1553,7 @@ install -m 644 -p %{SOURCE6} tutorials/hist/usa.root LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc -mv htmldoc ${RPM_BUILD_ROOT}%{_pkgdocdir}/html +mv htmldoc %{buildroot}%{_pkgdocdir}/html # Create includelist files ... for module in `find * -name Module.mk` ; do @@ -1582,7 +1572,7 @@ cat includelist-io-xmlparser >> includelist-io-xml cat includelist-proof-proofplayer >> includelist-proof-proof cat includelist-net-netx* > includelist-netx -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 # Python byte code compilation %{__python} -c 'import compileall; compileall.compile_dir("%{buildroot}%{_libdir}/%{name}/python", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null %{__python} -O -c 'import compileall; compileall.compile_dir("%{buildroot}%{_libdir}/%{name}/python", 10, "%{_libdir}/%{name}/python", 1)' > /dev/null @@ -1639,7 +1629,7 @@ if [ "$1" -ge "1" ] ; then /sbin/service proofd condrestart >/dev/null 2>&1 || : fi -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 %post python [ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ @@ -1976,7 +1966,7 @@ fi %{_initrddir}/rootd %files python -f includelist-bindings-pyroot -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so %{_libdir}/%{name}/libPyROOT.so.5 @@ -1988,7 +1978,7 @@ fi %{python_sitearch}/ROOT.py* %{python_sitearch}/cppyy.py* -%if "%{?rhel}" == "5" +%if %{?rhel}%{!?rhel:0} == 5 %files python26 -f includelist-bindings-pyroot %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so @@ -2430,6 +2420,10 @@ fi %{emacs_lispdir}/root/*.el %changelog +* Tue Feb 24 2015 Mattias Ellert - 5.34.26-1 +- Update to 5.34.26 +- Drop patch root-xrdversion.patch + * Thu Jan 29 2015 Mattias Ellert - 5.34.24-3 - Rebuild with fixed cairo (bz 1183242) diff --git a/sources b/sources index 2a3f5cd..667e107 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -8428348c943e4cbb58fb188dcb3d02c5 root-5.34.24.tar.xz +baf87e434af88ecbbdfc47ab49608b57 root-5.34.26.tar.xz afb35390554c43a7d92576a6d9d3ae8a usa.root From 764ed778347e178b0b949c850312ead7967fa228 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 4 Apr 2015 07:18:09 +0200 Subject: [PATCH 065/344] Update to 5.34.28 - Merge emacs support files into main package (guidelines updated) --- root-gcc5-1.patch | 69 +++++++++++++++++++++++++++++++++++++++++ root-gcc5-2.patch | 76 +++++++++++++++++++++++++++++++++++++++++++++ root-gcc5-3.patch | 34 ++++++++++++++++++++ root-gcc5-4.patch | 49 +++++++++++++++++++++++++++++ root-meta.patch | 8 +++-- root.spec | 79 +++++++++++++++++++---------------------------- sources | 2 +- 7 files changed, 267 insertions(+), 50 deletions(-) create mode 100644 root-gcc5-1.patch create mode 100644 root-gcc5-2.patch create mode 100644 root-gcc5-3.patch create mode 100644 root-gcc5-4.patch 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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 >*) 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 "); - delete[] whichTypesCint; - } +- // We cannot autoload this but ROOT needs it (ROOT-7103) +- ProcessLine("#include "); + // 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 "); + delete[] whichTypesCint; + } ++ // We cannot autoload this but ROOT needs it (ROOT-7103) ++ ProcessLine("#include "); + } - } + //______________________________________________________________________________ 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 - 5.34.28-1 +- Update to 5.34.28 +- Merge emacs support files into main package (guidelines updated) + * Tue Feb 24 2015 Mattias Ellert - 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 From 9af453a9f934fc7e209b2fb3514fdf7cf0baebbd Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 25 Apr 2015 09:56:52 +0200 Subject: [PATCH 066/344] Update to 5.34.30 - New sub-package: root-python3 - Disable hadoop/hdfs support for F23+ (not installable) - Drop previously backported gcc 5 patches --- root-gcc5-1.patch | 69 ----------------- root-gcc5-2.patch | 76 ------------------- root-gcc5-3.patch | 34 --------- root-gcc5-4.patch | 49 ------------ root-usa.patch | 14 ++-- root.spec | 186 +++++++++++++++++++++++++++++++++------------- sources | 2 +- 7 files changed, 143 insertions(+), 287 deletions(-) delete mode 100644 root-gcc5-1.patch delete mode 100644 root-gcc5-2.patch delete mode 100644 root-gcc5-3.patch delete mode 100644 root-gcc5-4.patch diff --git a/root-gcc5-1.patch b/root-gcc5-1.patch deleted file mode 100644 index ab826cb..0000000 --- a/root-gcc5-1.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 126c993d3c432ed09abc963bdbb1dc18f229a3e3 Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -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 ---- - 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 deleted file mode 100644 index 6343555..0000000 --- a/root-gcc5-2.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 7dec562d1d5723b7eea08d08659dc9dc4e79c8ca Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -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 ---- - 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 deleted file mode 100644 index 740561e..0000000 --- a/root-gcc5-3.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0a2381e82798f6fad2013d553c76b5f321b8a6a3 Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -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 ---- - 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 deleted file mode 100644 index 14f8cd9..0000000 --- a/root-gcc5-4.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 19f4cf3c144c4a2b6e2e758c601fc3976e9baa39 Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -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 ---- - 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 >*) 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-usa.patch b/root-usa.patch index 4b5a380..d34da18 100644 --- a/root-usa.patch +++ b/root-usa.patch @@ -1,13 +1,15 @@ -diff -ur root-5.34.19.orig/hist/histpainter/src/THistPainter.cxx root-5.34.19/hist/histpainter/src/THistPainter.cxx ---- root-5.34.19.orig/hist/histpainter/src/THistPainter.cxx 2014-07-09 16:50:16.000000000 +0200 -+++ root-5.34.19/hist/histpainter/src/THistPainter.cxx 2014-07-26 23:01:20.083002118 +0200 -@@ -2305,7 +2305,8 @@ +diff -ur root-5.34.30.orig/hist/histpainter/src/THistPainter.cxx root-5.34.30/hist/histpainter/src/THistPainter.cxx +--- root-5.34.30.orig/hist/histpainter/src/THistPainter.cxx 2015-04-23 18:30:25.000000000 +0200 ++++ root-5.34.30/hist/histpainter/src/THistPainter.cxx 2015-04-24 20:05:03.349081003 +0200 +@@ -2367,7 +2367,10 @@ TH2Poly *p = new TH2Poly("USA","USA Population",lon1,lon2,lat1,lat2); TFile *f; - f = TFile::Open("http://root.cern.ch/files/usa.root"); -+ // f = TFile::Open("http://root.cern.ch/files/usa.root"); -+ f = TFile::Open("$(ROOTSYS)/tutorials/hist/usa.root"); ++ if (!gSystem->AccessPathName("$(ROOTSYS)/tutorials/hist/usa.root")) ++ f = TFile::Open("$(ROOTSYS)/tutorials/hist/usa.root"); ++ else ++ f = TFile::Open("http://root.cern.ch/files/usa.root"); TMultiGraph *mg; TKey *key; diff --git a/root.spec b/root.spec index 6dd2cac..a559c1f 100644 --- a/root.spec +++ b/root.spec @@ -7,6 +7,10 @@ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif +%if %{?fedora}%{!?fedora:0} >= 15 +%global py3soabi %(%{__python3} -c "from distutils import sysconfig; print(sysconfig.get_config_vars().get('SOABI'))" | sed -e 's/None//' -e 's/^..*$/\.&/') +%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 @@ -25,10 +29,16 @@ %global xrootd 1 +%if %{?fedora}%{!?fedora:0} >= 20 && %{?fedora}%{!?fedora:0} < 23 +%global hadoop 1 +%else +%global hadoop 0 +%endif + %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.28 +Version: 5.34.30 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -74,11 +84,6 @@ 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 @@ -128,6 +133,9 @@ BuildRequires: python-devel %if %{?rhel}%{!?rhel:0} == 5 BuildRequires: python26-devel %endif +%if %{?fedora}%{!?fedora:0} >= 15 +BuildRequires: python3-devel +%endif %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 BuildRequires: qt4-devel %endif @@ -149,7 +157,7 @@ BuildRequires: cfitsio-devel BuildRequires: davix-devel >= 0.2.8 BuildRequires: gfal2-devel BuildRequires: srm-ifce-devel -%if %{?fedora}%{!?fedora:0} >= 20 +%if %{hadoop} BuildRequires: hadoop-devel %endif BuildRequires: emacs @@ -383,6 +391,16 @@ This package contains the Python extension for ROOT. This package provide a Python interface to ROOT, and a ROOT interface to Python. %endif +%if %{?fedora}%{!?fedora:0} >= 15 +%package python3 +Summary: Python extension for ROOT +Group: Applications/Engineering + +%description python3 +This package contains the Python extension for ROOT. This package +provide a Python interface to ROOT, and a ROOT interface to Python. +%endif + %package ruby Summary: Ruby extension for ROOT Group: Applications/Engineering @@ -652,7 +670,7 @@ Group: Applications/Engineering %description io-gfal This package contains the Grid File Access Library extension for ROOT. -%if %{?fedora}%{!?fedora:0} >= 20 +%if %{hadoop} %package io-hdfs Summary: Hadoop File System input/output library for ROOT Group: Applications/Engineering @@ -1139,10 +1157,6 @@ 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 \ @@ -1209,6 +1223,9 @@ sed '/CopyFileFromEtcDir("ROOT.css");/a\ CopyFileFromEtcDir("root-banner.png");\ CopyFileFromEtcDir("rootdrawing-logo.png");' -i html/src/THtml.cxx +# Use local copy of input file during documentation generation +install -p -m 644 %{SOURCE6} tutorials/hist/usa.root + # Rename canvases to avoid name conflicts during doc generation sed s/c1/c1c/g -i tutorials/graphics/earth.C sed s/c3/c3c/g -i tutorials/graphs/multipalette.C @@ -1221,6 +1238,13 @@ sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ -i bindings/pyroot26/Module.mk %endif +%if %{?fedora}%{!?fedora:0} >= 15 +# Build PyROOT for python 3 +cp -pr bindings/pyroot bindings/pyroot3 +sed -e 's/= pyroot/= pyroot3/' -e 's/python /python3 /' \ + -i bindings/pyroot3/Module.mk +%endif + %build unset QTDIR unset QTLIB @@ -1241,9 +1265,23 @@ unset QTINC --disable-builtin-lzma \ --disable-builtin-pcre \ --disable-builtin-zlib \ + --disable-afdsmgrd \ + --disable-afs \ + --disable-alien \ + --disable-alloc \ --enable-asimage \ --enable-astiff \ --enable-bonjour \ + --disable-castor \ + --disable-chirp \ +%ifarch %{ix86} x86_64 + --enable-cintex \ +%else + --disable-cintex \ +%endif + --disable-cling \ + --disable-cxx11 \ + --disable-cxx14 \ --enable-davix \ --enable-dcache \ --enable-explicitlink \ @@ -1252,10 +1290,11 @@ unset QTINC --enable-gdml \ --enable-genvector \ --enable-gfal \ + --disable-glite \ --enable-globus \ --enable-gsl-shared \ --enable-gviz \ -%if %{?fedora}%{!?fedora:0} >= 20 +%if %{hadoop} --enable-hdfs \ %else --disable-hdfs \ @@ -1263,19 +1302,23 @@ unset QTINC --enable-http \ --enable-krb5 \ --enable-ldap \ + --disable-libcxx \ --enable-mathmore \ --enable-memstat \ --enable-minuit2 \ + --disable-monalisa \ --enable-mysql \ --enable-odbc \ --enable-opengl \ + --disable-oracle \ --enable-pgsql \ - --enable-python \ + --disable-pythia6 \ %if %{?fedora}%{!?fedora:0} >= 18 || %{?rhel}%{!?rhel:0} >= 5 --enable-pythia8 \ %else --disable-pythia8 \ %endif + --enable-python \ %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 6 --enable-qt \ --enable-qtgsi \ @@ -1286,16 +1329,21 @@ unset QTINC --enable-reflex \ --enable-rfio \ --enable-roofit \ + --disable-rpath \ --enable-ruby \ + --disable-sapdb \ --enable-shadowpw \ --enable-shared \ --enable-soversion \ --enable-sqlite \ + --disable-srp \ --enable-ssl \ --enable-table \ --enable-tmva \ --enable-unuran \ + --disable-vc \ --enable-vdt \ + --disable-werror \ --enable-x11 \ --enable-xft \ --enable-xml \ @@ -1304,30 +1352,6 @@ unset QTINC %else --disable-xrootd \ %endif -%ifarch %{ix86} x86_64 - --enable-cintex \ -%else - --disable-cintex \ -%endif - --disable-afdsmgrd \ - --disable-afs \ - --disable-alien \ - --disable-alloc \ - --disable-castor \ - --disable-chirp \ - --disable-cling \ - --disable-cxx11 \ - --disable-cxx14 \ - --disable-glite \ - --disable-libcxx \ - --disable-monalisa \ - --disable-oracle \ - --disable-pythia6 \ - --disable-rpath \ - --disable-sapdb \ - --disable-srp \ - --disable-vc \ - --disable-werror \ --fail-on-missing make OPTFLAGS="%{optflags}" \ @@ -1346,6 +1370,20 @@ make OPTFLAGS="%{optflags}" \ ROOTPY="pyroot26/ROOT.py pyroot26/cppyy.py" %endif +%if %{?fedora}%{!?fedora:0} >= 15 +# Build PyROOT for python 3 +mkdir pyroot3 +cp bindings/pyroot3/ROOT.py pyroot3 +cp bindings/pyroot3/cppyy.py pyroot3 +make OPTFLAGS="%{optflags}" \ + EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ + MODULES="build cint/cint core/utils bindings/pyroot3" \ + PYTHONINCDIR=`pkg-config --cflags python3 | sed 's/-I//'` \ + PYTHONLIB=`pkg-config --libs python3` \ + PYROOTLIB=pyroot3/libPyROOT.so \ + ROOTPY="pyroot3/ROOT.py pyroot3/cppyy.py" +%endif + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} @@ -1418,6 +1456,14 @@ install -m 644 pyroot26/ROOT.py* %{buildroot}%{python26_sitearch} install -m 644 pyroot26/cppyy.py* %{buildroot}%{python26_sitearch} %endif +%if %{?fedora}%{!?fedora:0} >= 15 +mkdir -p %{buildroot}%{python3_sitearch} +install pyroot3/libPyROOT.so.%{libversion} \ + %{buildroot}%{python3_sitearch}/libPyROOT%{py3soabi}.so +install -m 644 pyroot3/ROOT.py* %{buildroot}%{python3_sitearch} +install -m 644 pyroot3/cppyy.py* %{buildroot}%{python3_sitearch} +%endif + # Same for the Ruby interface library mkdir -p %{buildroot}%{ruby_installdir} mv %{buildroot}%{_libdir}/%{name}/libRuby.so.%{libversion} \ @@ -1479,7 +1525,7 @@ rm TDataSetManager/P020_TDataSetManagerAliEn.C rm TFile/P030_TCastorFile.C rm TFile/P060_TChirpFile.C rm TFile/P070_TAlienFile.C -%if %{?fedora}%{!?fedora:0} < 20 +%if %{hadoop} == 0 rm TFile/P110_THDFSFile.C %endif rm TGLManager/P020_TGWin32GLManager.C @@ -1493,7 +1539,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 +%if %{hadoop} == 0 rm TSystem/P060_THDFSSystem.C %endif rm TViewerX3D/P020_TQtViewerX3D.C @@ -1529,7 +1575,6 @@ echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C -install -m 644 -p %{SOURCE6} tutorials/hist/usa.root LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C rm .rootrc @@ -1609,7 +1654,7 @@ if [ "$1" -ge "1" ] ; then /sbin/service proofd condrestart >/dev/null 2>&1 || : fi -%if %{?rhel}%{!?rhel:0} == 5 +%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} == 5 %post python [ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ @@ -1619,14 +1664,17 @@ fi libPyROOT.so %{python_sitearch}/libPyROOT.so 20 /sbin/ldconfig -%postun python -p /sbin/ldconfig - %preun python if [ $1 = 0 ]; then %{_sbindir}/update-alternatives --remove \ libPyROOT.so %{python_sitearch}/libPyROOT.so fi +%else +%post python -p /sbin/ldconfig +%endif +%postun python -p /sbin/ldconfig +%if %{?rhel}%{!?rhel:0} == 5 %post python26 [ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ @@ -1643,9 +1691,25 @@ if [ $1 = 0 ]; then fi %postun python26 -p /sbin/ldconfig -%else -%post python -p /sbin/ldconfig -%postun python -p /sbin/ldconfig +%endif + +%if %{?fedora}%{!?fedora:0} >= 15 +%post python3 +[ -h %{_libdir}/%{name}/libPyROOT.so.%{libversion} ] && \ + readlink %{_libdir}/%{name}/libPyROOT.so.%{libversion} | \ + grep -q site-packages && rm %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%{_sbindir}/update-alternatives --install \ + %{_libdir}/%{name}/libPyROOT.so.%{libversion} \ + libPyROOT.so %{python3_sitearch}/libPyROOT%{py3soabi}.so 10 +/sbin/ldconfig + +%preun python3 +if [ $1 = 0 ]; then + %{_sbindir}/update-alternatives --remove \ + libPyROOT.so %{python3_sitearch}/libPyROOT%{py3soabi}.so +fi + +%postun python3 -p /sbin/ldconfig %endif %post core -p /sbin/ldconfig @@ -1728,7 +1792,7 @@ fi %postun io-dcache -p /sbin/ldconfig %post io-gfal -p /sbin/ldconfig %postun io-gfal -p /sbin/ldconfig -%if %{?fedora}%{!?fedora:0} >= 20 +%if %{hadoop} %post io-hdfs -p /sbin/ldconfig %postun io-hdfs -p /sbin/ldconfig %endif @@ -1954,7 +2018,7 @@ fi %{_initrddir}/rootd %files python -f includelist-bindings-pyroot -%if %{?rhel}%{!?rhel:0} == 5 +%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} == 5 %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so %{_libdir}/%{name}/libPyROOT.so.5 @@ -1962,7 +2026,7 @@ fi %else %{_libdir}/%{name}/libPyROOT.* %endif -%{python_sitearch}/libPyROOT.* +%{python_sitearch}/libPyROOT.so %{python_sitearch}/ROOT.py* %{python_sitearch}/cppyy.py* @@ -1972,11 +2036,23 @@ fi %{_libdir}/%{name}/libPyROOT.so %{_libdir}/%{name}/libPyROOT.so.5 %ghost %{_libdir}/%{name}/libPyROOT.so.%{libversion} -%{python26_sitearch}/libPyROOT.* +%{python26_sitearch}/libPyROOT.so %{python26_sitearch}/ROOT.py* %{python26_sitearch}/cppyy.py* %endif +%if %{?fedora}%{!?fedora:0} >= 15 +%files python3 -f includelist-bindings-pyroot +%{_libdir}/%{name}/libPyROOT.rootmap +%{_libdir}/%{name}/libPyROOT.so +%{_libdir}/%{name}/libPyROOT.so.5 +%ghost %{_libdir}/%{name}/libPyROOT.so.%{libversion} +%{python3_sitearch}/libPyROOT%{py3soabi}.so +%{python3_sitearch}/ROOT.py +%{python3_sitearch}/cppyy.py +%{python3_sitearch}/__pycache__ +%endif + %files ruby -f includelist-bindings-ruby %{_libdir}/%{name}/libRuby.* %{ruby_installdir}/libRuby.* @@ -2144,7 +2220,7 @@ fi %{_libdir}/%{name}/libGFAL.* %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C -%if %{?fedora}%{!?fedora:0} >= 20 +%if %{hadoop} %files io-hdfs -f includelist-io-hdfs %{_libdir}/%{name}/libHDFS.* %{_datadir}/%{name}/plugins/TFile/P110_THDFSFile.C @@ -2401,6 +2477,12 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Fri Apr 24 2015 Mattias Ellert - 5.34.30-1 +- Update to 5.34.30 +- New sub-package: root-python3 +- Disable hadoop/hdfs support for F23+ (not installable) +- Drop previously backported gcc 5 patches + * Fri Apr 03 2015 Mattias Ellert - 5.34.28-1 - Update to 5.34.28 - Merge emacs support files into main package (guidelines updated) diff --git a/sources b/sources index eb2cd1b..696318d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -87647e87b2ab5634759e0efe99ec1543 root-5.34.28.tar.xz +a28f5c9713ff920ac8069975f32d391c root-5.34.30.tar.xz afb35390554c43a7d92576a6d9d3ae8a usa.root From 8875471441a481158452507d2852460832c15e23 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Thu, 18 Jun 2015 09:52:37 +0200 Subject: [PATCH 067/344] Minor fixes --- root-fontconfig.patch | 6 ++--- root.spec | 52 +++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 620dffa..fe79d0b 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -485,7 +485,7 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ + break; + case 24: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym"); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; @@ -945,7 +945,7 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr + break; + case 24: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym"); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; @@ -1262,7 +1262,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ + break; + case 23: + FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym"); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; diff --git a/root.spec b/root.spec index a559c1f..4daeca1 100644 --- a/root.spec +++ b/root.spec @@ -1233,16 +1233,20 @@ sed s/c1/c1simp/g -i tutorials/hsimple.C %if %{?rhel}%{!?rhel:0} == 5 # Build PyROOT for python 2.6 -cp -pr bindings/pyroot bindings/pyroot26 -sed -e 's/= pyroot/= pyroot26/' -e 's/python /python26 /' \ - -i bindings/pyroot26/Module.mk +# Use "python" as name for the build directory +# THTML ignores directories named "python" +cp -pr bindings/pyroot bindings/python +sed -e 's/python /python26 /' -e 's/= pyroot/= python/' \ + -i bindings/python/Module.mk %endif %if %{?fedora}%{!?fedora:0} >= 15 # Build PyROOT for python 3 -cp -pr bindings/pyroot bindings/pyroot3 -sed -e 's/= pyroot/= pyroot3/' -e 's/python /python3 /' \ - -i bindings/pyroot3/Module.mk +# Use "python" as name for the build directory +# THTML ignores directories named "python" +cp -pr bindings/pyroot bindings/python +sed -e 's/python /python3 /' -e 's/= pyroot/= python/' \ + -i bindings/python/Module.mk %endif %build @@ -1359,29 +1363,29 @@ make OPTFLAGS="%{optflags}" \ %if %{?rhel}%{!?rhel:0} == 5 # Build PyROOT for python 2.6 -mkdir pyroot26 -cp bindings/pyroot26/ROOT.py pyroot26 -cp bindings/pyroot26/cppyy.py pyroot26 +mkdir python +cp bindings/python/ROOT.py python +cp bindings/python/cppyy.py python make OPTFLAGS="%{optflags}" \ EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ - MODULES="build cint/cint core/utils bindings/pyroot26" \ + MODULES="build cint/cint core/utils bindings/python" \ PYTHONINCDIR=/usr/include/python2.6 PYTHONLIB=-lpython2.6 \ - PYROOTLIB=pyroot26/libPyROOT.so \ - ROOTPY="pyroot26/ROOT.py pyroot26/cppyy.py" + PYROOTLIB=python/libPyROOT.so \ + ROOTPY="python/ROOT.py python/cppyy.py" %endif %if %{?fedora}%{!?fedora:0} >= 15 # Build PyROOT for python 3 -mkdir pyroot3 -cp bindings/pyroot3/ROOT.py pyroot3 -cp bindings/pyroot3/cppyy.py pyroot3 +mkdir python +cp bindings/python/ROOT.py python +cp bindings/python/cppyy.py python make OPTFLAGS="%{optflags}" \ EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ - MODULES="build cint/cint core/utils bindings/pyroot3" \ + MODULES="build cint/cint core/utils bindings/python" \ PYTHONINCDIR=`pkg-config --cflags python3 | sed 's/-I//'` \ PYTHONLIB=`pkg-config --libs python3` \ - PYROOTLIB=pyroot3/libPyROOT.so \ - ROOTPY="pyroot3/ROOT.py pyroot3/cppyy.py" + PYROOTLIB=python/libPyROOT.so \ + ROOTPY="python/ROOT.py python/cppyy.py" %endif %install @@ -1450,18 +1454,18 @@ ln -s ..`sed 's!%{_libdir}!!' <<< %{python_sitearch}`/libPyROOT.so \ %if %{?rhel}%{!?rhel:0} == 5 mkdir -p %{buildroot}%{python26_sitearch} -install pyroot26/libPyROOT.so.%{libversion} \ +install python/libPyROOT.so.%{libversion} \ %{buildroot}%{python26_sitearch}/libPyROOT.so -install -m 644 pyroot26/ROOT.py* %{buildroot}%{python26_sitearch} -install -m 644 pyroot26/cppyy.py* %{buildroot}%{python26_sitearch} +install -m 644 python/ROOT.py* %{buildroot}%{python26_sitearch} +install -m 644 python/cppyy.py* %{buildroot}%{python26_sitearch} %endif %if %{?fedora}%{!?fedora:0} >= 15 mkdir -p %{buildroot}%{python3_sitearch} -install pyroot3/libPyROOT.so.%{libversion} \ +install python/libPyROOT.so.%{libversion} \ %{buildroot}%{python3_sitearch}/libPyROOT%{py3soabi}.so -install -m 644 pyroot3/ROOT.py* %{buildroot}%{python3_sitearch} -install -m 644 pyroot3/cppyy.py* %{buildroot}%{python3_sitearch} +install -m 644 python/ROOT.py* %{buildroot}%{python3_sitearch} +install -m 644 python/cppyy.py* %{buildroot}%{python3_sitearch} %endif # Same for the Ruby interface library From dc8c69485d15320e80436c48db423403226a6d7b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 18 Jun 2015 22:28:59 +0000 Subject: [PATCH 068/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 4daeca1..44a5362 100644 --- a/root.spec +++ b/root.spec @@ -40,7 +40,7 @@ Name: root Version: 5.34.30 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2481,6 +2481,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Thu Jun 18 2015 Fedora Release Engineering - 5.34.30-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Fri Apr 24 2015 Mattias Ellert - 5.34.30-1 - Update to 5.34.30 - New sub-package: root-python3 From fda3bc6d17fddeea6a8ce66701f7329479556d00 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 3 Jul 2015 16:51:58 +0200 Subject: [PATCH 069/344] Update to 5.34.32 - New sub-package: root-fonts (STIX version 0.9 required by TMathText) - Use GNU Free instead of Liberation, works better with TMathText - Fix segfault when embedding Type 1 fonts - Drop patch root-no-extra-formats.patch (workaround for above problem) --- root-fontconfig.patch | 1367 +++++++++++++++-------------------- root-html.C | 3 - root-no-extra-formats.patch | 20 - root-type1-embed.patch | 93 +++ root.spec | 130 ++-- sources | 2 +- 6 files changed, 783 insertions(+), 832 deletions(-) delete mode 100644 root-no-extra-formats.patch create mode 100644 root-type1-embed.patch diff --git a/root-fontconfig.patch b/root-fontconfig.patch index fe79d0b..f148a51 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,7 +1,7 @@ -diff -ur root-5.34.20.orig/core/base/src/TApplication.cxx root-5.34.20/core/base/src/TApplication.cxx ---- root-5.34.20.orig/core/base/src/TApplication.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/core/base/src/TApplication.cxx 2014-08-16 19:24:53.337132201 +0200 -@@ -265,22 +265,11 @@ +diff -ur root-5.34.32.orig/core/base/src/TApplication.cxx root-5.34.32/core/base/src/TApplication.cxx +--- root-5.34.32.orig/core/base/src/TApplication.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/core/base/src/TApplication.cxx 2015-06-30 00:15:36.347566719 +0200 +@@ -273,22 +273,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.20.orig/core/base/src/TApplication.cxx root-5.34.20/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 -@@ -294,7 +283,6 @@ +@@ -302,7 +291,6 @@ } } #endif @@ -34,9 +34,9 @@ diff -ur root-5.34.20.orig/core/base/src/TApplication.cxx root-5.34.20/core/base // Create WM dependent application environment if (fAppImp) -diff -ur root-5.34.20.orig/graf2d/graf/inc/TTF.h root-5.34.20/graf2d/graf/inc/TTF.h ---- root-5.34.20.orig/graf2d/graf/inc/TTF.h 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf2d/graf/inc/TTF.h 2014-08-16 19:24:53.338132209 +0200 +diff -ur root-5.34.32.orig/graf2d/graf/inc/TTF.h root-5.34.32/graf2d/graf/inc/TTF.h +--- root-5.34.32.orig/graf2d/graf/inc/TTF.h 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/graf/inc/TTF.h 2015-06-30 00:15:36.360566569 +0200 @@ -70,9 +70,8 @@ static FT_BBox fgCBox; // string control box static FT_CharMap fgCharMap[kTTMaxFonts]; // font character map @@ -48,9 +48,9 @@ diff -ur root-5.34.20.orig/graf2d/graf/inc/TTF.h root-5.34.20/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.20.orig/graf2d/graf/Module.mk root-5.34.20/graf2d/graf/Module.mk ---- root-5.34.20.orig/graf2d/graf/Module.mk 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf2d/graf/Module.mk 2014-08-16 19:24:53.338132209 +0200 +diff -ur root-5.34.32.orig/graf2d/graf/Module.mk root-5.34.32/graf2d/graf/Module.mk +--- root-5.34.32.orig/graf2d/graf/Module.mk 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/graf/Module.mk 2015-06-30 00:15:36.360566569 +0200 @@ -46,7 +46,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ @@ -60,19 +60,10 @@ diff -ur root-5.34.20.orig/graf2d/graf/Module.mk root-5.34.20/graf2d/graf/Module $(GRAFDS): $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/TTF.cxx ---- root-5.34.20.orig/graf2d/graf/src/TTF.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf2d/graf/src/TTF.cxx 2014-08-16 20:48:07.427205257 +0200 -@@ -17,15 +17,13 @@ - // // - ////////////////////////////////////////////////////////////////////////// - --// RConfigure.h is needed for TTFFONTDIR --#include "RConfigure.h" -- - #include "TTF.h" - #include "TSystem.h" - #include "TEnv.h" +diff -ur root-5.34.32.orig/graf2d/graf/src/TTF.cxx root-5.34.32/graf2d/graf/src/TTF.cxx +--- root-5.34.32.orig/graf2d/graf/src/TTF.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/graf/src/TTF.cxx 2015-07-02 10:10:03.352185217 +0200 +@@ -26,6 +26,7 @@ #include "TMath.h" #include "TError.h" @@ -80,7 +71,7 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ // to scale fonts to the same size as the old TT version const Float_t kScale = 0.93376068; -@@ -40,10 +38,9 @@ +@@ -40,10 +41,9 @@ Int_t TTF::fgWidth = 0; Int_t TTF::fgAscent = 0; Int_t TTF::fgCurFontIdx = -1; @@ -92,7 +83,24 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ FT_Matrix *TTF::fgRotMatrix; FT_Library TTF::fgLibrary; FT_BBox TTF::fgCBox; -@@ -87,7 +84,6 @@ +@@ -75,6 +75,16 @@ + return; + } + ++ // Add root's font directory ++ const char *ttpath = gEnv->GetValue("Root.TTFontPath", ++# ifdef TTFFONTDIR ++ TTFFONTDIR ++# else ++ "$(ROOTSYS)/fonts" ++# endif ++ ); ++ FcConfigAppFontAddDir (NULL, (const FcChar8*)ttpath); ++ + // load default font (arialbd) + SetTextFont(62); + } +@@ -87,7 +97,6 @@ if (!fgInit) return; for (int i = 0; i < fgFontCount; i++) { @@ -100,26 +108,31 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ FT_Done_Face(fgFace[i]); } if (fgRotMatrix) delete fgRotMatrix; -@@ -112,12 +108,15 @@ +@@ -112,12 +121,19 @@ charmap = fgFace[fgCurFontIdx]->charmaps[i]; platform = charmap->platform_id; encoding = charmap->encoding_id; - if ((platform == 3 && encoding == 1) || + if ((platform == 3 && encoding == 1 && -+ (fgFontID[fgCurFontIdx] != 12 && fgFontID[fgCurFontIdx] != 15)) || ++ (fgFontID[fgCurFontIdx] != 12 && ++ fgFontID[fgCurFontIdx] != 14 && ++ fgFontID[fgCurFontIdx] != 15)) || (platform == 0 && encoding == 0) || ++ (platform == 7 && encoding == 2 && ++ (fgFontID[fgCurFontIdx] == 12 || ++ fgFontID[fgCurFontIdx] == 14 || ++ fgFontID[fgCurFontIdx] == 15)) || (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "wingding.ttf")) || -+ fgFontID[fgCurFontIdx] == 14) || -+ (platform == 7 && encoding == 2 && -+ (fgFontID[fgCurFontIdx] == 12 || fgFontID[fgCurFontIdx] == 15)) || - (platform == 1 && encoding == 0 && +- (platform == 1 && encoding == 0 && - !strcmp(fgFontName[fgCurFontIdx], "symbol.ttf"))) -+ (fgFontID[fgCurFontIdx] == 12 || fgFontID[fgCurFontIdx] == 15))) ++ (fgFontID[fgCurFontIdx] == 12 || ++ fgFontID[fgCurFontIdx] == 14 || ++ fgFontID[fgCurFontIdx] == 15))) { fgCharMap[fgCurFontIdx] = charmap; if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx])) -@@ -381,27 +380,147 @@ +@@ -381,27 +397,147 @@ if (!fontname || !fontname[0]) { Warning("TTF::SetTextFont", @@ -280,7 +293,7 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ } } -@@ -409,161 +528,280 @@ +@@ -409,161 +545,216 @@ if (fgFontCount >= kTTMaxFonts) { Error("TTF::SetTextFont", "too many fonts opened (increase kTTMaxFont = %d)", kTTMaxFonts); @@ -304,250 +317,189 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ + char *ttfont = NULL; + int ttindex = 0; -+ if (fontid >= 16 && fontid <= 28) { -+ // 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 (fontid) { -+ case 16: -+ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); -+ break; -+ case 17: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); -+ break; -+ case 18: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); -+ break; -+ case 19: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); -+ break; -+ case 20: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); -+ break; -+ case 21: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); -+ break; -+ case 22: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); -+ break; -+ case 23: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); -+ break; -+ case 24: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); -+ break; -+ case 25: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); -+ break; -+ case 26: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); -+ break; -+ case 27: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); -+ break; -+ case 28: -+ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); -+ break; -+ } -+ } - if (!ttfont) { +- if (!ttfont) { - Error("TTF::SetTextFont", "font file %s not found in path", fontname); - if (fgFontCount) { - Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]); -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; -+ -+ pat = FcPatternCreate (); -+ -+ 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; -+ 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; -+ 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; -+ case 4: -+ 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; -+ case 6: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 14: -+ 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; -+ case 17: -+ 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; -+ case 19: -+ 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; -+ 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; -+ 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; -+ 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; -+ case 24: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym"); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ 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) +- fgCurFontIdx = 0; // use font 0 (default font, set in ctor) - return 0; - } else { - return 1; -+ return; -+ break; - } +- } ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; + -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ char* ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ ttfont = StrDup (ttfnt); -+ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); -+ FcPatternDestroy (match); ++ pat = FcPatternCreate (); ++ ++ switch (fontid) { ++ case 1: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 2: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 3: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 4: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 5: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 6: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 7: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 8: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 9: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 10: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 11: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ 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; ++ case 13: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 14: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 21: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 22: ++ 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*)"stixsize2"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 24: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 25: ++ 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*)"stixsize4"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 27: ++ 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*)"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; ++ default: ++ Error("TTF::SetTextFont", "font %i not known to ROOT", fontid); + FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); ++ Warning("TTF::SetTextFont", "using default font"); ++ fgCurFontIdx = 0; // use font 0 (default font, set in ctor) ++ return; ++ break; } ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); ++ ttfont = StrDup (ttfnt); ++ FcPatternGetInteger (match, FC_INDEX, 0, &ttindex); ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); ++ if (set) FcCharSetDestroy (set); ++ FT_Face tface = 0; - if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) { @@ -685,9 +637,9 @@ diff -ur root-5.34.20.orig/graf2d/graf/src/TTF.cxx root-5.34.20/graf2d/graf/src/ } //______________________________________________________________________________ -diff -ur root-5.34.20.orig/graf2d/postscript/Module.mk root-5.34.20/graf2d/postscript/Module.mk ---- root-5.34.20.orig/graf2d/postscript/Module.mk 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf2d/postscript/Module.mk 2014-08-16 19:24:53.363132437 +0200 +diff -ur root-5.34.32.orig/graf2d/postscript/Module.mk root-5.34.32/graf2d/postscript/Module.mk +--- root-5.34.32.orig/graf2d/postscript/Module.mk 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/postscript/Module.mk 2015-06-30 00:15:36.361566558 +0200 @@ -50,7 +50,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \ @@ -697,9 +649,9 @@ diff -ur root-5.34.20.orig/graf2d/postscript/Module.mk root-5.34.20/graf2d/posts $(POSTSCRIPTDS): $(POSTSCRIPTH) $(POSTSCRIPTL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/graf2d/postscript/src/TPostScript.cxx ---- root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf2d/postscript/src/TPostScript.cxx 2014-08-16 20:30:03.271041920 +0200 +diff -ur root-5.34.32.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.32/graf2d/postscript/src/TPostScript.cxx +--- root-5.34.32.orig/graf2d/postscript/src/TPostScript.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/postscript/src/TPostScript.cxx 2015-07-02 10:07:45.737737725 +0200 @@ -238,6 +238,7 @@ #include #include @@ -708,7 +660,7 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr #include "Riostream.h" #include "Byteswap.h" -@@ -1511,63 +1512,244 @@ +@@ -1511,63 +1512,179 @@ { // Embed font in PS file. @@ -767,233 +719,168 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr + + char *ttfont = NULL; + -+ if (fontid >= 16 && fontid <= 28) { -+ // 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 (fontid) { -+ case 16: -+ ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission); -+ break; -+ case 17: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission); -+ break; -+ case 18: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission); -+ break; -+ case 19: -+ ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission); -+ break; -+ case 20: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission); -+ break; -+ case 21: -+ ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission); -+ break; -+ case 22: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission); -+ break; -+ case 23: -+ ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission); -+ break; -+ case 24: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission); -+ break; -+ case 25: -+ ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission); -+ break; -+ case 26: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission); -+ break; -+ case 27: -+ ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission); -+ break; -+ case 28: -+ ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission); -+ break; -+ } ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; ++ ++ pat = FcPatternCreate (); ++ ++ switch (fontid) { ++ case 1: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 2: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 3: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 4: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 5: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 6: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 7: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 8: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 9: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 10: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 11: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 12: ++ 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*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 14: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); ++ 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; ++ case 17: ++ 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; ++ case 19: ++ 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*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 21: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 22: ++ 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*)"stixsize2"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 24: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 25: ++ 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*)"stixsize4"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 27: ++ 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*)"stixsize5"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 29: ++ 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; + } + -+ if (!ttfont) { -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; -+ -+ pat = FcPatternCreate (); -+ -+ 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; -+ 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; -+ 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; -+ case 4: -+ 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; -+ case 6: -+ 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; -+ 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; -+ 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; -+ 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; -+ 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; -+ case 12: -+ 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; -+ case 14: -+ 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; -+ case 17: -+ 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; -+ case 19: -+ 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; -+ 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; -+ 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; -+ 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; -+ case 24: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym"); -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); -+ 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; -+ 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; -+ 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; -+ 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; -+ case 29: -+ 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; -+ } -+ -+ FcConfigSubstitute (NULL, pat, FcMatchPattern); -+ FcDefaultSubstitute (pat); -+ match = FcFontMatch (NULL, pat, &result); -+ char *ttfnt; -+ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); -+ ttfont = StrDup(ttfnt); -+ FcPatternDestroy (match); -+ FcPatternDestroy (pat); -+ if (set) FcCharSetDestroy (set); -+ } ++ FcConfigSubstitute (NULL, pat, FcMatchPattern); ++ FcDefaultSubstitute (pat); ++ match = FcFontMatch (NULL, pat, &result); ++ char *ttfnt; ++ FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt); ++ ttfont = StrDup(ttfnt); ++ FcPatternDestroy (match); ++ FcPatternDestroy (pat); ++ if (set) FcCharSetDestroy (set); if(!ttfont) { - Error("TPostScript::FontEmbed", @@ -1004,7 +891,7 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr } else { if (FontEmbedType2(ttfont)) { // nothing -@@ -1576,9 +1758,8 @@ +@@ -1576,9 +1693,8 @@ } else if(FontEmbedType42(ttfont)) { // nothing } else { @@ -1016,7 +903,7 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr } delete [] ttfont; } -@@ -2571,10 +2752,10 @@ +@@ -2571,10 +2687,10 @@ { "Root.PSFont.5", "/Helvetica-Oblique" }, { "Root.PSFont.6", "/Helvetica-Bold" }, { "Root.PSFont.7", "/Helvetica-BoldOblique" }, @@ -1031,9 +918,23 @@ diff -ur root-5.34.20.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.20/gr { "Root.PSFont.12", "/Symbol" }, { "Root.PSFont.13", "/Times-Roman" }, { "Root.PSFont.14", "/ZapfDingbats" }, -diff -ur root-5.34.20.orig/graf3d/gl/Module.mk root-5.34.20/graf3d/gl/Module.mk ---- root-5.34.20.orig/graf3d/gl/Module.mk 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf3d/gl/Module.mk 2014-08-16 19:24:53.377132564 +0200 +@@ -2781,10 +2897,10 @@ + { "Root.PSFont.9", "/FreeMonoOblique" }, + { "Root.PSFont.10", "/FreeMonoBold" }, + { "Root.PSFont.11", "/FreeMonoBoldOblique" }, +- { "Root.PSFont.12", "/SymbolMT" }, ++ { "Root.PSFont.12", "/StandardSymbolsL" }, + { "Root.PSFont.13", "/FreeSerif" }, +- { "Root.PSFont.14", "/Wingdings-Regular" }, +- { "Root.PSFont.15", "/SymbolMT" }, ++ { "Root.PSFont.14", "/Dingbats" }, ++ { "Root.PSFont.15", "/StandardSymbolsL" }, + { "Root.PSFont.STIXGen", "/STIXGeneral" }, + { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, + { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, +diff -ur root-5.34.32.orig/graf3d/gl/Module.mk root-5.34.32/graf3d/gl/Module.mk +--- root-5.34.32.orig/graf3d/gl/Module.mk 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf3d/gl/Module.mk 2015-06-30 00:15:36.362566546 +0200 @@ -78,7 +78,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ @@ -1043,9 +944,9 @@ diff -ur root-5.34.20.orig/graf3d/gl/Module.mk root-5.34.20/graf3d/gl/Module.mk $(GLDS): $(GLH2) $(GLL) $(ROOTCINTTMPDEP) $(MAKEDIR) -diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/gl/src/TGLFontManager.cxx ---- root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf3d/gl/src/TGLFontManager.cxx 2014-08-16 19:24:53.378132573 +0200 +diff -ur root-5.34.32.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.32/graf3d/gl/src/TGLFontManager.cxx +--- root-5.34.32.orig/graf3d/gl/src/TGLFontManager.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf3d/gl/src/TGLFontManager.cxx 2015-07-02 10:19:18.521853256 +0200 @@ -36,6 +36,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1063,7 +964,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray; Bool_t TGLFontManager::fgStaticInitDone = kFALSE; -@@ -444,19 +445,238 @@ +@@ -444,21 +445,175 @@ FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode)); if (it == fFontMap.end()) { @@ -1083,239 +984,176 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ + char *file = NULL; + int ttindex = 0; + -+ 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; -+ } -+ } ++ FcPattern *pat, *match; ++ FcCharSet *set = NULL; ++ FcResult result; + -+ if (!file) { -+ FcPattern *pat, *match; -+ FcCharSet *set = NULL; -+ FcResult result; ++ pat = FcPatternCreate (); + -+ pat = FcPatternCreate (); -+ -+ 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*)"stixsize3"); -+ 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); ++ switch (fileID) { ++ case 0: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 1: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 2: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 3: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 4: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 5: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 6: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 7: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 8: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); ++ break; ++ case 9: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 10: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); ++ 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*)"freeserif"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 13: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); ++ 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*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 20: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 21: ++ 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*)"stixsize2"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 23: ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 24: ++ 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*)"stixsize4"); ++ FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); ++ FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); ++ break; ++ case 26: ++ 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*)"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; -@@ -482,10 +702,14 @@ + switch (mode) + { +@@ -482,10 +637,14 @@ ftfont = new FTGLTextureFont(file); break; default: @@ -1330,7 +1168,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ ftfont->FaceSize(size); const TGLFont &mf = fFontMap.insert(std::make_pair(TGLFont(size, fileID, mode, ftfont, 0), 1)).first->first; out.CopyAttributes(mf); -@@ -567,8 +791,6 @@ +@@ -567,8 +726,6 @@ { if (fgStaticInitDone == kFALSE) InitStatics(); @@ -1339,7 +1177,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ return fgExtendedFontStart; } -@@ -636,28 +858,6 @@ +@@ -636,28 +793,6 @@ fgFontFileArray.Add(new TObjString("wingding")); // 140 fgFontFileArray.Add(new TObjString("symbol")); // 150 @@ -1368,9 +1206,9 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.20/graf3d/ 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.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/TGLText.cxx ---- root-5.34.20.orig/graf3d/gl/src/TGLText.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/graf3d/gl/src/TGLText.cxx 2014-08-16 19:24:53.378132573 +0200 +diff -ur root-5.34.32.orig/graf3d/gl/src/TGLText.cxx root-5.34.32/graf3d/gl/src/TGLText.cxx +--- root-5.34.32.orig/graf3d/gl/src/TGLText.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf3d/gl/src/TGLText.cxx 2015-07-02 10:23:10.490205011 +0200 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1380,7 +1218,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/ #define FTGL_BITMAP 0 #define FTGL_PIXMAP 1 #define FTGL_OUTLINE 2 -@@ -173,33 +175,91 @@ +@@ -173,33 +175,92 @@ { int fontid = fontnumber / 10; @@ -1418,57 +1256,58 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/ + + switch (fontid) { + case 1: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + break; + case 4: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; + case 5: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + break; ++ case 0: + case 6: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; + case 7: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freesans"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); + 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"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freemono"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC); + break; @@ -1478,12 +1317,12 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/ + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; + case 13: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"freeserif"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; + case 14: -+ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings"); ++ FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"dingbats"); + FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR); + FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN); + break; @@ -1498,7 +1337,7 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/ if (fGLTextFont) delete fGLTextFont; -@@ -207,7 +267,9 @@ +@@ -207,7 +268,9 @@ fGLTextFont = new FTGLPolygonFont(ttfont); @@ -1510,9 +1349,9 @@ diff -ur root-5.34.20.orig/graf3d/gl/src/TGLText.cxx root-5.34.20/graf3d/gl/src/ - delete [] ttfont; + Error("SetGLTextFont","Cannot set FTGL::FaceSize"); } -diff -ur root-5.34.20.orig/gui/gui/src/TGApplication.cxx root-5.34.20/gui/gui/src/TGApplication.cxx ---- root-5.34.20.orig/gui/gui/src/TGApplication.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/gui/gui/src/TGApplication.cxx 2014-08-16 19:24:53.379132582 +0200 +diff -ur root-5.34.32.orig/gui/gui/src/TGApplication.cxx root-5.34.32/gui/gui/src/TGApplication.cxx +--- root-5.34.32.orig/gui/gui/src/TGApplication.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/gui/gui/src/TGApplication.cxx 2015-06-30 00:15:36.363566535 +0200 @@ -83,25 +83,12 @@ gROOT->SetBatch(kFALSE); @@ -1540,9 +1379,9 @@ diff -ur root-5.34.20.orig/gui/gui/src/TGApplication.cxx root-5.34.20/gui/gui/sr } // Create the canvas colors early so they are allocated before -diff -ur root-5.34.20.orig/gui/gui/src/TGSpeedo.cxx root-5.34.20/gui/gui/src/TGSpeedo.cxx ---- root-5.34.20.orig/gui/gui/src/TGSpeedo.cxx 2014-08-13 15:03:22.000000000 +0200 -+++ root-5.34.20/gui/gui/src/TGSpeedo.cxx 2014-08-16 19:24:53.379132582 +0200 +diff -ur root-5.34.32.orig/gui/gui/src/TGSpeedo.cxx root-5.34.32/gui/gui/src/TGSpeedo.cxx +--- root-5.34.32.orig/gui/gui/src/TGSpeedo.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/gui/gui/src/TGSpeedo.cxx 2015-06-30 00:15:36.363566535 +0200 @@ -119,8 +119,7 @@ TString sc; diff --git a/root-html.C b/root-html.C index 82b0244..dda9a93 100644 --- a/root-html.C +++ b/root-html.C @@ -1,7 +1,4 @@ { - gEnv->SetValue("Root.DynamicPath", "@PWD@/lib"); - gEnv->SetValue("Root.MacroPath", "@PWD@/macros"); - gEnv->SetValue("Root.PluginPath", "@PWD@/etc/plugins"); gSystem->AddIncludePath("-I@PWD@/include"); gSystem->AddIncludePath("-I@PWD@/cint/cint/include"); gSystem->AddIncludePath("-I@PWD@/cint/cint/stl"); diff --git a/root-no-extra-formats.patch b/root-no-extra-formats.patch deleted file mode 100644 index a3924f4..0000000 --- a/root-no-extra-formats.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -ur root-5.34.05.orig/tutorials/graphics/tmathtext.C root-5.34.05/tutorials/graphics/tmathtext.C ---- root-5.34.05.orig/tutorials/graphics/tmathtext.C 2013-02-14 23:27:35.000000000 +0100 -+++ root-5.34.05/tutorials/graphics/tmathtext.C 2013-03-01 19:00:01.437565765 +0100 -@@ -17,11 +17,11 @@ - l.DrawMathText(0.27, 0.110, "\\mathbb{N} \\subset \\mathbb{R}"); - l.DrawMathText(0.63, 0.100, "\\hbox{RHIC スピン物理 Нью-Йорк}"); - -- c1->Print("c1.gif"); -- c1->Print("c1.jpg"); -- c1->Print("c1.png"); -- c1->Print("c1.ps"); -- c1->Print("c1.eps"); -+ // c1->Print("c1.gif"); -+ // c1->Print("c1.jpg"); -+ // c1->Print("c1.png"); -+ // c1->Print("c1.ps"); -+ // c1->Print("c1.eps"); - - return c1; - } diff --git a/root-type1-embed.patch b/root-type1-embed.patch new file mode 100644 index 0000000..14a6cfd --- /dev/null +++ b/root-type1-embed.patch @@ -0,0 +1,93 @@ +diff -ur root-5.34.32.orig/graf2d/mathtext/src/fontembedps.cxx root-5.34.32/graf2d/mathtext/src/fontembedps.cxx +--- root-5.34.32.orig/graf2d/mathtext/src/fontembedps.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/graf2d/mathtext/src/fontembedps.cxx 2015-07-02 09:10:36.740969892 +0200 +@@ -30,14 +30,14 @@ + #ifndef LITTLE_ENDIAN + #define LITTLE_ENDIAN 1 + #endif // LITTLE_ENDIAN +-#include "Byteswap.h" +-#define bswap_16(x) Rbswap_16((x)) +-#define bswap_32(x) Rbswap_32((x)) + #else // R__BYTESWAP + #ifdef LITTLE_ENDIAN + #undef LITTLE_ENDIAN + #endif // LITTLE_ENDIAN + #endif // R__BYTESWAP ++#include "Byteswap.h" ++#define bswap_16(x) Rbswap_16((x)) ++#define bswap_32(x) Rbswap_32((x)) + + // References: + // +@@ -225,27 +225,25 @@ + if(magic_number[0] == '\200') { + // IBM PC format printer font binary + +- // FIXME: Maybe the real name can be parsed out of the +- // file +- font_name = ""; +- + struct pfb_segment_header_s segment_header; +- size_t offset = 2; ++ size_t offset = 0; + + // The two char elements of struct pfb_segment_header_s + // are most likely aligned to larger than 1 byte + // boundaries, so copy all the elements individually + segment_header.always_128 = font_data[offset]; + segment_header.type = font_data[offset + 1]; +- memcpy(&segment_header.length, &font_data[offset + 2], +- sizeof(unsigned int)); +- offset += sizeof(unsigned int) + 2; ++ + while (segment_header.type != TYPE_EOF) { +-#ifdef LITTLE_ENDIAN ++ memcpy(&segment_header.length, &font_data[offset + 2], ++ sizeof(unsigned int)); ++ offset += sizeof(unsigned int) + 2; ++#ifndef LITTLE_ENDIAN + segment_header.length = + bswap_32(segment_header.length); + #endif // LITTLE_ENDIAN + char *buffer = new char[segment_header.length]; ++ char *fname; + + memcpy(buffer, &font_data[offset], + segment_header.length); +@@ -265,6 +263,26 @@ + buffer[segment_header.length - 1] = '\n'; + } + ret.append(buffer, segment_header.length); ++ ++ fname = (char*)memmem(buffer, segment_header.length, ++ "/FontName", 9); ++ if (fname) { ++ fname += 9; ++ while (fname < buffer + segment_header.length && ++ isspace(*fname)) { ++ fname++; ++ } ++ if (fname < buffer + segment_header.length && ++ *fname == '/') { ++ fname++; ++ } ++ int len = 0; ++ while (fname + len < buffer + segment_header.length && ++ isgraph(*(fname + len))) { ++ len++; ++ } ++ font_name.assign(fname, len); ++ } + break; + case TYPE_BINARY: + append_asciihex( +@@ -276,6 +294,9 @@ + } + + delete [] buffer; ++ ++ segment_header.always_128 = font_data[offset]; ++ segment_header.type = font_data[offset + 1]; + } + + return ret; diff --git a/root.spec b/root.spec index 44a5362..20a8288 100644 --- a/root.spec +++ b/root.spec @@ -38,9 +38,9 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.30 +Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -49,7 +49,7 @@ URL: http://root.cern.ch/ # The upstream source is modified to exclude proprietary fonts: # wget -N ftp://root.cern.ch/root/root_v%{version}.source.tar.gz # tar -z -x -f root_v%{version}.source.tar.gz -# rm -rf root/fonts +# find root/fonts -type f -a '!' '(' -name 'STIX*' -o -name DroidSansFallback.ttf ')' -exec rm {} ';' # mv root root-%{version} # tar -J -c -f root-%{version}.tar.xz root-%{version} Source0: %{name}-%{version}.tar.xz @@ -76,8 +76,8 @@ Patch3: %{name}-xrootd.patch Patch4: %{name}-meta.patch # Use TLatex in doc generation: Patch5: %{name}-doc-latex.patch -# Don't save in all image formats: -Patch6: %{name}-no-extra-formats.patch +# Fix segfault when embedding Type 1 fonts +Patch6: %{name}-type1-embed.patch # Fixes for HDFS module Patch7: %{name}-hdfs.patch # Don't link to libjvm (handled properly inside libhdfs) @@ -172,33 +172,29 @@ BuildRequires: expat-devel BuildRequires: pythia8-devel >= 8.1.80 %endif %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 -BuildRequires: font(liberationsans) -BuildRequires: font(liberationserif) -BuildRequires: font(liberationmono) +BuildRequires: font(freesans) +BuildRequires: font(freeserif) +BuildRequires: font(freemono) %else -BuildRequires: liberation-fonts +BuildRequires: freefont %endif +# Provides "symbol" and "dingbats" BuildRequires: urw-fonts -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 +# The root-fonts package provides Droid Sans Fallback for EPEL +%if %{?fedora}%{!?fedora:0} >= 11 BuildRequires: font(droidsansfallback) %endif -%if %{?fedora}%{!?fedora:0} >= 18 -# STIX font version 1.1 - not backwards compatible with earlier versions -# We use the texlive supplied version 1.0 instead of font(stix) -BuildRequires: texlive-stix -%else -%if %{?fedora}%{!?fedora:0} >= 14 -# STIX font version 1.0 -BuildRequires: font(stixgeneral) -BuildRequires: font(stixsizeonesym) -%else -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 -# STIX font version 0.9 +# TMathText requires STIX fonts version 0.9 +# Fedora has newer versions that are not backwards compatible +# Fedora 18- and EPEL 7 have STIX fonts version 1.1 (*) +# Fedora 14-17 have STIX fonts version 1.0 +# Fedora 11-13 and EPEL 6 have STIX fonts version 0.9 +# (*) TeXlive in addition provides STIX 1.0 (not in EPEL 7) +# The root-fonts package provides STIX 0.9 where it is missing +%if %{?rhel}%{!?rhel:0} == 6 BuildRequires: font(stixgeneral) BuildRequires: font(stixsize1) %endif -%endif -%endif Requires: hicolor-icon-theme %if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7 Requires: emacs-filesystem >= %{_emacs_version} @@ -245,6 +241,33 @@ Requires: %{name}-core = %{version}-%{release} %description icons This package contains icons used by the ROOT GUI. +%package fonts +Summary: ROOT font collection +Group: Applications/Engineering +%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 +BuildArch: noarch +%endif +%if %{?rhel}%{!?rhel:0} == 6 +# Driod Sans Fallback only +License: ASL 2.0 +%else +%if %{?rhel}%{!?rhel:0} +# STIX version 0.9 and Driod Sans Fallback +License: OFL and ASL 2.0 +%else +# STIX version 0.9 only +License: OFL +%endif +%endif +Requires: %{name}-core = %{version}-%{release} + +%description fonts +This package contains fonts used by ROOT that are not available in Fedora. +In particular it contains STIX version 0.9 that is used by TMathText. +%if %{?rhel}%{!?rhel:0} +For EPEL it also provides the Google Droid Sans Fallback font. +%endif + %package doc Summary: Documentation for the ROOT system Group: Applications/Engineering @@ -273,37 +296,34 @@ This package contains the tutorial scripts and test suite for ROOT. Summary: ROOT core libraries Group: Applications/Engineering License: LGPLv2+ and BSD +Requires: %{name}-fonts = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} Requires: xorg-x11-fonts-ISO8859-1-75dpi %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 -Requires: font(liberationsans) -Requires: font(liberationserif) -Requires: font(liberationmono) +Requires: font(freesans) +Requires: font(freeserif) +Requires: font(freemono) %else -Requires: liberation-fonts +Requires: freefont %endif +# Provides "symbol" and "dingbats" Requires: urw-fonts -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 +# The root-fonts package provides Droid Sans Fallback for EPEL +%if %{?fedora}%{!?fedora:0} >= 11 Requires: font(droidsansfallback) %endif -%if %{?fedora}%{!?fedora:0} >= 18 -# STIX font version 1.1 - not backwards compatible with earlier versions -# We use the texlive supplied version 1.0 instead of font(stix) -Requires: texlive-stix -%else -%if %{?fedora}%{!?fedora:0} >= 14 -# STIX font version 1.0 -Requires: font(stixgeneral) -Requires: font(stixsizeonesym) -%else -%if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} == 6 -# STIX font version 0.9 +# TMathText requires STIX fonts version 0.9 +# Fedora has newer versions that are not backwards compatible +# Fedora 18- and EPEL 7 have STIX fonts version 1.1 (*) +# Fedora 14-17 have STIX fonts version 1.0 +# Fedora 11-13 and EPEL 6 have STIX fonts version 0.9 +# (*) TeXlive in addition provides STIX 1.0 (not in EPEL 7) +# The root-fonts package provides STIX 0.9 where it is missing +%if %{?rhel}%{!?rhel:0} == 6 Requires: font(stixgeneral) Requires: font(stixsize1) %endif -%endif -%endif %description core This package contains the core libraries used by ROOT: libCore, libNew, @@ -312,8 +332,8 @@ libRint and libThread. %package cint Summary: CINT C++ interpreter Group: Applications/Engineering -Obsoletes: %{name}-cint7 < 5.26.00c License: MIT +Obsoletes: %{name}-cint7 < 5.26.00c %description cint This package contains the CINT C++ interpreter version 5. @@ -1207,6 +1227,14 @@ rm -rf math/unuran/src/*.tar.gz # * xrootd-private-devel headers rm -rf proof/xrdinc +# Remove bundled fonts provided by the OS distributions +%if %{?fedora}%{!?fedora:0} >= 11 +rm fonts/DroidSansFallback.ttf +%endif +%if %{?rhel}%{!?rhel:0} == 6 +rm fonts/STIX* +%endif + # Remove unsupported man page macros sed -e '/^\.UR/d' -e '/^\.UE/d' -i man/man1/* @@ -1578,6 +1606,10 @@ echo Rint.Includes: 0 > .rootrc echo Cint.Includes: 0 >> .rootrc echo Root.StacktraceScript: ${PWD}/etc/gdb-backtrace.sh >> .rootrc echo Gui.MimeTypeFile: ${PWD}/etc/root.mimes >> .rootrc +echo Unix.*.Root.DynamicPath: ${PWD}/lib >> .rootrc +echo Unix.*.Root.MacroPath: .:${PWD}/macros >> .rootrc +echo Unix.*.Root.PluginPath: ${PWD}/etc/plugins >> .rootrc +echo *.*.Root.TTFontPath: ${PWD}/fonts >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C @@ -1927,6 +1959,9 @@ fi %files icons %{_datadir}/%{name}/icons +%files fonts +%{_datadir}/%{name}/fonts + %files core -f includelist-core %{_bindir}/memprobe %{_bindir}/rlibmap @@ -2481,6 +2516,13 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Thu Jul 02 2015 Mattias Ellert - 5.34.32-1 +- Update to 5.34.32 +- New sub-package: root-fonts (STIX version 0.9 required by TMathText) +- Use GNU Free instead of Liberation, works better with TMathText +- Fix segfault when embedding Type 1 fonts +- Drop patch root-no-extra-formats.patch (workaround for above problem) + * Thu Jun 18 2015 Fedora Release Engineering - 5.34.30-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 696318d..9ba3f64 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a28f5c9713ff920ac8069975f32d391c root-5.34.30.tar.xz +b4e593a5740a8154635c2fe5d3081cd2 root-5.34.32.tar.xz afb35390554c43a7d92576a6d9d3ae8a usa.root From 5a930202e5b0a24be4946d57cb116b3df151e80e Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Tue, 22 Sep 2015 19:53:54 +0200 Subject: [PATCH 070/344] Fix build on aarch64 rhbz#1263206 Disable run-time dependency on gccxml in Reflex (allows installing on aarch64) Enable Cintex on aarch64 --- root.spec | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/root.spec b/root.spec index 20a8288..cad3f29 100644 --- a/root.spec +++ b/root.spec @@ -40,7 +40,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 1%{?dist} +Release: 2%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -341,12 +341,16 @@ This package contains the CINT C++ interpreter version 5. %package reflex Summary: Reflex dictionary generator Group: Applications/Engineering +# Cintex can operate on AArch64, but requires Relfex library and headers +# This allows reading x86_64 serialized data on aarch64 +%ifnarch aarch64 Requires: gccxml +%endif %description reflex This package contains the reflex dictionary generator for ROOT. -%ifarch %{ix86} x86_64 +%ifarch %{ix86} x86_64 aarch64 # Cintex does not work on ppc # https://savannah.cern.ch/bugs/?22003#comment16 # ./configure only allows --enable-cintex for ix86 and x86_64 @@ -1306,7 +1310,7 @@ unset QTINC --enable-bonjour \ --disable-castor \ --disable-chirp \ -%ifarch %{ix86} x86_64 +%ifarch %{ix86} x86_64 aarch64 --enable-cintex \ %else --disable-cintex \ @@ -1754,7 +1758,7 @@ fi %postun cint -p /sbin/ldconfig %post reflex -p /sbin/ldconfig %postun reflex -p /sbin/ldconfig -%ifarch %{ix86} x86_64 +%ifarch %{ix86} x86_64 aarch64 %post cintex -p /sbin/ldconfig %postun cintex -p /sbin/ldconfig %endif @@ -2013,7 +2017,7 @@ fi %doc %dir %{_pkgdocdir} %doc %{_pkgdocdir}/COPYING.CINT -%ifarch %{ix86} x86_64 +%ifarch %{ix86} x86_64 aarch64 %files cintex -f includelist-cint-cintex %{_libdir}/%{name}/libCintex.* %{python_sitearch}/PyCintex.py* @@ -2516,6 +2520,10 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Wed Sep 16 2015 David Abdurachmanov - 5.34.32-2 +- Disable run-time dependency on gccxml in Reflex (allows installing on aarch64) (#1263206) +- Enable Cintex on aarch64 + * Thu Jul 02 2015 Mattias Ellert - 5.34.32-1 - Update to 5.34.32 - New sub-package: root-fonts (STIX version 0.9 required by TMathText) From 284227b471fd9971d68aa10009dfd77634d360b1 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 25 Sep 2015 23:02:42 +0200 Subject: [PATCH 071/344] Add versioned dependencies between packages - Reenable hadoop/hdfs support for F23+ --- root-html.C | 4 +- root.spec | 503 +++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 484 insertions(+), 23 deletions(-) diff --git a/root-html.C b/root-html.C index dda9a93..06dbcf5 100644 --- a/root-html.C +++ b/root-html.C @@ -22,10 +22,10 @@ "TGraphPainter","GraphPainter", "TGraphPainter()"); delete (TFile*) gROOT->ProcessLine(".x tutorials/hsimple.C"); + gSystem->Exec("mv hsimple.root tutorials/hsimple.root"); THtml html; - html.SetProductName("ROOT"); html.SetEtcDir("@PWD@/etc/html"); - html.SetHomepage("http://root.cern.ch"); + html.SetSourceDir("."); html.LoadAllLibs(); html.SetBatch(kTRUE); html.MakeAll(); diff --git a/root.spec b/root.spec index cad3f29..ec5d0b8 100644 --- a/root.spec +++ b/root.spec @@ -29,18 +29,23 @@ %global xrootd 1 -%if %{?fedora}%{!?fedora:0} >= 20 && %{?fedora}%{!?fedora:0} < 23 +%if %{?fedora}%{!?fedora:0} >= 20 +# libhdfs is currently only available on intel architectures in Fedora +%ifarch %{ix86} x86_64 %global hadoop 1 %else %global hadoop 0 %endif +%else +%global hadoop 0 +%endif %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 2%{?dist} +Release: 3%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -85,9 +90,9 @@ Patch8: %{name}-dont-link-jvm.patch # Use local copy of input file during documentation generation Patch9: %{name}-usa.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -# The build segfaults on ppc64 during an invocation of cint: +# The build segfaults on ppc(64) during an invocation of cint: # https://savannah.cern.ch/bugs/index.php?70542 -ExcludeArch: ppc64 +ExcludeArch: ppc ppc64 # The cint interpreter is not fully ported to arm # https://sft.its.cern.ch/jira/browse/ROOT-5398 # https://sft.its.cern.ch/jira/browse/ROOT-5399 @@ -195,6 +200,8 @@ BuildRequires: font(droidsansfallback) BuildRequires: font(stixgeneral) BuildRequires: font(stixsize1) %endif +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme %if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7 Requires: emacs-filesystem >= %{_emacs_version} @@ -275,7 +282,6 @@ Group: Applications/Engineering BuildArch: noarch %endif License: LGPLv2+ and GPLv2+ and BSD -Requires: %{name}-cint = %{version}-%{release} %description doc This package contains the automatically generated ROOT class @@ -287,7 +293,7 @@ Group: Applications/Engineering %if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch %endif -Requires: %{name}-cint = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description tutorial This package contains the tutorial scripts and test suite for ROOT. @@ -296,8 +302,10 @@ This package contains the tutorial scripts and test suite for ROOT. Summary: ROOT core libraries Group: Applications/Engineering License: LGPLv2+ and BSD +Requires: %{name}-cint%{?_isa} = %{version}-%{release} Requires: %{name}-fonts = %{version}-%{release} Requires: %{name}-icons = %{version}-%{release} +# Dynamic dependency Requires: %{name}-graf-asimage%{?_isa} = %{version}-%{release} Requires: xorg-x11-fonts-ISO8859-1-75dpi %if %{?fedora}%{!?fedora:0} >= 11 || %{?rhel}%{!?rhel:0} >= 6 @@ -341,11 +349,19 @@ This package contains the CINT C++ interpreter version 5. %package reflex Summary: Reflex dictionary generator Group: Applications/Engineering -# Cintex can operate on AArch64, but requires Relfex library and headers -# This allows reading x86_64 serialized data on aarch64 +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +%if %{?fedora}%{!?fedora:0} >= 23 +# In Fedora 23+ gccxml has been replaced by castxml +# Some of the scripts in root needs to be adapted for this change +# This is still not done, so e.g. genreflex is a bit broken +Requires: castxml +%else +# gccxml is not available in aarch64 %ifnarch aarch64 Requires: gccxml %endif +%endif %description reflex This package contains the reflex dictionary generator for ROOT. @@ -357,7 +373,11 @@ This package contains the reflex dictionary generator for ROOT. %package cintex Summary: Reflex to CINT dictionary converter Group: Applications/Engineering -Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-reflex%{?_isa} = %{version}-%{release} +# For PyCintex.py +Requires: %{name}-python%{?_isa} = %{version}-%{release} %description cintex Cintex is a library that converts Reflex dictionary information to @@ -368,6 +388,9 @@ with CINT with any class for which a Reflex dictionary is provided. %package proofd Summary: Parallel ROOT Facility - distributed, parallel computing Group: Applications/Engineering +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} Requires(preun): chkconfig Requires(preun): initscripts @@ -385,6 +408,7 @@ transparent interface. %package rootd Summary: ROOT remote file server Group: Applications/Engineering +# Dynamic dependency Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} Requires(preun): chkconfig Requires(preun): initscripts @@ -400,6 +424,10 @@ transparent interface. %package python Summary: Python extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description python This package contains the Python extension for ROOT. This package @@ -409,6 +437,10 @@ provide a Python interface to ROOT, and a ROOT interface to Python. %package python26 Summary: Python extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description python26 This package contains the Python extension for ROOT. This package @@ -419,6 +451,10 @@ provide a Python interface to ROOT, and a ROOT interface to Python. %package python3 Summary: Python extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description python3 This package contains the Python extension for ROOT. This package @@ -428,6 +464,10 @@ provide a Python interface to ROOT, and a ROOT interface to Python. %package ruby Summary: Ruby extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Provides: ruby(libRuby) = %{version} %if %{?ruby_abi:1}%{!?ruby_abi:0} Requires: ruby(abi) = %{ruby_abi} @@ -441,6 +481,10 @@ invoke the Ruby interpreter from ROOT. %package genetic Summary: Genetic algorithms for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tmva%{?_isa} = %{version}-%{release} %description genetic This package contains a genetic minimizer module for ROOT. @@ -448,6 +492,16 @@ This package contains a genetic minimizer module for ROOT. %package geom Summary: Geometry library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description geom This package contains a library for defining geometries in ROOT. @@ -455,7 +509,13 @@ This package contains a library for defining geometries in ROOT. %package gdml Summary: GDML import/export for ROOT geometries Group: Applications/Engineering -Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} +# For ROOTwriter.py +Requires: %{name}-python%{?_isa} = %{version}-%{release} %description gdml This package contains an import/export module for ROOT geometries. @@ -463,6 +523,11 @@ This package contains an import/export module for ROOT geometries. %package graf Summary: 2D graphics library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description graf This package contains the 2-dimensional graphics library for ROOT. @@ -470,6 +535,13 @@ This package contains the 2-dimensional graphics library for ROOT. %package graf-asimage Summary: AfterImage graphics renderer for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description graf-asimage This package contains the AfterImage renderer for ROOT, which allows @@ -479,6 +551,12 @@ TIFF. %package graf-fitsio Summary: ROOT interface for the Flexible Image Transport System (FITS) Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} %description graf-fitsio This package contains a library for using the Flexible Image Transport @@ -487,6 +565,11 @@ System (FITS) data format in root. %package graf-gpad Summary: Canvas and pad library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release} %description graf-gpad @@ -495,6 +578,10 @@ This package contains a library for canvas and pad manipulations. %package graf-gviz Summary: Graphviz 2D library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description graf-gviz This package contains the 2-dimensional graphviz library for ROOT. @@ -502,6 +589,9 @@ This package contains the 2-dimensional graphviz library for ROOT. %package graf-postscript Summary: Postscript/PDF renderer library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} %description graf-postscript This package contains a library for ROOT, which allows rendering @@ -511,6 +601,10 @@ postscript and PDF output. %package graf-qt Summary: Qt renderer for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} %description graf-qt This package contains the Qt renderer for ROOT. @@ -519,6 +613,9 @@ This package contains the Qt renderer for ROOT. %package graf-x11 Summary: X window system renderer for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} %description graf-x11 This package contains the X11 renderer for ROOT, which allows using an @@ -527,6 +624,12 @@ X display for showing graphics. %package graf3d Summary: Basic 3D shapes library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description graf3d This library contains the basic 3D shapes and classes for ROOT. For @@ -535,6 +638,22 @@ a more full-blown geometry library, see the root-geom package. %package graf3d-eve Summary: Event display library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d-gl%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} +Requires: %{name}-physics%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description graf3d-eve This package contains a library for defining event displays in ROOT. @@ -542,6 +661,16 @@ This package contains a library for defining event displays in ROOT. %package graf3d-gl Summary: GL renderer for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description graf3d-gl This package contains the GL renderer for ROOT. This library provides @@ -552,6 +681,14 @@ rendering of histograms, and similar. Included is also a high quality %package graf3d-gviz3d Summary: Graphviz 3D library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d-gl%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} %description graf3d-gviz3d This package contains the 3-dimensional graphviz library for ROOT. @@ -559,6 +696,10 @@ This package contains the 3-dimensional graphviz library for ROOT. %package graf3d-x3d Summary: X 3D renderer for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} %description graf3d-x3d This package contains the X 3D renderer for ROOT. This library provides @@ -568,6 +709,14 @@ a low quality 3D viewer for ROOT defined geometries. %package gui Summary: GUI library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +# Dynamic dependencies Requires: %{name}-graf-x11%{?_isa} = %{version}-%{release} Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} @@ -577,6 +726,13 @@ This package contains a library for defining graphical user interfaces. %package gui-fitpanel Summary: GUI element for fits in ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description gui-fitpanel This package contains a library to show a pop-up dialog when fitting @@ -585,6 +741,14 @@ various kinds of data. %package gui-ged Summary: GUI element for editing various ROOT objects Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description gui-ged @@ -594,6 +758,11 @@ various ROOT objects. %package guibuilder Summary: GUI editor library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description guibuilder This package contains a library for editing graphical user interfaces @@ -603,6 +772,11 @@ in ROOT. %package gui-qt Summary: Qt GUI for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-qt%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} %description gui-qt This package contains the Qt GUI for ROOT. @@ -611,6 +785,11 @@ This package contains the Qt GUI for ROOT. %package gui-recorder Summary: Interface for recording and replaying events in ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description gui-recorder This library provides interface for recording and replaying events in ROOT. @@ -623,6 +802,11 @@ and can be replayed again anytime. %package hbook Summary: Hbook library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description hbook This package contains the Hbook library for ROOT, allowing you to @@ -631,6 +815,11 @@ access legacy Hbook files (NTuples and Histograms from PAW). %package hist Summary: Histogram library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-hist-painter%{?_isa} = %{version}-%{release} %description hist @@ -639,6 +828,13 @@ This package contains a library for histogramming in ROOT. %package hist-painter Summary: Histogram painter plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} %description hist-painter This package contains a painter of histograms for ROOT. @@ -646,6 +842,9 @@ This package contains a painter of histograms for ROOT. %package spectrum Summary: Spectra analysis library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum This package contains the Spectrum library for ROOT. @@ -653,6 +852,10 @@ This package contains the Spectrum library for ROOT. %package spectrum-painter Summary: Spectrum painter plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} %description spectrum-painter This package contains a painter of spectra for ROOT. @@ -660,6 +863,16 @@ This package contains a painter of spectra for ROOT. %package hist-factory Summary: RooFit PDFs from ROOT histograms Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: %{name}-roofit%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description hist-factory Create RooFit probability density functions from ROOT histograms. @@ -667,6 +880,9 @@ Create RooFit probability density functions from ROOT histograms. %package html Summary: HTML documentation generator for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: graphviz %description html @@ -676,6 +892,8 @@ from marked up sources. %package io Summary: Input/output of ROOT objects Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description io This package provides I/O routines for ROOT objects. @@ -683,6 +901,9 @@ This package provides I/O routines for ROOT objects. %package io-dcache Summary: dCache input/output library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-dcache This package contains the dCache extension for ROOT. @@ -690,6 +911,9 @@ This package contains the dCache extension for ROOT. %package io-gfal Summary: Grid File Access Library input/output library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-gfal This package contains the Grid File Access Library extension for ROOT. @@ -698,6 +922,9 @@ This package contains the Grid File Access Library extension for ROOT. %package io-hdfs Summary: Hadoop File System input/output library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-hdfs This package contains the Hadoop File System extension for ROOT. @@ -706,6 +933,9 @@ This package contains the Hadoop File System extension for ROOT. %package io-rfio Summary: Remote File input/output library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-rfio This package contains the Remote File IO extension for ROOT. @@ -713,6 +943,10 @@ This package contains the Remote File IO extension for ROOT. %package io-sql Summary: SQL input/output library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description io-sql This package contains the SQL extension for ROOT, that allows @@ -722,6 +956,9 @@ TFile interface. %package io-xml Summary: XML reader library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description io-xml This package contains the XML reader library for ROOT. @@ -729,6 +966,10 @@ This package contains the XML reader library for ROOT. %package foam Summary: A Compact Version of the Cellular Event Generator Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description foam The general-purpose self-adapting Monte Carlo (MC) event @@ -741,6 +982,8 @@ easier to use for the average user. Summary: FFTW library for ROOT Group: Applications/Engineering License: GPLv2+ +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description fftw This package contains the Fast Fourier Transform extension for ROOT. @@ -749,6 +992,10 @@ It uses the very fast fftw (version 3) library. %package fumili Summary: Fumili library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description fumili This package contains the fumili library for ROOT. This provides an @@ -757,6 +1004,8 @@ alternative fitting algorithm for ROOT. %package genvector Summary: Generalized vector library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description genvector This package contains the Genvector library for ROOT. This provides @@ -765,6 +1014,9 @@ a generalized vector library. %package mathcore Summary: Core mathematics library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-minuit%{?_isa} = %{version}-%{release} %description mathcore @@ -774,6 +1026,9 @@ This package contains the MathCore library for ROOT. Summary: GSL interface library for ROOT Group: Applications/Engineering License: GPLv2+ +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description mathmore This package contains the MathMore library for ROOT. This provides @@ -784,6 +1039,9 @@ is licensed under GPLv2+ due to its use of GSL. %package matrix Summary: Matrix library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description matrix This package contains the Matrix library for ROOT. @@ -791,6 +1049,11 @@ This package contains the Matrix library for ROOT. %package minuit Summary: Minuit library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} %description minuit This package contains the MINUIT library for ROOT. This provides a @@ -799,6 +1062,10 @@ fitting algorithm for ROOT. %package minuit2 Summary: Minuit version 2 library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description minuit2 This package contains the MINUIT version 2 library for ROOT. This @@ -807,6 +1074,15 @@ provides an fitting algorithm for ROOT. %package mlp Summary: Multi-layer perceptron extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description mlp This package contains the mlp library for ROOT. This library provides @@ -815,6 +1091,10 @@ a multi-layer perceptron neural network package for ROOT. %package physics Summary: Physics library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} %description physics This package contains the physics library for ROOT. @@ -822,6 +1102,9 @@ This package contains the physics library for ROOT. %package quadp Summary: QuadP library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} %description quadp This package contains the QuadP library for ROOT. This provides the a @@ -832,6 +1115,8 @@ subject to linear constraints. %package smatrix Summary: Sparse matrix library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description smatrix This package contains the Smatrix library for ROOT. @@ -839,6 +1124,13 @@ This package contains the Smatrix library for ROOT. %package splot Summary: Splot library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description splot A common method used in High Energy Physics to perform measurements @@ -872,6 +1164,10 @@ discriminating variables. Summary: Random number generator library Group: Applications/Engineering License: GPLv2+ +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description unuran Contains universal (also called automatic or black-box) algorithms @@ -900,6 +1196,11 @@ modern compilers (e.g. gcc 4.7) vectorisable. %package memstat Summary: Memory statistics tool for use with ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description memstat This package contains the memory statistics tool for debugging memory @@ -908,6 +1209,14 @@ leaks and such. %package table Summary: Table library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description table This package contains the Table library for ROOT. @@ -915,6 +1224,12 @@ This package contains the Table library for ROOT. %package montecarlo-eg Summary: Event generator library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description montecarlo-eg This package contains an event generator library for ROOT. @@ -923,6 +1238,9 @@ This package contains an event generator library for ROOT. %package montecarlo-pythia8 Summary: Pythia version 8 plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} %description montecarlo-pythia8 This package contains the Pythia version 8 plug-in for ROOT. This @@ -934,6 +1252,11 @@ package provide the ROOT user with transparent interface to the Pythia %package montecarlo-vmc Summary: Virtual Monte-Carlo (simulation) library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-geom%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-montecarlo-eg%{?_isa} = %{version}-%{release} %description montecarlo-vmc This package contains the VMC library for ROOT. @@ -941,6 +1264,10 @@ This package contains the VMC library for ROOT. %package net Summary: Net library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} %description net This package contains the ROOT networking library. @@ -948,6 +1275,8 @@ This package contains the ROOT networking library. %package net-rpdutils Summary: Authentication utilities used by rootd and proofd Group: Applications/Engineering +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description net-rpdutils This package contains authentication utilities used by rootd and proofd. @@ -955,6 +1284,8 @@ This package contains authentication utilities used by rootd and proofd. %package net-bonjour Summary: Bonjour extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description net-bonjour This package contains a bonjour extension for ROOT. @@ -962,6 +1293,10 @@ This package contains a bonjour extension for ROOT. %package net-auth Summary: Authentication extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description net-auth This package contains the basic authentication algorithms used by ROOT. @@ -970,6 +1305,9 @@ This package contains the basic authentication algorithms used by ROOT. Summary: Davix extension for ROOT Group: Applications/Engineering Requires: davix-libs%{?_isa} >= 0.2.8 +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} %description net-davix This package contains the davix extension for ROOT, that provides @@ -978,6 +1316,9 @@ access to http based storage such as webdav and S3. %package net-globus Summary: Globus extension for ROOT Group: Applications/Engineering +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-net-auth%{?_isa} = %{version}-%{release} Requires: globus-proxy-utils %description net-globus @@ -987,6 +1328,10 @@ authentication and authorization against Globus. %package net-krb5 Summary: Kerberos (version 5) extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-net-auth%{?_isa} = %{version}-%{release} Requires: krb5-workstation %description net-krb5 @@ -996,6 +1341,8 @@ allows authentication and authorization using Kerberos tokens. %package net-ldap Summary: LDAP extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} %description net-ldap This package contains the LDAP extension for ROOT. This gives you @@ -1004,6 +1351,14 @@ access to LDAP directories via ROOT. %package net-http Summary: HTTP server extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description net-http This package contains the HTTP server extension for ROOT. It provides @@ -1013,6 +1368,10 @@ an http interface to arbitrary ROOT applications. %package netx Summary: NetX extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description netx This package contains the NetX extension for ROOT, i.e. a client for @@ -1023,6 +1382,16 @@ provided. %package proof Summary: PROOF extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} Obsoletes: %{name}-clarens < 5.34.01 Obsoletes: %{name}-peac < 5.34.01 @@ -1033,6 +1402,14 @@ client to use in a PROOF environment. %package proof-bench Summary: PROOF benchmarking Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description proof-bench This package contains the steering class for PROOF benchmarks. @@ -1040,6 +1417,11 @@ This package contains the steering class for PROOF benchmarks. %package proof-pq2 Summary: PROOF Quick Query (pq2) Group: Applications/Engineering +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} %description proof-pq2 Shell-based interface to the PROOF dataset handling. @@ -1047,6 +1429,15 @@ Shell-based interface to the PROOF dataset handling. %package proof-sessionviewer Summary: GUI to browse an interactive PROOF session Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description proof-sessionviewer This package contains a library for browsing an interactive PROOF @@ -1056,6 +1447,12 @@ session in ROOT. %package xproof Summary: XPROOF extension for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-proof%{?_isa} = %{version}-%{release} +# Dynamic dependency Requires: %{name}-net-rpdutils%{?_isa} = %{version}-%{release} Requires: xrootd-server%{?_isa} @@ -1068,6 +1465,18 @@ client to be used in a PROOF environment. Summary: ROOT extension for modeling expected distributions Group: Applications/Engineering License: BSD +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-foam%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-mathmore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: %{name}-minuit%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description roofit The RooFit packages provide a toolkit for modeling the expected @@ -1085,6 +1494,9 @@ suitable for adoption in different disciplines as well. %package sql-mysql Summary: MySQL client plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description sql-mysql This package contains the MySQL plugin for ROOT. This plugin @@ -1095,6 +1507,9 @@ ROOT environment. %package sql-odbc Summary: ODBC plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description sql-odbc This package contains the ODBC (Open DataBase Connectivity) plugin @@ -1104,6 +1519,9 @@ supports the ODBC protocol. %package sql-sqlite Summary: Sqlite client plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description sql-sqlite This package contains the sqlite plugin for ROOT. This plugin @@ -1114,6 +1532,9 @@ ROOT environment. %package sql-pgsql Summary: PostgreSQL client plugin for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description sql-pgsql This package contains the PostGreSQL plugin for ROOT. This plugin @@ -1125,6 +1546,17 @@ ROOT environment. Summary: Toolkit for multivariate data analysis Group: Applications/Engineering License: BSD +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-matrix%{?_isa} = %{version}-%{release} +Requires: %{name}-minuit%{?_isa} = %{version}-%{release} +Requires: %{name}-mlp%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description tmva The Toolkit for Multivariate Analysis (TMVA) provides a @@ -1149,6 +1581,10 @@ compared. %package tree Summary: Tree library for ROOT Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} %description tree This package contains the Tree library for ROOT. @@ -1156,6 +1592,15 @@ This package contains the Tree library for ROOT. %package tree-player Summary: Library to loop over a ROOT tree Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} %description tree-player This package contains a plugin to loop over a ROOT tree. @@ -1163,6 +1608,17 @@ This package contains a plugin to loop over a ROOT tree. %package tree-viewer Summary: GUI to browse a ROOT tree Group: Applications/Engineering +Requires: %{name}-cint%{?_isa} = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-ged%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: %{name}-tree-player%{?_isa} = %{version}-%{release} %description tree-viewer This package contains a plugin for browsing a ROOT tree in ROOT. @@ -1390,20 +1846,20 @@ unset QTINC %endif --fail-on-missing -make OPTFLAGS="%{optflags}" \ - EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} +make %{?_smp_mflags} \ + OPTFLAGS="%{optflags}" EXTRA_LDFLAGS="%{?__global_ldflags}" %if %{?rhel}%{!?rhel:0} == 5 # Build PyROOT for python 2.6 mkdir python cp bindings/python/ROOT.py python cp bindings/python/cppyy.py python -make OPTFLAGS="%{optflags}" \ - EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ +make %{?_smp_mflags} \ + OPTFLAGS="%{optflags}" EXTRA_LDFLAGS="%{?__global_ldflags}" \ MODULES="build cint/cint core/utils bindings/python" \ PYTHONINCDIR=/usr/include/python2.6 PYTHONLIB=-lpython2.6 \ PYROOTLIB=python/libPyROOT.so \ - ROOTPY="python/ROOT.py python/cppyy.py" + ROOTPY="python/ROOT.py python/cppyy.py" python/libPyROOT.so %endif %if %{?fedora}%{!?fedora:0} >= 15 @@ -1411,18 +1867,19 @@ make OPTFLAGS="%{optflags}" \ mkdir python cp bindings/python/ROOT.py python cp bindings/python/cppyy.py python -make OPTFLAGS="%{optflags}" \ - EXTRA_LDFLAGS="%{?__global_ldflags}" %{?_smp_mflags} \ +make %{?_smp_mflags} \ + OPTFLAGS="%{optflags}" EXTRA_LDFLAGS="%{?__global_ldflags}" \ MODULES="build cint/cint core/utils bindings/python" \ PYTHONINCDIR=`pkg-config --cflags python3 | sed 's/-I//'` \ PYTHONLIB=`pkg-config --libs python3` \ PYROOTLIB=python/libPyROOT.so \ - ROOTPY="python/ROOT.py python/cppyy.py" + ROOTPY="python/ROOT.py python/cppyy.py" python/libPyROOT.so %endif %install rm -rf %{buildroot} -make install DESTDIR=%{buildroot} +make %{?_smp_mflags} install DESTDIR=%{buildroot} \ + OPTFLAGS="%{optflags}" EXTRA_LDFLAGS="%{?__global_ldflags}" # Move python modules to the sitelib mkdir -p %{buildroot}%{python_sitearch} @@ -1616,8 +2073,8 @@ echo Unix.*.Root.PluginPath: ${PWD}/etc/plugins >> .rootrc echo *.*.Root.TTFontPath: ${PWD}/fonts >> .rootrc sed "s!@PWD@!${PWD}!g" %{SOURCE2} > html.C LD_LIBRARY_PATH=${PWD}/lib:${PWD}/cint/cint/include:${PWD}/cint/cint/stl \ -ROOTSYS=${PWD} ./bin/root.exe -l -b -q html.C -rm .rootrc +PATH=${PWD}/bin:${PATH} ROOTSYS=${PWD} ./bin/root.exe -b -l -n -q -x html.C +rm .rootrc html.C mv htmldoc %{buildroot}%{_pkgdocdir}/html # Create includelist files ... @@ -2520,6 +2977,10 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Fri Sep 25 2015 Mattias Ellert - 5.34.32-3 +- Add versioned dependencies between packages +- Reenable hadoop/hdfs support for F23+ + * Wed Sep 16 2015 David Abdurachmanov - 5.34.32-2 - Disable run-time dependency on gccxml in Reflex (allows installing on aarch64) (#1263206) - Enable Cintex on aarch64 From 47191cc0cf97dc43f546b891503fcffdf53bde5e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 10 Nov 2015 18:05:20 +0000 Subject: [PATCH 072/344] - Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index ec5d0b8..4543e06 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 3%{?dist} +Release: 4%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2977,6 +2977,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Tue Nov 10 2015 Fedora Release Engineering - 5.34.32-4 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + * Fri Sep 25 2015 Mattias Ellert - 5.34.32-3 - Add versioned dependencies between packages - Reenable hadoop/hdfs support for F23+ From 33ffc84ca9d798c87ac03ccb4b34e59b0b663b91 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Tue, 17 Nov 2015 16:40:19 +0100 Subject: [PATCH 073/344] Adapt to gfal 2.10 - uses a different #define - Exclude ppc64le - has the same issues with cint as ppc and ppc64 --- root-gfal2.patch | 12 ++++++++++++ root.spec | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 root-gfal2.patch diff --git a/root-gfal2.patch b/root-gfal2.patch new file mode 100644 index 0000000..cdf06ac --- /dev/null +++ b/root-gfal2.patch @@ -0,0 +1,12 @@ +diff -ur root-5.34.32.orig/io/gfal/src/TGFALFile.cxx root-5.34.32/io/gfal/src/TGFALFile.cxx +--- root-5.34.32.orig/io/gfal/src/TGFALFile.cxx 2015-06-23 17:56:20.000000000 +0200 ++++ root-5.34.32/io/gfal/src/TGFALFile.cxx 2015-11-17 14:33:31.069759901 +0100 +@@ -68,7 +68,7 @@ + } + + // GFAL2 doesn't use special names for 64 bit versions +-#ifdef _GFAL2_API_ ++#if defined(_GFAL2_API_) || defined(GFAL2_API_H_) + #define gfal_lseek64 gfal_lseek + #define gfal_open64 gfal_open + #define gfal_readdir64 gfal_readdir diff --git a/root.spec b/root.spec index 4543e06..4ccfbdd 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 4%{?dist} +Release: 5%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -89,10 +89,12 @@ Patch7: %{name}-hdfs.patch Patch8: %{name}-dont-link-jvm.patch # Use local copy of input file during documentation generation Patch9: %{name}-usa.patch +# Adapt to GFAL 2.10 +Patch10: %{name}-gfal2.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # The build segfaults on ppc(64) during an invocation of cint: # https://savannah.cern.ch/bugs/index.php?70542 -ExcludeArch: ppc ppc64 +ExcludeArch: ppc ppc64 ppc64le # The cint interpreter is not fully ported to arm # https://sft.its.cern.ch/jira/browse/ROOT-5398 # https://sft.its.cern.ch/jira/browse/ROOT-5399 @@ -1637,6 +1639,7 @@ fi %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -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 \ @@ -2977,6 +2980,10 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Tue Nov 17 2015 Mattias Ellert - 5.34.32-5 +- Adapt to gfal 2.10 - uses a different #define +- Exclude ppc64le - has the same issues with cint as ppc and ppc64 + * Tue Nov 10 2015 Fedora Release Engineering - 5.34.32-4 - Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 From 093cf36cc6fccb433b9d87126a23bc4fcdac0d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 12 Jan 2016 15:55:56 +0100 Subject: [PATCH 074/344] Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 4ccfbdd..768094d 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 5%{?dist} +Release: 6%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2980,6 +2980,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Tue Jan 12 2016 Vít Ondruch - 5.34.32-6 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 + * Tue Nov 17 2015 Mattias Ellert - 5.34.32-5 - Adapt to gfal 2.10 - uses a different #define - Exclude ppc64le - has the same issues with cint as ppc and ppc64 From 7b75beeafd1ce62305712c8f3f09728850a2527b Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 14 Jan 2016 13:10:21 -0500 Subject: [PATCH 075/344] Rebuild for glew 1.13 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 768094d..0face28 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 6%{?dist} +Release: 7%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2980,6 +2980,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Thu Jan 14 2016 Adam Jackson - 5.34.32-7 +- Rebuild for glew 1.13 + * Tue Jan 12 2016 Vít Ondruch - 5.34.32-6 - Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 From af80df442b38f7466b30f790997ea2f490bd29e7 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Sat, 16 Jan 2016 01:31:25 +0900 Subject: [PATCH 076/344] Rebuild again for https://fedoraproject.org/wiki/Changes/Ruby_2.3 --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index 0face28..e77edf6 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 7%{?dist} +Release: 8%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2980,6 +2980,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Sat Jan 16 2016 Mamoru TASAKA - 5.34.32-8 +- Rebuild again for https://fedoraproject.org/wiki/Changes/Ruby_2.3 + * Thu Jan 14 2016 Adam Jackson - 5.34.32-7 - Rebuild for glew 1.13 From 9b3288a2aec158f145ba9ee481bbc42292689aa5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 4 Feb 2016 22:15:25 +0000 Subject: [PATCH 077/344] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- root.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/root.spec b/root.spec index e77edf6..f552292 100644 --- a/root.spec +++ b/root.spec @@ -45,7 +45,7 @@ Name: root Version: 5.34.32 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 8%{?dist} +Release: 9%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering @@ -2980,6 +2980,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Thu Feb 04 2016 Fedora Release Engineering - 5.34.32-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Sat Jan 16 2016 Mamoru TASAKA - 5.34.32-8 - Rebuild again for https://fedoraproject.org/wiki/Changes/Ruby_2.3 From c073038c81f3ef84bf892c875f562d71e7213906 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 8 Apr 2016 13:55:37 +0200 Subject: [PATCH 078/344] Update to 5.34.36 --- root-private-public.patch | 142 ++++++++++++++++++++++++++++++++++++++ root.spec | 20 ++++-- sources | 2 +- 3 files changed, 157 insertions(+), 7 deletions(-) create mode 100644 root-private-public.patch diff --git a/root-private-public.patch b/root-private-public.patch new file mode 100644 index 0000000..40c2b6b --- /dev/null +++ b/root-private-public.patch @@ -0,0 +1,142 @@ +diff -ur root-6.04.02.orig/proof/proofx/inc/TXSocket.h root-6.04.02/proof/proofx/inc/TXSocket.h +--- root-6.04.02.orig/proof/proofx/inc/TXSocket.h 2015-07-14 12:54:01.000000000 +0200 ++++ root-6.04.02/proof/proofx/inc/TXSocket.h 2015-07-24 23:17:46.482814148 +0200 +@@ -43,8 +43,8 @@ + #ifndef ROOT_TSocket + #include "TSocket.h" + #endif +-#ifndef ROOT_XrdProofConn +-#include "XrdProofConn.h" ++#ifndef __XPTYPES_H ++#include "XProtocol/XPtypes.hh" + #endif + #ifndef XRC_UNSOLMSG_H + #include "XrdClient/XrdClientUnsolMsg.hh" +@@ -58,6 +58,7 @@ + class TXHandler; + class TXSocketHandler; + class XrdClientMessage; ++class XrdProofConn; + + // To transmit info to Handlers + typedef struct { +@@ -140,7 +141,7 @@ + void PostMsg(Int_t type, const char *msg = 0); + + // Auxilliary +- Int_t GetLowSocket() const { return (fConn ? fConn->GetLowSocket() : -1); } ++ Int_t GetLowSocket() const; + + static void SetLocation(const char *loc = ""); // Set location string + +@@ -170,13 +171,13 @@ + + virtual Int_t GetClientID() const { return -1; } + virtual Int_t GetClientIDSize() const { return 1; } +- Int_t GetLogConnID() const { return (fConn ? fConn->GetLogConnID() : -1); } +- Int_t GetOpenError() const { return (fConn ? fConn->GetOpenError() : -1); } +- Int_t GetServType() const { return (fConn ? fConn->GetServType() : -1); } +- Int_t GetSessionID() const { return (fConn ? fConn->GetSessionID() : -1); } ++ Int_t GetLogConnID() const; ++ Int_t GetOpenError() const; ++ Int_t GetServType() const; ++ Int_t GetSessionID() const; + Int_t GetXrdProofdVersion() const { return fXrdProofdVersion; } + +- Bool_t IsValid() const { return (fConn ? (fConn->IsValid()) : kFALSE); } ++ Bool_t IsValid() const; + Bool_t IsServProofd(); + virtual void RemoveClientID() { } + virtual void SetClientID(Int_t) { } +@@ -215,10 +216,7 @@ + void SendUrgent(Int_t type, Int_t int1, Int_t int2); + + // Interrupt the low level socket +- inline void SetInterrupt(Bool_t i = kTRUE) { R__LOCKGUARD(fAMtx); +- fRDInterrupt = i; +- if (i && fConn) fConn->SetInterrupt(); +- if (i && fAWait) fASem.Post(); } ++ void SetInterrupt(Bool_t i = kTRUE); + inline Bool_t IsInterrupt() { R__LOCKGUARD(fAMtx); return fRDInterrupt; } + // Set / Check async msg queue waiting status + inline void SetAWait(Bool_t w = kTRUE) { R__LOCKGUARD(fAMtx); fAWait = w; } +diff -ur root-6.04.02.orig/proof/proofx/src/TXProofMgr.cxx root-6.04.02/proof/proofx/src/TXProofMgr.cxx +--- root-6.04.02.orig/proof/proofx/src/TXProofMgr.cxx 2015-07-14 12:54:01.000000000 +0200 ++++ root-6.04.02/proof/proofx/src/TXProofMgr.cxx 2015-07-25 00:18:56.528053529 +0200 +@@ -39,6 +39,8 @@ + #include "TSysEvtHandler.h" + #include "XProofProtocol.h" + ++#include "XrdProofConn.h" ++ + ClassImp(TXProofMgr) + + // +diff -ur root-6.04.02.orig/proof/proofx/src/TXSocket.cxx root-6.04.02/proof/proofx/src/TXSocket.cxx +--- root-6.04.02.orig/proof/proofx/src/TXSocket.cxx 2015-07-14 12:54:01.000000000 +0200 ++++ root-6.04.02/proof/proofx/src/TXSocket.cxx 2015-07-24 23:23:46.982746510 +0200 +@@ -924,6 +924,36 @@ + } + + //____________________________________________________________________________ ++Int_t TXSocket::GetLogConnID() const ++{ ++ return (fConn ? fConn->GetLogConnID() : -1); ++} ++ ++//____________________________________________________________________________ ++Int_t TXSocket::GetOpenError() const ++{ ++ return (fConn ? fConn->GetOpenError() : -1); ++} ++ ++//____________________________________________________________________________ ++Int_t TXSocket::GetServType() const ++{ ++ return (fConn ? fConn->GetServType() : -1); ++} ++ ++//____________________________________________________________________________ ++Int_t TXSocket::GetSessionID() const ++{ ++ return (fConn ? fConn->GetSessionID() : -1); ++} ++ ++//____________________________________________________________________________ ++Bool_t TXSocket::IsValid() const ++{ ++ return (fConn ? (fConn->IsValid()) : kFALSE); ++} ++ ++//____________________________________________________________________________ + Bool_t TXSocket::IsServProofd() + { + // Return kTRUE if the remote server is a 'proofd' +@@ -1643,6 +1673,15 @@ + } + + //______________________________________________________________________________ ++void TXSocket::SetInterrupt(Bool_t i) ++{ ++ R__LOCKGUARD(fAMtx); ++ fRDInterrupt = i; ++ if (i && fConn) fConn->SetInterrupt(); ++ if (i && fAWait) fASem.Post(); ++} ++ ++//______________________________________________________________________________ + Int_t TXSocket::Send(const TMessage &mess) + { + // Send a TMessage object. Returns the number of bytes in the TMessage +@@ -1933,6 +1972,11 @@ + } + + //_____________________________________________________________________________ ++Int_t TXSocket::GetLowSocket() const { ++ return (fConn ? fConn->GetLowSocket() : -1); ++} ++ ++//_____________________________________________________________________________ + void TXSocket::InitEnvs() + { + // Init environment variables for XrdClient diff --git a/root.spec b/root.spec index f552292..618fe54 100644 --- a/root.spec +++ b/root.spec @@ -43,16 +43,16 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Name: root -Version: 5.34.32 +Version: 5.34.36 %global libversion %(cut -d. -f 1-2 <<< %{version}) -Release: 9%{?dist} +Release: 1%{?dist} Summary: Numerical data analysis framework Group: Applications/Engineering License: LGPLv2+ -URL: http://root.cern.ch/ +URL: https://root.cern.ch/ # The upstream source is modified to exclude proprietary fonts: -# wget -N ftp://root.cern.ch/root/root_v%{version}.source.tar.gz +# wget -N https://root.cern.ch/download/root_v%{version}.source.tar.gz # tar -z -x -f root_v%{version}.source.tar.gz # find root/fonts -type f -a '!' '(' -name 'STIX*' -o -name DroidSansFallback.ttf ')' -exec rm {} ';' # mv root root-%{version} @@ -90,11 +90,15 @@ Patch8: %{name}-dont-link-jvm.patch # Use local copy of input file during documentation generation Patch9: %{name}-usa.patch # Adapt to GFAL 2.10 +# https://github.com/root-mirror/root/pull/106 Patch10: %{name}-gfal2.patch +# Public header #includes private header +# https://github.com/root-mirror/root/pull/88 +Patch11: %{name}-private-public.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # The build segfaults on ppc(64) during an invocation of cint: # https://savannah.cern.ch/bugs/index.php?70542 -ExcludeArch: ppc ppc64 ppc64le +ExcludeArch: ppc %{power64} # The cint interpreter is not fully ported to arm # https://sft.its.cern.ch/jira/browse/ROOT-5398 # https://sft.its.cern.ch/jira/browse/ROOT-5399 @@ -1640,6 +1644,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 \ @@ -2954,7 +2959,7 @@ fi %{_datadir}/%{name}/plugins/TSQLServer/P050_TODBCServer.C %files sql-sqlite -f includelist-sql-sqlite -%{_libdir}/%{name}/libSQLite.* +%{_libdir}/%{name}/libRSQLite.* %{_datadir}/%{name}/plugins/TSQLServer/P060_TSQLiteServer.C %files sql-pgsql -f includelist-sql-pgsql @@ -2980,6 +2985,9 @@ fi %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C %changelog +* Fri Apr 08 2016 Mattias Ellert - 5.34.36-1 +- Update to 5.34.36 + * Thu Feb 04 2016 Fedora Release Engineering - 5.34.32-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/sources b/sources index 9ba3f64..c19ad71 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -b4e593a5740a8154635c2fe5d3081cd2 root-5.34.32.tar.xz +eb9d4a4c6becba8dc591c7945a0b2544 root-5.34.36.tar.xz afb35390554c43a7d92576a6d9d3ae8a usa.root From 9a997630c22153c394ccde93569a2fa21ecec20b Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 23:12:54 +0200 Subject: [PATCH 079/344] Update to 6.06.02 (F24+, EPEL7) - Change to cmake configuration (was using ./configure) - Change to doxygen documentation generation (was using THTML) - Run the test suite - Remove compatibility with older EPEL (Group tags, BuildRoot tag, etc.) - New sub-packages: root-multiproc, root-cling, root-r, root-r-tools, root-geocad, root-tmva-python, root-tmva-r, root-tmva-gui, root-cli, root-notebook and root-rootaas - New subpackage for EPEL7: root-python34 - Dropped sub-packages: root-cint, root-reflex, root-cintex, root-ruby --- info.png | Bin 2060 -> 0 bytes root-32bit.patch | 78 + root-abitags.patch | 1267 ++++++++++++ root-arm.patch | 81 + root-avoid-gui-crash.patch | 59 + root-avoid-std-bind-lambda.patch | 42 + root-banner.png | Bin 132555 -> 0 bytes root-broken-cmake-config.patch | 194 ++ root-cache-test.patch | 281 +++ root-cernlib-doc.patch | 1307 +++++++++++++ root-compiledata.patch | 12 + root-deprecated-options.patch | 30 + root-doc-latex.patch | 64 - root-dont-link-jvm.patch | 50 +- root-dox-filter.patch | 86 + root-doxyfile.patch | 30 + root-doxygen-warnings.patch | 723 +++++++ root-fflags.patch | 78 + root-fontconfig.patch | 332 ++-- root-ftgl.patch | 55 - root-gl2ps.patch | 254 +++ root-hdfs.patch | 129 -- root-html-markup.patch | 1031 ++++++++++ root-html.C | 32 - root-includelist | 12 - root-latex-markup.patch | 877 +++++++++ root-libgfortranbegin.patch | 182 ++ root-links.patch | 376 ++++ root-llvm-static.patch | 11 + root-macro-align.patch | 36 + root-meta.patch | 48 - root-missing-cmake-config.patch | 187 ++ root-no-hexfloat-const.patch | 12 + root-no-testdata.patch | 20 + root-ppc64.patch | 38 + root-private-public.patch | 76 +- root-s390x.patch | 147 ++ root-save-memory.patch | 30 + root-see-macro-output.patch | 266 +++ root-soname.patch | 11 + root-stressgraphics.patch | 56 + root-template-files.patch | 28 + root-test-install.patch | 3091 ++++++++++++++++++++++++++++++ root-testfiles.sh | 85 + root-tildes.patch | 194 ++ root-tmath-doc.patch | 274 +++ root-tprincipal-doc.patch | 483 +++++ root-tvector2-comment.patch | 13 + root-type1-embed.patch | 42 +- root-unuran.patch | 316 ++- root-usa.patch | 15 - root-werror.patch | 12 + root-xrootd.patch | 22 - root.spec | 1554 ++++++++------- rootdrawing-logo.png | Bin 15051 -> 0 bytes 55 files changed, 13301 insertions(+), 1428 deletions(-) delete mode 100644 info.png create mode 100644 root-32bit.patch create mode 100644 root-abitags.patch create mode 100644 root-arm.patch create mode 100644 root-avoid-gui-crash.patch create mode 100644 root-avoid-std-bind-lambda.patch delete mode 100644 root-banner.png create mode 100644 root-broken-cmake-config.patch create mode 100644 root-cache-test.patch create mode 100644 root-cernlib-doc.patch create mode 100644 root-compiledata.patch create mode 100644 root-deprecated-options.patch delete mode 100644 root-doc-latex.patch create mode 100644 root-dox-filter.patch create mode 100644 root-doxyfile.patch create mode 100644 root-doxygen-warnings.patch create mode 100644 root-fflags.patch delete mode 100644 root-ftgl.patch create mode 100644 root-gl2ps.patch delete mode 100644 root-hdfs.patch create mode 100644 root-html-markup.patch delete mode 100644 root-html.C delete mode 100644 root-includelist create mode 100644 root-latex-markup.patch create mode 100644 root-libgfortranbegin.patch create mode 100644 root-links.patch create mode 100644 root-llvm-static.patch create mode 100644 root-macro-align.patch delete mode 100644 root-meta.patch create mode 100644 root-missing-cmake-config.patch create mode 100644 root-no-hexfloat-const.patch create mode 100644 root-no-testdata.patch create mode 100644 root-ppc64.patch create mode 100644 root-s390x.patch create mode 100644 root-save-memory.patch create mode 100644 root-see-macro-output.patch create mode 100644 root-soname.patch create mode 100644 root-stressgraphics.patch create mode 100644 root-template-files.patch create mode 100644 root-test-install.patch create mode 100755 root-testfiles.sh create mode 100644 root-tildes.patch create mode 100644 root-tmath-doc.patch create mode 100644 root-tprincipal-doc.patch create mode 100644 root-tvector2-comment.patch delete mode 100644 root-usa.patch create mode 100644 root-werror.patch delete mode 100644 root-xrootd.patch delete mode 100644 rootdrawing-logo.png diff --git a/info.png b/info.png deleted file mode 100644 index c0bb348ef5b7c87e2411ab39765a7f39e07a7416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2060 zcmV+n2=n)eP)J0@=*za-Ww*OKJ3BiwcV_NA=Xv~a@2qWip$#W_a_*fu z=RE)C|NNhG?lGKYJMz>WrT(FTb-jhDE6J3uB-OnR{Ip8DiEEwEc6qP0nHR*R_lo!v z#mx`s*{o~MG~nP9UoFfYe&fcWk-o1FuD@Y@c4*TIQr)O+fD0h302;sBMpG-Vyey6B zr<_ecl)vuD@B;%l`t%*S*LOX8UFqDu`!D_cZ5QO%eg$<+sQwq)(;ya9Q58^yPVaZ2 z(n4qd{V&@L?#*xAvFif?*!j(&Z}+WCeRsp{-yck`xgM(fAUF!P8AmKayCqDGw@IgA z^*KI90d*h|*tTk`eB3RJeO#~;@q%F+txrPjP)s+FDHIspd==@H z1;kp!S~RjqWYNf>kzK9MJ<|Bi#-aBGP#Hh)rLNxmd8LnTM%AIUqcNS%C4Gd}#*oU} z$h&*c@(b}qb@Z(~%!(cxN1xcK&-UZ$Wb1osVE=vV*UTJz^$(@<&b?;zmU}TMG{*n0 z^7aDKm_VB|pn{5GJcIY)i_x^j)Mv5dvuMl4IuS)xV=btnasRf8tnb;rzt!=ZT0~+P z@qI?ROT!qyfG)g~h)KY;aFw?p3Q!SHKm<`m-rNViLBm9NB53meNsc@HD5}>0e_fJ- z%Gj%yc^-qs{#D@GXxKn)h=c)dehh8aPR=Rw6?nHg!p;{j;pwM+W@lom#k$4($K#XU z+N4757v>)v^_DPz;Ud8JsSFwhsEuOe3&)YhiC71!h*KtJyUDEE&cNDDY`M9c{m<>< zrQN?^%O?ebC}GIOQJ=(s@l#;kNAOH9P&oyFD1-5XivdI-v=?ym$4<#MPma5aZ^DDR|11YF|Bx>a~ysRLk<3Qf$mT4>Zn!zNOj0Bcbz zv67vzVt9yrcM4Z|5Uo7};%HUpDRi~bC`v>t$-d!GC*TC_Fyb_iNPbBQL}EnEYMHKf zfHulVy@DpxD>0Ss&`w-tFJAd5UiVF8*IUYCN9Y?+G>ia2Rgwzm2vJa{7++9P52H&p z;DloU^~ww@!zNOnL8CCH50ZmNp)rBJHANIya#sw4vs9-h>FL)vVov}`w&DaxCxv*Z zbuDAeVi_(X>0YsVpA(w%v(vQar;wnUs5jY6oJ$TGi_}|~OcAdz2+lHh>=^weMb%xMWZ7n7Cvg5KOiQlkNhs)TXB? z_6tEEl&e5WF)0CGz{I8ri+CKv^D0XKsOX!D_xGUfm>7E-RUdIA4A|JYb8$pQFxes| zRRm|rWHY?<+{GMR*hZ~8hu3Ff=Zh=|CfkLyo1pw|;GW}d34m*UIve_a`Z4EVdah2R zG6P;Nb}EtxN>Cga2fmNN183QE%MGmC@-;5m(q#0ixRe)DVHAvD(nYit93_|D!%6Lw z!)WV6?LF4PNM{;&>0eP`7w$+E)Pk?zE5=v6 zd@pKEJqjB?EPZdX^_~C#iuvr%oUm`U)?#dOCa&XDJ`rJ3;|LOrVdr)bMZ1aQm*jOn zcA^%8^AzJL#siZpKyDCMp4eUYQ-3<$-?E=%JGbXHlowim1kPVuDsukN3ev?ca0{4J z2w8)dH<%2h&&kGhU+-+epjOckRJxGnphicI{^xkm-n!xE<=NAH`O5)#{AD|J`^Pc| zTA|xmZQ4@1)n=fO!Y}qi$_H&@QgM`o4kE$$U^?M=9$sb*5)2R>I`ZPNdh=VC-#7Qp za=za8v;6VfGOMF@ct3D`Z_XbWDPTheVAN`$vR9{Fexx;A502d0awe>JUBJE zci-d=oA>WJ;k??NkIpT7PdMYf;MdzSy=k>qdn$LPe6BBbrHjM;S%%m2lPPBLy0REQ z9iJC%M}4{;RLiyJe*Apx;lCWVFI{+-Oyq(tW zx;A6xo8nE@G_~V(32H6=4D15Dfr4h|n>KRGU&0J=m1(W1OfSf?gU$$GvMNR~-V?7x zSs-`voN_?4%#=>_4hTmF({0}vIdWpTp=SZ$-FXMbnA4pv(~@Hlmsqs2%X9g(vB%4i zdvhxKU?N=8gE8Pw)<`)eLtMI@d5gI=ASn+~a6MTx-Z7sZ*@2KXN|aXDfWg+Ueo0000::name() == "PtEtaPhiMVector") scale *= 10; + #if defined (R__LINUX) && !defined(R__B64) + // problem of precision on linux 32 +- if (Dim ==4) scale = 1000000000; ++ if (Dim ==4) scale = 5000000000; + #endif + // for problem with PtEtaPhiE + if (Dim==4 && VecType::name() == "PtEtaPhiEVector") scale = 0.01/(std::numeric_limits::epsilon()); +diff -ur root-6.06.02.orig/test/TFormulaParsingTests.h root-6.06.02/test/TFormulaParsingTests.h +--- root-6.06.02.orig/test/TFormulaParsingTests.h 2016-03-03 10:36:03.000000000 +0100 ++++ root-6.06.02/test/TFormulaParsingTests.h 2016-04-09 20:03:06.395714018 +0200 +@@ -312,7 +312,7 @@ + ok &= (f1->Eval(1.5,2.5) == f0->Eval(1.5,2.5) ); + double par[2] = {3,4}; + double xx[2] = {0.8,1.6}; +- ok &= (f1->EvalPar(xx,par) == f0->EvalPar(xx,par) ); ++ ok &= TMath::AreEqualAbs(f1->EvalPar(xx,par), f0->EvalPar(xx,par), 2e-16); + return ok; + } + +@@ -326,7 +326,7 @@ + ok &= (f1->Eval(1.5,2.5,3.5) == f0->Eval(1.5,2.5,3.5) ); + double par[2] = {3,4}; + double xx[3] = {0.8,1.6,2.2}; +- ok &= (f1->EvalPar(xx,par) == f0->EvalPar(xx,par) ); ++ ok &= TMath::AreEqualAbs(f1->EvalPar(xx,par), f0->EvalPar(xx,par), 2e-16); + return ok; + } + +@@ -369,12 +369,12 @@ + TF1 f0("f0",[](double *x, double *p){ return p[0]+p[1]*TMath::Gaus(x[0],p[2],p[3]); },-3,3,4 ); + f2.SetParameters(10,1,0,1); + f0.SetParameters(f2.GetParameters() ); +- ok &= (f2.Eval(1) == f0.Eval(1) ); ++ ok &= TMath::AreEqualAbs(f2.Eval(1), f0.Eval(1), 7e-16); + + TF1 f3("f3","f1+[0]"); + // param order should be the same + f3.SetParameters( f2.GetParameters() ); +- ok &= (f2.Eval(1) == f0.Eval(1) ); ++ ok &= TMath::AreEqualAbs(f3.Eval(1), f0.Eval(1), 7e-16); + return ok; + } + +@@ -465,7 +465,7 @@ + auto func = [](double *x, double *p){ return TMath::Sqrt(((TMath::Sign(1,p[0])*TMath::Sq(p[0]/x[0]))+(TMath::Sq(p[1])*(TMath::Power(x[0],(p[3]-1)))))+TMath::Sq(p[2])); }; + TF1 f6("f6",func,-10,10,4); + f5.SetParameters(-1,2,3,4); f6.SetParameters(f5.GetParameters()); +- ok &= (f5.Eval(2) == f6.Eval(2) ); ++ ok &= TMath::AreEqualAbs(f5.Eval(2), f6.Eval(2), 4.e-16); + return ok; + } + +@@ -485,7 +485,7 @@ + // keep same order in evaluation + TF1 f0("f0",[](double *x, double *p){ return p[1]*sin(x[0]) + p[0]*cos(x[0]);},0.,10.,2); + f0.SetParameters(1.1,2.1); +- ok &= (fsincos.Eval(2) == f0.Eval(2) ); ++ ok &= TMath::AreEqualAbs(fsincos.Eval(2), f0.Eval(2), 3e-16); + return ok; + + } diff --git a/root-abitags.patch b/root-abitags.patch new file mode 100644 index 0000000..040474a --- /dev/null +++ b/root-abitags.patch @@ -0,0 +1,1267 @@ +diff -Nur root-6.06.02.orig/interpreter/llvm/src/docs/ItaniumMangleAbiTags.rst root-6.06.02/interpreter/llvm/src/docs/ItaniumMangleAbiTags.rst +--- root-6.06.02.orig/interpreter/llvm/src/docs/ItaniumMangleAbiTags.rst 1970-01-01 01:00:00.000000000 +0100 ++++ root-6.06.02/interpreter/llvm/src/docs/ItaniumMangleAbiTags.rst 2016-03-20 14:30:16.912570532 +0100 +@@ -0,0 +1,90 @@ ++======== ++Abi Tags ++======== ++ ++Introduction ++============ ++ ++This text tries to describe gcc semantic for mangling "abi_tag" attributes ++described in https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html ++ ++There is no guarantee the following rules are correct, complete or make sense ++in any way as they were determined empirically by experiments with gcc5. ++ ++Declaration ++=========== ++ ++Abi tags are declared in an abi_tag attribute and can be applied to a ++function, variable, class or inline namespace declaration. The attribute takes ++one or more strings (called tags); the order does not matter. ++ ++See https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html for ++details. ++ ++Tags on an inline namespace are called "implicit tags", all other tags are ++"explicit tags". ++ ++Mangling ++======== ++ ++All tags that are "active" on a are emitted after the ++, before or , and are part of ++the same the is. ++ ++They are mangled as: ++ ++ ::= * # sort by name ++ ::= B ++ ++Example: ++ ++ __attribute__((abi_tag("test"))) ++ void Func(); ++ ++ gets mangled as: _Z4FuncB4testv (prettified as `Func[abi:test]()`) ++ ++Active tags ++=========== ++ ++A namespace has never any active tags; for types (class / struct / union / ++enum) the explicit tags are the active tags. ++ ++For variables and functions the active tags are the explicit tags plus any ++"required tags" which are not in the "available tags" set: ++ ++ derived-tags := (required-tags - available-tags) ++ active-tags := explicit-tags + derived-tags ++ ++Required tags for a function ++============================ ++ ++If a function is used as a local scope for another name, and is part of ++another function as local scope, it doesn't have any required tags. ++ ++If a function is used as a local scope for a guard variable name, it doesn't ++have any required tags. ++ ++Otherwise the function requires any implicit or explicit tag used in the name ++for the return type. ++ ++Required tags for a variable ++============================ ++ ++A variable requires any implicit or explicit tag used in its type. ++ ++Available tags ++============== ++ ++All tags used in the prefix and in the template arguments for a name are ++available; for functions also all tags from the (which ++might include the return type for template functions) are available. ++ ++For s all active tags used in the local part () are available, but not implicit tags which were not active! ++ ++Implicit and explicit tags used in the for a function (as ++in the type of a cast operator) are NOT available. ++ ++Example: a cast operator to std::string (which is ++std::__cxx11::basic_string<...>) will use 'cxx11' as active tag, as it is ++required from the return type `std::string` but not available. +diff -Nur root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Basic/Attr.td root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Basic/Attr.td +--- root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Basic/Attr.td 2016-03-03 10:36:03.000000000 +0100 ++++ root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Basic/Attr.td 2016-03-20 14:30:16.913570542 +0100 +@@ -144,6 +144,7 @@ + class UnsignedArgument : Argument; + class VariadicUnsignedArgument : Argument; + class VariadicExprArgument : Argument; ++class VariadicStringArgument : Argument; + + // A version of the form major.minor[.subminor]. + class VersionArgument : Argument; +@@ -336,6 +337,14 @@ + // Attributes begin here + // + ++def AbiTag : Attr { ++ let Spellings = [GCC<"abi_tag">]; ++ let Args = [VariadicStringArgument<"Tags">]; ++ let Subjects = SubjectList<[Struct, Var, Function, Namespace], ErrorDiag, ++ "ExpectedStructClassVariableFunctionMethodOrInlineNamespace">; ++ let Documentation = [Undocumented]; ++} ++ + def AddressSpace : TypeAttr { + let Spellings = [GNU<"address_space">]; + let Args = [IntArgument<"AddressSpace">]; +diff -Nur root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td +--- root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td 2016-03-03 10:36:03.000000000 +0100 ++++ root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td 2016-03-20 14:30:16.928570683 +0100 +@@ -2255,7 +2255,8 @@ + "Objective-C instance methods|init methods of interface or class extension declarations|" + "variables, functions and classes|Objective-C protocols|" + "functions and global variables|structs, unions, and typedefs|structs and typedefs|" +- "interface or protocol declarations|kernel functions}1">, ++ "interface or protocol declarations|kernel functions|" ++ "structs, classes, variables, functions, methods and inline namespaces}1">, + InGroup; + def err_attribute_wrong_decl_type : Error; + def warn_type_attribute_wrong_type : Warning< +@@ -3922,6 +3923,12 @@ + def err_redefinition_extern_inline : Error< + "redefinition of a 'extern inline' function %0 is not supported in " + "%select{C99 mode|C++}1">; ++def err_attr_abi_tag_only_on_inline_namespace : ++ Error<"abi_tag attribute only allowed on inline namespaces">; ++def err_abi_tag_on_redeclaration : ++ Error<"cannot add abi_tag attribute in redeclaration">; ++def err_new_abi_tag_on_redeclaration : ++ Error<"abi_tag %0 missing in original declaration">; + + def note_deleted_dtor_no_operator_delete : Note< + "virtual destructor requires an unambiguous, accessible 'operator delete'">; +diff -Nur root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Sema/AttributeList.h root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Sema/AttributeList.h +--- root-6.06.02.orig/interpreter/llvm/src/tools/clang/include/clang/Sema/AttributeList.h 2016-03-03 10:36:03.000000000 +0100 ++++ root-6.06.02/interpreter/llvm/src/tools/clang/include/clang/Sema/AttributeList.h 2016-03-20 14:30:16.928570683 +0100 +@@ -846,7 +846,8 @@ + ExpectedStructOrUnionOrTypedef, + ExpectedStructOrTypedef, + ExpectedObjectiveCInterfaceOrProtocol, +- ExpectedKernelFunction ++ ExpectedKernelFunction, ++ ExpectedStructClassVariableFunctionMethodOrInlineNamespace + }; + + } // end namespace clang +diff -Nur root-6.06.02.orig/interpreter/llvm/src/tools/clang/lib/AST/ItaniumMangle.cpp root-6.06.02/interpreter/llvm/src/tools/clang/lib/AST/ItaniumMangle.cpp +--- root-6.06.02.orig/interpreter/llvm/src/tools/clang/lib/AST/ItaniumMangle.cpp 2016-03-03 10:36:03.000000000 +0100 ++++ root-6.06.02/interpreter/llvm/src/tools/clang/lib/AST/ItaniumMangle.cpp 2016-03-20 14:30:16.930570702 +0100 +@@ -202,6 +202,8 @@ + class CXXNameMangler { + ItaniumMangleContextImpl &Context; + raw_ostream &Out; ++ bool NullOut = false; ++ bool DisableDerivedAbiTags = false; + + /// The "structor" is the top-level declaration being mangled, if + /// that's not a template specialization; otherwise it's the pattern +@@ -251,6 +253,167 @@ + + } FunctionTypeDepth; + ++ // abi_tag is a gcc attribute, taking one or more strings called "tags". ++ // ++ // the goal is to annotage against which version of a library an object was ++ // build and to be able to provide backwards compatibility ("dual abi"). ++ // ++ // for this the emitted mangled names have to be different, while you don't ++ // want the user to have to use different names in the source. ++ // ++ // the abi_tag can be present on Struct, Var and Function declarations as ++ // "explicit" tag, and on inline Namespace as "implicit" tag. Explicit tags ++ // are always emitted after the unqualified name, and (implicit) tags on ++ // namespace are not. ++ // ++ // For functions and variables there is a set of "implicitly available" ++ // tags. These tags are: all tags from the namespace/structs the name is ++ // embedded in, all tags from any template arguments of the name, and, for ++ // functions, alls tags used anywhere in the (i.e. ++ // parameters and sometimes the return type). ++ // ++ // For functions this is basically the list of all tags from the signature ++ // without the unqualified name and usually without the return type of the ++ // function. In `operator Type()` Type is NOT part of that list, as it is ++ // part of the unqualified name! ++ // ++ // Now all tags from the function return type/variable type which are not ++ // "implicitly available" must be added to the explicit list of tags, and ++ // are emitted after the unqualified name. ++ // ++ // Example: ++ // namespace std { ++ // inline namespace __cxx11 __attribute__((__abi_tag__("cxx11"))) { } ++ // inline namespace __cxx11 { ++ // struct string { }; ++ // } ++ // } ++ // ++ // std::string foo(); // needs abi tag "cxx11" on foo ++ // std::string foo(std::string); // does NOT need abi tag "cxx11" on foo ++ // __attribute__((__abi_tag__("cxx11"))) ++ // std::string foo2(std::string); // emit abi tag "cxx11" on foo anyway ++ // ++ // The tags are sorted by name before emitting, and are serialized as ++ // ::= B <"tag" source-name> ++ ++ typedef SmallVector AbiTagList; ++ ++ // state to gather all implicit and explicit tags used in a mangled name. ++ // must always have an instance of this while emitting any name to keep ++ // track. ++ // ++ // TODO(abitags): how to handle substituted names? they should add the tags used in ++ // the substitution to the list of available tags. ++ class AbiTagState final { ++ public: ++ //! all abi tags used implicitly or explicitly ++ std::set UsedAbiTags; ++ //! all explicit abi tags (i.e. not from namespace) ++ std::set EmittedAbiTags; ++ ++ AbiTagState* &LinkHead; ++ AbiTagState *Parent{nullptr}; ++ ++ bool LinkActive{false}; ++ ++ explicit AbiTagState(AbiTagState* &linkHead) ++ : LinkHead(linkHead) { ++ Parent = LinkHead; ++ LinkHead = this; ++ LinkActive = true; ++ } ++ ++ // no copy, no move ++ AbiTagState(AbiTagState const&) = delete; ++ AbiTagState& operator=(AbiTagState const&) = delete; ++ ++ ~AbiTagState() { ++ pop(); ++ } ++ ++ void pop() { ++ if (!LinkActive) return; ++ ++ assert(LinkHead == this && "abi tag link head must point to us on destruction"); ++ LinkActive = false; ++ if (Parent) { ++ Parent->UsedAbiTags.insert(UsedAbiTags.begin(), UsedAbiTags.end()); ++ Parent->EmittedAbiTags.insert(EmittedAbiTags.begin(), EmittedAbiTags.end()); ++ } ++ LinkHead = Parent; ++ } ++ ++ void write(raw_ostream &Out, const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { ++ ND = cast(ND->getCanonicalDecl()); ++ ++ if (dyn_cast(ND) || dyn_cast(ND)) { ++ // assert(AdditionalAbiTags && "function and variables need a list of additional abi tags"); ++ } else { ++ assert(!AdditionalAbiTags && "only function and variables need a list of additional abi tags"); ++ if (const auto* NS = dyn_cast(ND)) { ++ if (const auto* AbiTag = NS->getAttr()) { ++ for (const auto& Tag: AbiTag->tags()) { ++ UsedAbiTags.insert(Tag); ++ } ++ } ++ // don't emit abi tags for namespaces ++ return; ++ } ++ } ++ ++ AbiTagList TagList; ++ if (const auto* AbiTag = ND->getAttr()) { ++ for (const auto& Tag: AbiTag->tags()) { ++ UsedAbiTags.insert(Tag); ++ // AbiTag->tags() is sorted and has no duplicates ++ TagList.push_back(Tag); ++ } ++ } ++ ++ if (AdditionalAbiTags) { ++ for (const auto& Tag: *AdditionalAbiTags) { ++ UsedAbiTags.insert(Tag); ++ if (std::find(TagList.begin(), TagList.end(), Tag) == TagList.end()) { ++ // don't insert duplicates ++ TagList.push_back(Tag); ++ } ++ } ++ // AbiTag->tags() are already sorted; only add if we had additional tags ++ std::sort(TagList.begin(), TagList.end()); ++ } ++ ++ writeSortedUniqueAbiTags(Out, TagList); ++ } ++ ++ protected: ++ template ++ void writeSortedUniqueAbiTags(raw_ostream &Out, TagList const& AbiTags) { ++ for (const auto& Tag: AbiTags) { ++ EmittedAbiTags.insert(Tag); ++ Out << "B"; ++ Out << Tag.size(); ++ Out << Tag; ++ } ++ } ++ } *AbiTags = nullptr; ++ AbiTagState AbiTagsRoot{AbiTags}; ++ ++ struct TemporaryDisableDerivedAbiTags { ++ bool& StateRef; ++ bool OldState; ++ ++ TemporaryDisableDerivedAbiTags(bool& State, bool Disable = true) ++ : StateRef(State) { ++ OldState = StateRef; ++ StateRef = Disable; ++ } ++ TemporaryDisableDerivedAbiTags(TemporaryDisableDerivedAbiTags const&) = delete; ++ ~TemporaryDisableDerivedAbiTags() { ++ StateRef = OldState; ++ } ++ }; ++ + llvm::DenseMap Substitutions; + + ASTContext &getASTContext() const { return Context.getASTContext(); } +@@ -273,6 +436,10 @@ + : Context(C), Out(Out_), Structor(getStructor(D)), StructorType(Type), + SeqID(0) { } + ++ CXXNameMangler(CXXNameMangler &Outer, llvm::raw_null_ostream &Out_) ++ : Context(Outer.Context), Out(Out_), NullOut(true), Structor(Outer.Structor), StructorType(Outer.StructorType), ++ SeqID(Outer.SeqID) { } ++ + #if MANGLE_CHECKER + ~CXXNameMangler() { + if (Out.str()[0] == '\01') +@@ -286,18 +453,21 @@ + #endif + raw_ostream &getStream() { return Out; } + ++ void disableDerivedAbiTags() { DisableDerivedAbiTags = true; } ++ + void mangle(const NamedDecl *D, StringRef Prefix = "_Z"); + void mangleCallOffset(int64_t NonVirtual, int64_t Virtual); + void mangleNumber(const llvm::APSInt &I); + void mangleNumber(int64_t Number); + void mangleFloat(const llvm::APFloat &F); +- void mangleFunctionEncoding(const FunctionDecl *FD); ++ void mangleFunctionEncoding(const FunctionDecl *FD, bool ExcludeUnqualifiedName = false); + void mangleSeqID(unsigned SeqID); +- void mangleName(const NamedDecl *ND); ++ void mangleName(const NamedDecl *ND, bool ExcludeUnqualifiedName = false); + void mangleType(QualType T); + void mangleNameOrStandardSubstitution(const NamedDecl *ND); + + private: ++ void writeAbiTags(const NamedDecl *ND, const AbiTagList *AdditionalAbiTags = nullptr); + + bool mangleSubstitution(const NamedDecl *ND); + bool mangleSubstitution(QualType T); +@@ -326,31 +496,49 @@ + DeclarationName name, + unsigned KnownArity = UnknownArity); + +- void mangleName(const TemplateDecl *TD, ++ void mangleFunctionEncodingBareType(const FunctionDecl *FD); ++ ++ void mangleNameWithAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName); ++ void mangleTemplateName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, + const TemplateArgument *TemplateArgs, + unsigned NumTemplateArgs); +- void mangleUnqualifiedName(const NamedDecl *ND) { +- mangleUnqualifiedName(ND, ND->getDeclName(), UnknownArity); ++ void mangleUnqualifiedName(const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { ++ mangleUnqualifiedName(ND, ND->getDeclName(), UnknownArity, AdditionalAbiTags); + } + void mangleUnqualifiedName(const NamedDecl *ND, DeclarationName Name, +- unsigned KnownArity); +- void mangleUnscopedName(const NamedDecl *ND); +- void mangleUnscopedTemplateName(const TemplateDecl *ND); +- void mangleUnscopedTemplateName(TemplateName); ++ unsigned KnownArity, const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedName(const NamedDecl *ND, const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedTemplateName(const TemplateDecl *ND, ++ const AbiTagList *AdditionalAbiTags); ++ void mangleUnscopedTemplateName(TemplateName, ++ const AbiTagList *AdditionalAbiTags); + void mangleSourceName(const IdentifierInfo *II); +- void mangleLocalName(const Decl *D); ++ void mangleLocalName(const Decl *D, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName); + void mangleBlockForPrefix(const BlockDecl *Block); + void mangleUnqualifiedBlock(const BlockDecl *Block); + void mangleLambda(const CXXRecordDecl *Lambda); + void mangleNestedName(const NamedDecl *ND, const DeclContext *DC, +- bool NoFunction=false); ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName); + void mangleNestedName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, + const TemplateArgument *TemplateArgs, + unsigned NumTemplateArgs); + void manglePrefix(NestedNameSpecifier *qualifier); + void manglePrefix(const DeclContext *DC, bool NoFunction=false); + void manglePrefix(QualType type); +- void mangleTemplatePrefix(const TemplateDecl *ND, bool NoFunction=false); ++ void mangleTemplatePrefix(const TemplateDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction = false, ++ bool ExcludeUnqualifiedName = false); + void mangleTemplatePrefix(TemplateName Template); + void mangleOperatorName(OverloadedOperatorKind OO, unsigned Arity); + void mangleQualifiers(Qualifiers Quals); +@@ -391,6 +579,10 @@ + void mangleTemplateParameter(unsigned Index); + + void mangleFunctionParam(const ParmVarDecl *parm); ++ ++ std::set getTagsFromPrefixAndTemplateArguments(const NamedDecl *ND); ++ AbiTagList makeAdditionalTagsForFunction(const FunctionDecl *FD); ++ AbiTagList makeAdditionalTagsForVariable(const VarDecl *VD); + }; + + } +@@ -441,6 +633,11 @@ + return true; + } + ++void CXXNameMangler::writeAbiTags(const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { ++ assert(AbiTags && "require AbiTagState"); ++ if (AbiTags) AbiTags->write(Out, ND, DisableDerivedAbiTags ? nullptr : AdditionalAbiTags); ++} ++ + void CXXNameMangler::mangle(const NamedDecl *D, StringRef Prefix) { + // ::= _Z + // ::= +@@ -456,14 +653,28 @@ + mangleName(cast(D)); + } + +-void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) { +- // ::= +- mangleName(FD); +- ++void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD, bool ExcludeUnqualifiedName) { + // Don't mangle in the type if this isn't a decl we should typically mangle. +- if (!Context.shouldMangleDeclName(FD)) ++ if (!Context.shouldMangleDeclName(FD)) { ++ mangleNameWithAbiTags(FD, /* AdditionalAbiTags */ nullptr, ExcludeUnqualifiedName); + return; ++ } ++ ++ // ::= ++ ++ if (ExcludeUnqualifiedName) ++ { ++ // running makeAdditionalTagsForFunction would loop, don't need it here anyway ++ mangleNameWithAbiTags(FD, /* AdditionalAbiTags */ nullptr, ExcludeUnqualifiedName); ++ } else { ++ AbiTagList AdditionalAbiTags = makeAdditionalTagsForFunction(FD); ++ mangleNameWithAbiTags(FD, &AdditionalAbiTags, ExcludeUnqualifiedName); ++ } ++ ++ mangleFunctionEncodingBareType(FD); ++} + ++void CXXNameMangler::mangleFunctionEncodingBareType(const FunctionDecl *FD) { + if (FD->hasAttr()) { + FunctionTypeDepthState Saved = FunctionTypeDepth.push(); + Out << "Ua9enable_ifI"; +@@ -509,7 +720,7 @@ + FD = PrimaryTemplate->getTemplatedDecl(); + } + +- mangleBareFunctionType(FD->getType()->getAs(), ++ mangleBareFunctionType(FD->getType()->getAs(), + MangleReturnType); + } + +@@ -567,7 +778,21 @@ + return nullptr; + } + +-void CXXNameMangler::mangleName(const NamedDecl *ND) { ++// must not be run from mangleLocalName for the as it would loop otherwise. ++void CXXNameMangler::mangleName(const NamedDecl *ND, bool ExcludeUnqualifiedName) { ++ if (!ExcludeUnqualifiedName) { ++ if (const VarDecl *VD = dyn_cast(ND)) { ++ AbiTagList VariableAdditionalAbiTags = makeAdditionalTagsForVariable(VD); ++ mangleNameWithAbiTags(VD, &VariableAdditionalAbiTags, ExcludeUnqualifiedName); ++ return; ++ } ++ } ++ mangleNameWithAbiTags(ND, nullptr, ExcludeUnqualifiedName); ++} ++ ++void CXXNameMangler::mangleNameWithAbiTags(const NamedDecl *ND, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName) { + // ::= + // ::= + // ::= +@@ -583,7 +808,7 @@ + while (!DC->isNamespace() && !DC->isTranslationUnit()) + DC = getEffectiveParentContext(DC); + else if (GetLocalClassDecl(ND)) { +- mangleLocalName(ND); ++ mangleLocalName(ND, AdditionalAbiTags, ExcludeUnqualifiedName); + return; + } + +@@ -593,76 +818,88 @@ + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleUnscopedTemplateName(TD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedTemplateName(TD, AdditionalAbiTags); + mangleTemplateArgs(*TemplateArgs); + return; + } + +- mangleUnscopedName(ND); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedName(ND, AdditionalAbiTags); + return; + } + + if (isLocalContainerContext(DC)) { +- mangleLocalName(ND); ++ mangleLocalName(ND, AdditionalAbiTags, ExcludeUnqualifiedName); + return; + } + +- mangleNestedName(ND, DC); ++ mangleNestedName(ND, DC, AdditionalAbiTags, /* NoFunction */ false, ExcludeUnqualifiedName); + } +-void CXXNameMangler::mangleName(const TemplateDecl *TD, +- const TemplateArgument *TemplateArgs, +- unsigned NumTemplateArgs) { ++ ++void CXXNameMangler::mangleTemplateName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, ++ const TemplateArgument *TemplateArgs, ++ unsigned NumTemplateArgs) { + const DeclContext *DC = IgnoreLinkageSpecDecls(getEffectiveDeclContext(TD)); + + if (DC->isTranslationUnit() || isStdNamespace(DC)) { +- mangleUnscopedTemplateName(TD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnscopedTemplateName(TD, AdditionalAbiTags); + mangleTemplateArgs(TemplateArgs, NumTemplateArgs); + } else { +- mangleNestedName(TD, TemplateArgs, NumTemplateArgs); ++ mangleNestedName(TD, AdditionalAbiTags, ExcludeUnqualifiedName, TemplateArgs, NumTemplateArgs); + } + } + +-void CXXNameMangler::mangleUnscopedName(const NamedDecl *ND) { ++void CXXNameMangler::mangleUnscopedName(const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= St # ::std:: + + if (isStdNamespace(IgnoreLinkageSpecDecls(getEffectiveDeclContext(ND)))) + Out << "St"; + +- mangleUnqualifiedName(ND); ++ mangleUnqualifiedName(ND, AdditionalAbiTags); + } + +-void CXXNameMangler::mangleUnscopedTemplateName(const TemplateDecl *ND) { ++void CXXNameMangler::mangleUnscopedTemplateName(const TemplateDecl *ND, ++ const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= + if (mangleSubstitution(ND)) + return; + + // ::= +- if (const auto *TTP = dyn_cast(ND)) ++ if (const auto *TTP = dyn_cast(ND)) { ++ assert(!AdditionalAbiTags && "template template param cannot have abi tags"); // TODO(abitags) + mangleTemplateParameter(TTP->getIndex()); +- else +- mangleUnscopedName(ND->getTemplatedDecl()); ++ } else { ++ mangleUnscopedName(ND->getTemplatedDecl(), AdditionalAbiTags); ++ } + + addSubstitution(ND); + } + +-void CXXNameMangler::mangleUnscopedTemplateName(TemplateName Template) { ++void CXXNameMangler::mangleUnscopedTemplateName(TemplateName Template, ++ const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= + if (TemplateDecl *TD = Template.getAsTemplateDecl()) +- return mangleUnscopedTemplateName(TD); ++ return mangleUnscopedTemplateName(TD, AdditionalAbiTags); + + if (mangleSubstitution(Template)) + return; + ++ assert(!AdditionalAbiTags && "dependent template name cannot have abi tags"); // TODO(abitags) ++ + DependentTemplateName *Dependent = Template.getAsDependentTemplateName(); + assert(Dependent && "Not a dependent template name?"); + if (const IdentifierInfo *Id = Dependent->getIdentifier()) + mangleSourceName(Id); + else + mangleOperatorName(Dependent->getOperator(), UnknownArity); +- ++ + addSubstitution(Template); + } + +@@ -824,6 +1061,7 @@ + else + Out << "sr"; + mangleSourceName(qualifier->getAsNamespace()->getIdentifier()); ++ writeAbiTags(qualifier->getAsNamespace()); + break; + case NestedNameSpecifier::NamespaceAlias: + if (qualifier->getPrefix()) +@@ -832,6 +1070,7 @@ + else + Out << "sr"; + mangleSourceName(qualifier->getAsNamespaceAlias()->getIdentifier()); ++ writeAbiTags(qualifier->getAsNamespaceAlias()); + break; + + case NestedNameSpecifier::TypeSpec: +@@ -917,15 +1156,18 @@ + + case Type::Typedef: + mangleSourceName(cast(type)->getDecl()->getIdentifier()); ++ writeAbiTags(cast(type)->getDecl()); + break; + + case Type::UnresolvedUsing: + mangleSourceName(cast(type)->getDecl() + ->getIdentifier()); ++ writeAbiTags(cast(type)->getDecl()); + break; + + case Type::Record: + mangleSourceName(cast(type)->getDecl()->getIdentifier()); ++ writeAbiTags(cast(type)->getDecl()); + break; + + case Type::TemplateSpecialization: { +@@ -943,6 +1185,7 @@ + if (isa(temp)) goto unresolvedType; + + mangleSourceName(temp->getIdentifier()); ++ writeAbiTags(temp); + break; + } + +@@ -974,16 +1217,19 @@ + case Type::InjectedClassName: + mangleSourceName(cast(type)->getDecl() + ->getIdentifier()); ++ writeAbiTags(cast(type)->getDecl()); + break; + + case Type::DependentName: + mangleSourceName(cast(type)->getIdentifier()); ++ // writeAbiTags(cast(type)); + break; + + case Type::DependentTemplateSpecialization: { + const DependentTemplateSpecializationType *tst + = cast(type); + mangleSourceName(tst->getIdentifier()); ++ // writeAbiTags(tst); + mangleTemplateArgs(tst->getArgs(), tst->getNumArgs()); + break; + } +@@ -1033,6 +1279,7 @@ + } + + mangleSourceName(qualifier->getAsIdentifier()); ++ writeAbiTags(qualifier->getAsNamespaceAlias()); + break; + } + +@@ -1049,12 +1296,14 @@ + DeclarationName name, + unsigned knownArity) { + if (qualifier) mangleUnresolvedPrefix(qualifier, firstQualifierLookup); +- mangleUnqualifiedName(nullptr, name, knownArity); ++ mangleUnqualifiedName(nullptr, name, knownArity, ++ /*AdditionalAbiTags*/ nullptr); + } + + void CXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, + DeclarationName Name, +- unsigned KnownArity) { ++ unsigned KnownArity, ++ const AbiTagList *AdditionalAbiTags) { + // ::= + // ::= + // ::= +@@ -1072,6 +1321,8 @@ + Out << 'L'; + + mangleSourceName(II); ++ if (ND) ++ writeAbiTags(ND, AdditionalAbiTags); + break; + } + +@@ -1111,6 +1362,7 @@ + assert(FD->getIdentifier() && "Data member name isn't an identifier!"); + + mangleSourceName(FD->getIdentifier()); ++ // TODO(abitags): not emitting abi tags: internal name anyway + break; + } + +@@ -1131,6 +1383,9 @@ + assert(D->getDeclName().getAsIdentifierInfo() && + "Typedef was not named!"); + mangleSourceName(D->getDeclName().getAsIdentifierInfo()); ++ assert(!AdditionalAbiTags && "Type cannot have additional abi tags"); ++ // explicit abi tags are still possible; take from underlying type, not from typedef. ++ writeAbiTags(TD, nullptr); + break; + } + +@@ -1140,6 +1395,7 @@ + // ::= + # Parameter types or 'v' for 'void'. + if (const CXXRecordDecl *Record = dyn_cast(TD)) { + if (Record->isLambda() && Record->getLambdaManglingNumber()) { ++ assert(!AdditionalAbiTags && "Lambda type cannot have additional abi tags"); + mangleLambda(Record); + break; + } +@@ -1151,6 +1407,7 @@ + if (UnnamedMangle > 1) + Out << llvm::utostr(UnnamedMangle - 2); + Out << '_'; ++ writeAbiTags(TD, AdditionalAbiTags); + break; + } + +@@ -1183,6 +1440,7 @@ + // Otherwise, use the complete constructor name. This is relevant if a + // class with a constructor is declared within a constructor. + mangleCXXCtorType(Ctor_Complete); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXDestructorName: +@@ -1194,12 +1452,14 @@ + // Otherwise, use the complete destructor name. This is relevant if a + // class with a destructor is declared within a destructor. + mangleCXXDtorType(Dtor_Complete); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXConversionFunctionName: + // ::= cv # (cast) + Out << "cv"; + mangleType(Name.getCXXNameType()); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXOperatorName: { +@@ -1223,6 +1483,7 @@ + // FIXME: This mangling is not yet official. + Out << "li"; + mangleSourceName(Name.getCXXLiteralIdentifier()); ++ writeAbiTags(ND, AdditionalAbiTags); + break; + + case DeclarationName::CXXUsingDirective: +@@ -1239,7 +1500,9 @@ + + void CXXNameMangler::mangleNestedName(const NamedDecl *ND, + const DeclContext *DC, +- bool NoFunction) { ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName) { + // + // ::= N [] [] E + // ::= N [] [] +@@ -1259,30 +1522,35 @@ + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleTemplatePrefix(TD, NoFunction); ++ mangleTemplatePrefix(TD, AdditionalAbiTags, NoFunction, ExcludeUnqualifiedName); + mangleTemplateArgs(*TemplateArgs); + } + else { + manglePrefix(DC, NoFunction); +- mangleUnqualifiedName(ND); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(ND, AdditionalAbiTags); + } + + Out << 'E'; + } + void CXXNameMangler::mangleNestedName(const TemplateDecl *TD, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName, + const TemplateArgument *TemplateArgs, + unsigned NumTemplateArgs) { + // ::= N [] E + + Out << 'N'; + +- mangleTemplatePrefix(TD); ++ mangleTemplatePrefix(TD, AdditionalAbiTags, ExcludeUnqualifiedName); + mangleTemplateArgs(TemplateArgs, NumTemplateArgs); + + Out << 'E'; + } + +-void CXXNameMangler::mangleLocalName(const Decl *D) { ++void CXXNameMangler::mangleLocalName(const Decl *D, ++ const AbiTagList *AdditionalAbiTags, ++ bool ExcludeUnqualifiedName) { + // := Z E [] + // := Z E s [] + // := Z E d [ ] +@@ -1294,15 +1562,25 @@ + + Out << 'Z'; + +- if (const ObjCMethodDecl *MD = dyn_cast(DC)) +- mangleObjCMethodName(MD); +- else if (const BlockDecl *BD = dyn_cast(DC)) +- mangleBlockForPrefix(BD); +- else +- mangleFunctionEncoding(cast(DC)); ++ { ++ AbiTagState localAbiTags(AbiTags); ++ ++ if (const ObjCMethodDecl *MD = dyn_cast(DC)) ++ mangleObjCMethodName(MD); ++ else if (const BlockDecl *BD = dyn_cast(DC)) ++ mangleBlockForPrefix(BD); ++ else ++ mangleFunctionEncoding(cast(DC)); ++ ++ // implicit abi tags (from namespace) are not available in the following ++ // entity; reset to actually emitted tags, which are available. ++ localAbiTags.UsedAbiTags = localAbiTags.EmittedAbiTags; ++ } + + Out << 'E'; + ++ TemporaryDisableDerivedAbiTags TemporyDisable(DisableDerivedAbiTags, getStructor(dyn_cast(D)) != Structor); ++ + if (RD) { + // The parameter number is omitted for the last parameter, 0 for the + // second-to-last parameter, 1 for the third-to-last parameter, etc. The +@@ -1327,13 +1605,17 @@ + // Mangle the name relative to the closest enclosing function. + // equality ok because RD derived from ND above + if (D == RD) { +- mangleUnqualifiedName(RD); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(RD, AdditionalAbiTags); + } else if (const BlockDecl *BD = dyn_cast(D)) { + manglePrefix(getEffectiveDeclContext(BD), true /*NoFunction*/); +- mangleUnqualifiedBlock(BD); ++ assert(!AdditionalAbiTags && "Block cannot have additional abi tags"); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedBlock(BD); + } else { + const NamedDecl *ND = cast(D); +- mangleNestedName(ND, getEffectiveDeclContext(ND), true /*NoFunction*/); ++ mangleNestedName(ND, getEffectiveDeclContext(ND), ++ AdditionalAbiTags, true /*NoFunction*/, ExcludeUnqualifiedName); + } + } else if (const BlockDecl *BD = dyn_cast(D)) { + // Mangle a block in a default parameter; see above explanation for +@@ -1350,30 +1632,35 @@ + } + } + +- mangleUnqualifiedBlock(BD); ++ assert(!AdditionalAbiTags && "Block cannot have additional abi tags"); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedBlock(BD); + } else { +- mangleUnqualifiedName(cast(D)); ++ if (!ExcludeUnqualifiedName) ++ mangleUnqualifiedName(cast(D), AdditionalAbiTags); + } + +- if (const NamedDecl *ND = dyn_cast(RD ? RD : D)) { +- unsigned disc; +- if (Context.getNextDiscriminator(ND, disc)) { +- if (disc < 10) +- Out << '_' << disc; +- else +- Out << "__" << disc << '_'; ++ if (!ExcludeUnqualifiedName) { ++ if (const NamedDecl *ND = dyn_cast(RD ? RD : D)) { ++ unsigned disc; ++ if (Context.getNextDiscriminator(ND, disc)) { ++ if (disc < 10) ++ Out << '_' << disc; ++ else ++ Out << "__" << disc << '_'; ++ } + } + } + } + + void CXXNameMangler::mangleBlockForPrefix(const BlockDecl *Block) { + if (GetLocalClassDecl(Block)) { +- mangleLocalName(Block); ++ mangleLocalName(Block, /* AdditionalAbiTags */ nullptr, /* ExcludeUnqualifiedName */ false); + return; + } + const DeclContext *DC = getEffectiveDeclContext(Block); + if (isLocalContainerContext(DC)) { +- mangleLocalName(Block); ++ mangleLocalName(Block, /* AdditionalAbiTags */ nullptr, /* ExcludeUnqualifiedName */ false); + return; + } + manglePrefix(getEffectiveDeclContext(Block)); +@@ -1384,10 +1671,11 @@ + if (Decl *Context = Block->getBlockManglingContextDecl()) { + if ((isa(Context) || isa(Context)) && + Context->getDeclContext()->isRecord()) { +- if (const IdentifierInfo *Name +- = cast(Context)->getIdentifier()) { ++ const auto *ND = cast(Context); ++ if (const IdentifierInfo *Name = ND->getIdentifier()) { + mangleSourceName(Name); +- Out << 'M'; ++ writeAbiTags(ND, /* AdditionalAbiTags */ nullptr); ++ Out << 'M'; + } + } + } +@@ -1420,7 +1708,7 @@ + if (const IdentifierInfo *Name + = cast(Context)->getIdentifier()) { + mangleSourceName(Name); +- Out << 'M'; ++ Out << 'M'; + } + } + } +@@ -1502,11 +1790,11 @@ + // Check if we have a template. + const TemplateArgumentList *TemplateArgs = nullptr; + if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { +- mangleTemplatePrefix(TD); ++ mangleTemplatePrefix(TD, /* AdditionalAbiTags */ nullptr); + mangleTemplateArgs(*TemplateArgs); + } else { + manglePrefix(getEffectiveDeclContext(ND), NoFunction); +- mangleUnqualifiedName(ND); ++ mangleUnqualifiedName(ND, /* AdditionalAbiTags */ nullptr); + } + + addSubstitution(ND); +@@ -1517,7 +1805,7 @@ + // ::= + // ::= + if (TemplateDecl *TD = Template.getAsTemplateDecl()) +- return mangleTemplatePrefix(TD); ++ return mangleTemplatePrefix(TD, /* AdditionalAbiTags */ nullptr); + + if (QualifiedTemplateName *Qualified = Template.getAsQualifiedTemplateName()) + manglePrefix(Qualified->getQualifier()); +@@ -1525,18 +1813,21 @@ + if (OverloadedTemplateStorage *Overloaded + = Template.getAsOverloadedTemplate()) { + mangleUnqualifiedName(nullptr, (*Overloaded->begin())->getDeclName(), +- UnknownArity); ++ UnknownArity, ++ /* AdditionalAbiTags */ nullptr); + return; + } + + DependentTemplateName *Dependent = Template.getAsDependentTemplateName(); + assert(Dependent && "Unknown template name kind?"); + manglePrefix(Dependent->getQualifier()); +- mangleUnscopedTemplateName(Template); ++ mangleUnscopedTemplateName(Template, /* AdditionalAbiTags */ nullptr); + } + + void CXXNameMangler::mangleTemplatePrefix(const TemplateDecl *ND, +- bool NoFunction) { ++ const AbiTagList *AdditionalAbiTags, ++ bool NoFunction, ++ bool ExcludeUnqualifiedName) { + // ::=