From 9820501d6a042cd272a86e77bcbaa1cf53d8096f Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sat, 27 Apr 2013 15:14:01 +0200 Subject: [PATCH] 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