root5: fix build

+251 -4
+20 -4
pkgs/applications/science/misc/root/5.nix
··· 1 - { stdenv, fetchurl, cmake, pcre, pkgconfig, python2 1 + { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2 2 2 , libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lzma, gsl_1 3 3 , Cocoa, OpenGL, cf-private, noSplash ? false }: 4 4 ··· 19 19 20 20 patches = [ 21 21 ./sw_vers_root5.patch 22 + 23 + (fetchpatch { 24 + name = "enable_new_gcc.patch"; 25 + url = "https://aur.archlinux.org/cgit/aur.git/plain/enable_new_gcc.patch?h=root5&id=91c50876081a0af36f84ec4f0f9dba869107fa4f"; 26 + sha256 = "1rnp0xlw0yqi7mjs4w145njd79i8kkir1qik7zwicdik9axf8ygm"; 27 + }) 28 + 29 + # prevents rootcint from looking in /usr/includes and such 30 + ./purify_include_paths_root5.patch 31 + 32 + # disable dictionary generation for stuff that includes libc headers 33 + # our glibc requires a modern compiler 34 + ./disable_libc_dicts_root5.patch 22 35 ]; 23 36 24 37 preConfigure = '' 25 38 patchShebangs build/unix/ 26 39 ln -s ${stdenv.lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/ 40 + '' 41 + # Fix CINTSYSDIR for "build" version of rootcint 42 + # This is probably a bug that breaks out-of-source builds 43 + + '' 44 + substituteInPlace cint/cint/src/loadfile.cxx\ 45 + --replace 'env = "cint";' 'env = "'`pwd`'/cint";' 27 46 '' + stdenv.lib.optionalString noSplash '' 28 47 substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true" 29 48 ''; ··· 73 92 description = "A data analysis framework"; 74 93 platforms = platforms.unix; 75 94 maintainers = with maintainers; [ veprbl ]; 76 - # needs to be adapted to work with modern glibc 77 - # it works on darwin by impurely picking up system's libc headers 78 - broken = stdenv.isLinux; 79 95 }; 80 96 }
+27
pkgs/applications/science/misc/root/disable_libc_dicts_root5.patch
··· 1 + diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt 2 + --- a/cint/ROOT/CMakeLists.txt 3 + +++ b/cint/ROOT/CMakeLists.txt 4 + @@ -47,21 +47,13 @@ set(CINTSTLDLLHEADERS 5 + ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h 6 + ) 7 + set(CINTINCDLLNAMES 8 + - stdfunc 9 + +# stdfunc 10 + # stdcxxfunc 11 + ) 12 + set(CINTINCDLLHEADERS 13 + - ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h 14 + +# ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h 15 + # ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h 16 + ) 17 + -if(NOT WIN32) 18 + - set(CINTSTLDLLNAMES ${CINTSTLDLLNAMES} valarray) 19 + - set(CINTSTLDLLHEADERS ${CINTSTLDLLHEADERS} ${CINTDLLDIR}/vary.h) 20 + - set(CINTINCDLLNAMES ${CINTINCDLLNAMES} posix ipc) 21 + - set(CINTINCDLLHEADERS ${CINTINCDLLHEADERS} 22 + - ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/exten.h 23 + - ${CMAKE_SOURCE_DIR}/cint/cint/lib/ipc/ipcif.h) 24 + -endif() 25 + 26 + set(CINTBUILDLOADER 27 + vector
+204
pkgs/applications/science/misc/root/purify_include_paths_root5.patch
··· 1 + diff --git a/cint/cint/src/loadfile.cxx b/cint/cint/src/loadfile.cxx 2 + --- a/cint/cint/src/loadfile.cxx 3 + +++ b/cint/cint/src/loadfile.cxx 4 + @@ -1365,92 +1365,6 @@ int G__statfilename(const char *filenamein, struct stat *statBuf, 5 + } 6 + } 7 + #endif /* G__EDU_VERSION */ 8 + - 9 + -#ifdef G__VISUAL 10 + - /********************************************** 11 + - * try /msdev/include 12 + - **********************************************/ 13 + - if('\0'!=G__cintsysdir[0]) { 14 + - workname.Format("/msdev/include/%s%s",filename(),addpost[i2]); 15 + - res = stat( workname, statBuf ); 16 + - if (res==0) { 17 + - if (fullPath) fullPath->Swap(workname); 18 + - return res; 19 + - } 20 + - } 21 + -#endif /* G__VISUAL */ 22 + - 23 + -#ifdef G__SYMANTEC 24 + - /********************************************** 25 + - * try /sc/include 26 + - **********************************************/ 27 + - if('\0'!=G__cintsysdir[0]) { 28 + - workname.Format("/sc/include/%s%s",filename(),addpost[i2]); 29 + - res = stat( workname, statBuf ); 30 + - if (res==0) { 31 + - if (fullPath) fullPath->Swap(workname); 32 + - return res; 33 + - } 34 + - } 35 + -#endif // G__SYMANTEC 36 + - 37 + -#ifndef G__WIN32 38 + - /********************************************** 39 + - * try /usr/include/filename 40 + - **********************************************/ 41 + - if('\0'!=G__cintsysdir[0]) { 42 + - workname.Format("/usr/include/%s%s",filename(),addpost[i2]); 43 + - res = stat( workname, statBuf ); 44 + - if (res==0) { 45 + - if (fullPath) fullPath->Swap(workname); 46 + - return res; 47 + - } 48 + - } 49 + -#endif 50 + - 51 + -#ifdef __GNUC__ 52 + - /********************************************** 53 + - * try /usr/include/g++/filename 54 + - **********************************************/ 55 + - if('\0'!=G__cintsysdir[0]) { 56 + - workname.Format("/usr/include/g++/%s%s",filename(),addpost[i2]); 57 + - res = stat( workname, statBuf ); 58 + - if (res==0) { 59 + - if (fullPath) fullPath->Swap(workname); 60 + - return res; 61 + - } 62 + - } 63 + -#endif /* __GNUC__ */ 64 + - 65 + -#ifndef G__WIN32 66 + - /* #ifdef __hpux */ 67 + - /********************************************** 68 + - * try /usr/include/CC/filename 69 + - **********************************************/ 70 + - if('\0'!=G__cintsysdir[0]) { 71 + - workname.Format("/usr/include/CC/%s%s",filename(),addpost[i2]); 72 + - res = stat( workname, statBuf ); 73 + - if (res==0) { 74 + - if (fullPath) fullPath->Swap(workname); 75 + - return res; 76 + - } 77 + - } 78 + -#endif 79 + - 80 + -#ifndef G__WIN32 81 + - /********************************************** 82 + - * try /usr/include/codelibs/filename 83 + - **********************************************/ 84 + - if('\0'!=G__cintsysdir[0]) { 85 + - workname.Format("/usr/include/codelibs/%s%s" 86 + - ,filename(),addpost[i2]); 87 + - res = stat( workname, statBuf ); 88 + - if (res==0) { 89 + - if (fullPath) fullPath->Swap(workname); 90 + - return res; 91 + - } 92 + - } 93 + -#endif 94 + } 95 + return -1; 96 + } 97 + @@ -1960,107 +1874,6 @@ int G__loadfile(const char *filenamein) 98 + } 99 + if(G__ifile.fp) break; 100 + #endif /* G__EDU_VERSION */ 101 + - 102 + -#ifdef G__VISUAL 103 + - /********************************************** 104 + - * try /msdev/include 105 + - **********************************************/ 106 + - if('\0'!=G__cintsysdir[0]) { 107 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/msdev/include/%s%s",filename(),addpost[i2]); 108 + -#ifndef G__WIN32 109 + - G__ifile.fp = fopen(G__ifile.name,"r"); 110 + -#else 111 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 112 + -#endif 113 + - G__globalcomp=G__store_globalcomp; 114 + - } 115 + - if(G__ifile.fp) break; 116 + -#endif /* G__VISUAL */ 117 + - 118 + -#ifdef G__SYMANTEC 119 + - /********************************************** 120 + - * try /sc/include 121 + - **********************************************/ 122 + - if('\0'!=G__cintsysdir[0]) { 123 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/sc/include/%s%s",filename(),addpost[i2]); 124 + -#ifndef G__WIN32 125 + - G__ifile.fp = fopen(G__ifile.name,"r"); 126 + -#else 127 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 128 + -#endif 129 + - G__globalcomp=G__store_globalcomp; 130 + - } 131 + - if(G__ifile.fp) break; 132 + -#endif /* G__SYMANTEC */ 133 + - 134 + -#ifndef G__WIN32 135 + - /********************************************** 136 + - * try /usr/include/filename 137 + - **********************************************/ 138 + - if('\0'!=G__cintsysdir[0]) { 139 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/%s%s",filename(),addpost[i2]); 140 + -#ifndef G__WIN32 141 + - G__ifile.fp = fopen(G__ifile.name,"r"); 142 + -#else 143 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 144 + -#endif 145 + - G__globalcomp=G__store_globalcomp; 146 + - } 147 + - if(G__ifile.fp) break; 148 + -#endif 149 + - 150 + -#ifdef __GNUC__ 151 + - /********************************************** 152 + - * try /usr/include/g++/filename 153 + - **********************************************/ 154 + - if('\0'!=G__cintsysdir[0]) { 155 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/g++/%s%s",filename(),addpost[i2]); 156 + -#ifndef G__WIN32 157 + - G__ifile.fp = fopen(G__ifile.name,"r"); 158 + -#else 159 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 160 + -#endif 161 + - G__globalcomp=G__store_globalcomp; 162 + - } 163 + - if(G__ifile.fp) break; 164 + -#endif /* __GNUC__ */ 165 + - 166 + -#ifndef G__WIN32 167 + -/* #ifdef __hpux */ 168 + - /********************************************** 169 + - * try /usr/include/CC/filename 170 + - **********************************************/ 171 + - if('\0'!=G__cintsysdir[0]) { 172 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/CC/%s%s",filename(),addpost[i2]); 173 + -#ifndef G__WIN32 174 + - G__ifile.fp = fopen(G__ifile.name,"r"); 175 + -#else 176 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 177 + -#endif 178 + - G__globalcomp=G__store_globalcomp; 179 + - } 180 + - if(G__ifile.fp) break; 181 + -/* #endif __hpux */ 182 + -#endif 183 + - 184 + -#ifndef G__WIN32 185 + -/* #ifdef __hpux */ 186 + - /********************************************** 187 + - * try /usr/include/codelibs/filename 188 + - **********************************************/ 189 + - if('\0'!=G__cintsysdir[0]) { 190 + - G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/codelibs/%s%s" 191 + - ,filename(),addpost[i2]); 192 + -#ifndef G__WIN32 193 + - G__ifile.fp = fopen(G__ifile.name,"r"); 194 + -#else 195 + - G__ifile.fp = fopen(G__ifile.name,"rb"); 196 + -#endif 197 + - G__globalcomp=G__store_globalcomp; 198 + - } 199 + - if(G__ifile.fp) break; 200 + -/* #endif __hpux */ 201 + -#endif 202 + } 203 + } 204 +