From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sci-physics/root/Manifest | 25 ++ sci-physics/root/files/proofd.confd | 12 + sci-physics/root/files/proofd.initd | 25 ++ .../root/files/root-5.28.00b-glibc212.patch | 11 + sci-physics/root/files/root-5.32.00-afs.patch | 33 ++ sci-physics/root/files/root-5.32.00-cfitsio.patch | 13 + sci-physics/root/files/root-5.32.00-chklib64.patch | 24 + sci-physics/root/files/root-5.32.00-dotfont.patch | 58 +++ .../root/files/root-5.34.05-nobyte-compile.patch | 137 ++++++ sci-physics/root/files/root-5.34.13-unuran.patch | 40 ++ sci-physics/root/files/root-5.34.26-ldflags.patch | 19 + sci-physics/root/files/root-6.00.01-dotfont.patch | 58 +++ sci-physics/root/files/root-6.00.01-llvm.patch | 13 + .../root/files/root-6.00.01-nobyte-compile.patch | 33 ++ sci-physics/root/files/root-6.02.05-xrootd4.patch | 11 + sci-physics/root/files/root-6.04.06-gsl2.patch | 58 +++ .../root/files/root-6.04.06-prop-flags.patch | 22 + sci-physics/root/files/rootd.confd | 8 + sci-physics/root/files/rootd.initd | 27 ++ sci-physics/root/metadata.xml | 37 ++ sci-physics/root/root-5.34.36.ebuild | 441 ++++++++++++++++++ sci-physics/root/root-6.04.06.ebuild | 498 +++++++++++++++++++++ 22 files changed, 1603 insertions(+) create mode 100644 sci-physics/root/Manifest create mode 100644 sci-physics/root/files/proofd.confd create mode 100644 sci-physics/root/files/proofd.initd create mode 100644 sci-physics/root/files/root-5.28.00b-glibc212.patch create mode 100644 sci-physics/root/files/root-5.32.00-afs.patch create mode 100644 sci-physics/root/files/root-5.32.00-cfitsio.patch create mode 100644 sci-physics/root/files/root-5.32.00-chklib64.patch create mode 100644 sci-physics/root/files/root-5.32.00-dotfont.patch create mode 100644 sci-physics/root/files/root-5.34.05-nobyte-compile.patch create mode 100644 sci-physics/root/files/root-5.34.13-unuran.patch create mode 100644 sci-physics/root/files/root-5.34.26-ldflags.patch create mode 100644 sci-physics/root/files/root-6.00.01-dotfont.patch create mode 100644 sci-physics/root/files/root-6.00.01-llvm.patch create mode 100644 sci-physics/root/files/root-6.00.01-nobyte-compile.patch create mode 100644 sci-physics/root/files/root-6.02.05-xrootd4.patch create mode 100644 sci-physics/root/files/root-6.04.06-gsl2.patch create mode 100644 sci-physics/root/files/root-6.04.06-prop-flags.patch create mode 100644 sci-physics/root/files/rootd.confd create mode 100644 sci-physics/root/files/rootd.initd create mode 100644 sci-physics/root/metadata.xml create mode 100644 sci-physics/root/root-5.34.36.ebuild create mode 100644 sci-physics/root/root-6.04.06.ebuild (limited to 'sci-physics/root') diff --git a/sci-physics/root/Manifest b/sci-physics/root/Manifest new file mode 100644 index 000000000000..5b3ea7baccc5 --- /dev/null +++ b/sci-physics/root/Manifest @@ -0,0 +1,25 @@ +AUX proofd.confd 415 SHA256 261738817b4ba50fb07007741305d0a88e9067a45e3cbfd1d3fc8bebe70ece38 SHA512 5aa6e6313cf159d2b407286a15f7f959d966a7e9b74bd2a74f13bd3fe01c04d99b46b5fb55f4a7434ebe911cd8b6469657d96591d624a7bfc7d39d49ab62b900 WHIRLPOOL 4a0604d8827cd733a2f5b34183bfd9458aff94f036f9177f2de3283da7722cf2e6dbf6acae93fe3ccd8144ad646c283458550f97f357148cc9f903c7469c57ca +AUX proofd.initd 606 SHA256 9780b035d00c543bba8a040e0b435ceaec4f606d14d78d7a8dc45e2399f40a75 SHA512 de72ea4ea106ab6ec4cc892c2eaf1b17f85db3de9dbfe85d34678678268c943868e4698a1a046e51b5694f03109cb06484b90aea83cf2728229a065f35c3d165 WHIRLPOOL 8a42c63a1cc5e1455c04353bf83f76380f7a2814e71563cfbc43dedaef128582990d7f0350d9f539bf083c64ab23fc11d1ce846241c0d3f9bbdcf3c05baf4b7e +AUX root-5.28.00b-glibc212.patch 276 SHA256 e51e127a80e2bf1afad41c2b7ca5233c362bce017057ca489bedb2a9442efb62 SHA512 26138c8d14f319248d2b33395a57767c8d9bbf552244c2c55a7d6c0a1526de4c84313e020dc6c7483866cb3a927ba047d60f9b4dc8bd8291dd451a847b7e7379 WHIRLPOOL 0226880ce82aa5ba6e552f9bd2042842250694105734186a2185436ba8e2a13131f7e6263a99a1c228df724178453962f89ab74d90b62521e6db42be792c1fa9 +AUX root-5.32.00-afs.patch 1322 SHA256 a8f8d551668299516e2e091fd29ae15ceb1ba034d9df95b76f99b1dabc94a8dc SHA512 4c021dadf266d58cc6ba3906ba3cd3ca2e2051f69266a7c3b32931ef8c0f40af2d79cb640aaf9c93b3302f9f17a3361683f616c18db2f25d86ca21d37f7b0bf8 WHIRLPOOL b35195e89b86ec6b7fef4927f97180ef3a6860c822e684b89fa76d53b595ede4c4eabe9948f067b1c1de91dce1f57011404c6534909e3b33a2b7451db5ae76a8 +AUX root-5.32.00-cfitsio.patch 593 SHA256 9f4f244f272d75e115d8f139670fdcc0cdbcb68972689edbc78e467c3fad3e40 SHA512 1e9b1de637aeb667718e7e262615126626f951acefd2e1c4a3f53cfb13fb4dbde0186c301ffcc175cbab701825f340cffdb26cf741b244fba84cb8938ccb89e8 WHIRLPOOL 2231b4b349ad3a97aca94b21337981cc7477592a8aad4d604ac6d7aee98d9e5d66d90a0155c47ce53244b550f1c5b1d5b7581208d1c16a57a2e8fe6de3fbdc32 +AUX root-5.32.00-chklib64.patch 886 SHA256 5560c5ce62faeb4a5f3e4a8dcf997facddc6b5f87810b0791b592d3a9343f269 SHA512 45a9776ca5110170099ea33dfe19a7b3a358734e3376aaf242202701df7e9d4f2d337962663c7d38c5ce189efdb1ad6b3c9382f2bb4a5ec2cf5bf9253985b067 WHIRLPOOL fcd143d0dfc62ac67307fefe70ce00864c8a6f4da64860181f376350083b08a5298fb85b926bdb4c2eb89a2096187317cfd43082d590a2099f2c6487e75e3a25 +AUX root-5.32.00-dotfont.patch 2563 SHA256 7b4fc5da17ee8bfa71ed4cb60926a02e4b7058f8955dd54fb7f15ee4910823f6 SHA512 332ffe0ac6d1249ef1643b6a1df77ef23c1af1c4547f248295c1ae9c284384446a84a374b2b117b1157e770ac65a404be1c4cc17a497c43e2c34bcbf51619441 WHIRLPOOL 9633f52670bd8ad65393ddba7b2152e644feedb97df479229a07b232da10e4fae911356c2700fc0ff552096e575fb29882e46e38f609399ecbdc97f3f16b8e96 +AUX root-5.34.05-nobyte-compile.patch 5504 SHA256 5f550158605286f915dfb6ea7c44b4daa95198e680ebf18509482e7e819bcc08 SHA512 ef1405b2cd67393402ac365d66f7eb2846a62ff8a492649cbaf3bc004f5c98592c9b926458055912217ca7f755bcfa5d3b741f61e6648dfaf05fa2b62f62b27d WHIRLPOOL b3e7abd63872bc073e9389839b68c534a58547750bb71a6a5eaaf2a3ff8dca9b040e9c781554d69130dce2153ed86a2a3a4aded486a2af1bcc3221256943d5fe +AUX root-5.34.13-unuran.patch 1555 SHA256 279c7f4495ddbd508ac6f2e9fff53d65fc6e623997d1fbe917c4e6a8adb627e8 SHA512 571d6bd56d2419e4b96f7ca95d14d291768cc98024f871ca35bfae1a7d1e010a7c101f927c66ece4c006ca89401aeaea89945b8502f1ae2b2068f535d0bc95f3 WHIRLPOOL cb1b889e0d35a0d1f0969491c8909eb62ef931dd9d2f76e93cefab2cd9cb9a5aeb79337ba124089a45c069a75b936b9225d2e8909be751f0b8d6ed87063dac79 +AUX root-5.34.26-ldflags.patch 626 SHA256 1b4b6bee742ce4641fd6fad89d8c2425fcdfc41742743ff40b13ce1450be3a24 SHA512 fa38441a472b8b811c293aecbf1e233ea619cb4a2c9bfb8dda1706c0ac34bf5c3dcf23a43a517a72aab5faa63e733eee74515cbf70b6f15e3cfba46e3e5c4ccc WHIRLPOOL d3bf11dd359c4ed73f4bd0e70703b2407f33f02f71b9ad92419bf1bf4608525db0572b6f39baf3caf262a67978ba73df2ea0973c1ad68579e28172f17ec4ba60 +AUX root-6.00.01-dotfont.patch 2718 SHA256 27d05ede039fb85472203839a628b15f8ee9fc3c39e1d29a19349e069f891d61 SHA512 8f01655e863d36678dea37df934e3d8d9c2bc85920497345feb8d863bdc1b7413c783b916050d1e7b476ecdf9e1e8afdcbb32e621d625305898d51947b6955c6 WHIRLPOOL 75e2712f13cf64102fd0dce6d92c7c21c3606ad4679615336ce6b607f236eb6b1d57ffa0498ae3df194b08c6cdc371fef36912fb3e3cc1fc84ac3f1664793708 +AUX root-6.00.01-llvm.patch 439 SHA256 aff58b4454204daa4f68deb4ace730137d9083d11cb679c8d37a7b5ceab2b101 SHA512 cb9edb78a937ace744687506a6ec45b9022b6c7ca687e8fe1e2ee2ddf9e01b49fe8d6933910e2898f14247bdcf5d86b248d28938d28e3453615d56d5f12291d0 WHIRLPOOL dd22f60f3b9ae19b3965114a824f2f0dce153a285312b878fe663d9a51b5195f76f47d299904ce237de4d98e26d3417b27cfbca18ac8f5e1bfbc1e8d3093a0f9 +AUX root-6.00.01-nobyte-compile.patch 1308 SHA256 6b93b8bd7f8a2bc68289c7a4bf316ab3d75a2d4d28669dd05baadf8f22d93f92 SHA512 6387c3277ec16ceb23caa1952b3a9e3869fedd12ed1fd93a4241e865898cd74b4abfe99e0f6fb266cfd5f3a46ede98e56f933ed0ad83829e8445ef583555b674 WHIRLPOOL 401c5144709896b54c894077e4c7fa41e9df230b87f1bfa589d6ddddacab36d1ce5bd62b465cc01a70608d4f751f0048172ff1689bd5c72691ac98678ea0dac3 +AUX root-6.02.05-xrootd4.patch 478 SHA256 8dd88f12eb0f3982ede6cd6279a7c8e16ba91e4f02f21000c4b47c2bd2cc23e2 SHA512 47f37ca84c06d71fc207b18bc38798ccde457e61758ec56f84543aa4619929869e15dd53a8d7302bd4ca458b1e880428aafba4963d63bc5711f4540a096c4ff8 WHIRLPOOL 0545d00ca85b564c294e5301f6266c67925b838b4b9618191cca0dddebfc010f2638318aae7c688327543b91c9aa1eaa1f2eccacb3fd55d5aa9b0463f639d0d2 +AUX root-6.04.06-gsl2.patch 1980 SHA256 0740882b1f1f8a01c2b9a8a4bbc1395d032ee856c2b15d3d5d0a826541887aba SHA512 493a261589c766fe7ffb1936475466f7aa6ef8f97a99c99c3676149dc5a898621272916e38eaf98d45b4a6a6ef57c0c1eeff565d36d0a2c5c0286ba99c2ed59d WHIRLPOOL fceafede1097bcf0f5e135b5cf3bd3bfc566b416c738841f781c04fbd1dcf700567d0c3a610946ad5abbf6304a8a3c41d7244ffc4d02fedae08258af6e812ab1 +AUX root-6.04.06-prop-flags.patch 732 SHA256 1adcd2f4f2bb35011e16e56489b87ef65dd882aeb9336bf70e30e1d2fb072af8 SHA512 bdd2403c9d96fc3bb4a3a60c584aaa78128d4ed067ba173fd79c7a54e71cd9d3d400f13a4e9f056b4c985a9bdde815f5ae8f5ff22fd40e0a6ab49f38f1c589f5 WHIRLPOOL d0b6bc5b7ae405140ba88bd2fe6bd1eaa828df480da39ad0f0525045e189e68e19278790e191011009dbc0cb13350eca94e485cb32e3507658e73cb0d64c8de6 +AUX rootd.confd 199 SHA256 7b69f646ce0b2546ce797ec4a05949b02302dc5f4e41d2e8896ed0bc6575ac8d SHA512 2ce6753d37a7f22cc3656f110f802b8e07c1469bfe4524606c1472369352f8c584c01c716760252fab40369470b72d8c77cdbb2d52126c39371faaf597bf58d8 WHIRLPOOL b4c65e5026d6583775cda7b13fdbc5ae48c82c36710efbdd6b112243310090c05b5726d6e76d1ae25d585ecaa4aec4a5059336bf54135bafd0e4a921db468742 +AUX rootd.initd 622 SHA256 c81c6565e5f517efcbd9e6af58dffe26e9c3abc5e7db26bd044d0fca6f1d6e50 SHA512 fde858a37b52540285d228e52845c963b18065a250aef0753f469753d541f577ac401f01438297c030e47176350bb23c3c0280c9b4ccbc1feda3313ab7c9be2e WHIRLPOOL ee80590e73a0d3db2456b600d568fbc7164a694da2aa380e05348c81d2cbeb355f257e7a21be1b704fa9e378213716155eb12851f6f5c30ef6b3c1744ad8ee26 +DIST root_v5.34.36.source.tar.gz 75427331 SHA256 fc868e5f4905544c3f392cc9e895ef5571a08e48682e7fe173bd44c0ba0c7dcd SHA512 2cc0c8f8b63b2a3ce01c49c41704483548a7324d92c21a63e3e36a00f4d6f5656a7844fdf48cb71a6f2a2c974112527300ffd3bb5502d8365ffaf138e6ae4c7a WHIRLPOOL 137c054874645913372edca3e02087c0c4f2a3c4d662b488eedaec517f75a8ab956ade418e2942aee925e58da804b325bbd6756be653bd767cc1c82cb7a650c9 +DIST root_v6.04.06.source.tar.gz 99180724 SHA256 6deac9cd71fe2d7a48ea2bcbd793639222c4743275dbc946c158295b1e1fe330 SHA512 ac96ac998ed4894587b7d286d79bcbea7b33f15764cc2513ae089e86c584e2dcb064cd135d44a4bfd2bede368eb772ccbffcd6bf426857a1236f5d7e9f5ce6fd WHIRLPOOL 7ffca036917d798ade31e1a22e9518d567e4267af5d1db555ea0e82c1bc2c7a1f665c8cd76d3ce6511507ab7befea4881580259c6142f1e668edafbcbc5e496e +EBUILD root-5.34.36.ebuild 12182 SHA256 d84f8cce4e0e5f2906264fc16df753def922cf6052514a0e09551988cd659673 SHA512 920df65fdcb34d91b4ad7c894c2e9996f15f4bc7c25bff1378887f89d7b35ef08163824bedbdd2522a33555384077c90600015a7c0560e642d36abcadea98f18 WHIRLPOOL 80afdeb2166b9b4473ab89e58d66783b391475905d843ed52502760ae1cff9345faaf9fb501c731831e59d53f7b223c3c849dce017cb5d710c5d9994de83e911 +EBUILD root-6.04.06.ebuild 14857 SHA256 25903883ddb4aef88e3a8499abc9711a3994fdfbb5c150ace92b84de96ecb579 SHA512 b8c3e9b0bc2c211dffbc8e2f4207108b989ecf7833a5e14bac58eb2def2a260b7a802519521170d9f1cdf9bd31b32715a9209bcaa7977517e98cceabb1893e07 WHIRLPOOL 99baf33ac794eaff65b313ff63b022c973f6fdd0e3acdf73c59321bee19948e4c1bae247a55c80bac774ff45c3e598e541b6ac82fa69f4b184dbe52560b052ff +MISC ChangeLog 8774 SHA256 fa96c1b135a69b4147ae977c6f04b3bee6fff2ceeca4e2327c9b524adb1d751b SHA512 e39d99d570b4080480be71135e2937de55c5a7c1ef8c7ede9ff1732f1ef329a47996ee0a9c903d044c94b47be67eb8fe71b8f69fc498f680f854157a14294e90 WHIRLPOOL 2faf7612525be191396e544ea6a04b59893f41a72824e2fe89ba9695e0534063c7011764e7993b4c13b5b3be8eb4419b7df42be37eee643ef353550128460331 +MISC ChangeLog-2015 43756 SHA256 ade6aab53e66a09766da814e190f3a1bd8b3ecb1ce57e65cfab811aef875238b SHA512 7c471f9b608235922af44e3fa507a8c019abc6fef5333539879004436fd116ade2a03d1cfa7139e710eac6207715ccd3c5d91aa77077ca16fc68fd6e041b94a5 WHIRLPOOL 673a18c84ac41cc37bd00ab7c49090a0e6fb1b4da110cbb4cfa2223fdf4c0baed310b1da3d58ea30a7cf10f17b335d7d66c9b0063300d97b83285e3e80110a66 +MISC metadata.xml 2101 SHA256 a73eaba47fdedc5a86e71cffc876f97c3df640b3ca1ace50462c314b49e5f4ef SHA512 3bfcc2dfc023fdf2da96b4433f19b66e2858bcb112e76817d7b8a66ce27315a94b4b5bf94340703d402390a4c603d801fe11bdda497daaeb16642f0b03a26615 WHIRLPOOL 63e17ce295a24d4b21da582a3510511535d97f1bed7ea80c64a9432a81a312243506c46fe561672406c0cf15b35cc82fc2d8849ca4b1be934adf50be83fc2faf diff --git a/sci-physics/root/files/proofd.confd b/sci-physics/root/files/proofd.confd new file mode 100644 index 000000000000..81720a7eb335 --- /dev/null +++ b/sci-physics/root/files/proofd.confd @@ -0,0 +1,12 @@ +# conf.d file for proof daemon +# +# Please refer to the proofd(1) man(1) page for more information on +# command line parameters. +# +PROOFD_OPTS= + +# Specify your base of your PROOF directory here. If left blank, it +# will use the system default (e.g., /usr/share/root/proof). +# Note, however, that ROOT recommends that this directory is shared (via +# NFS or similar) among all the nodes of the cluster. +PROOF_DIR= diff --git a/sci-physics/root/files/proofd.initd b/sci-physics/root/files/proofd.initd new file mode 100644 index 000000000000..ee865133cb25 --- /dev/null +++ b/sci-physics/root/files/proofd.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need root-file-server + use logger +} + +start() { + ebegin "Starting parallel ROOT facility server" + start-stop-daemon --start --quiet \ + --pidfile /var/run/proofd.pid \ + --exec /usr/bin/proofd -- ${PROOFD_OPTS} ${PROOF_DIR} + pidof /usr/bin/proofd > /var/run/proofd.pid + eend $? +} + +stop() { + ebegin "Stopping parallel ROOT facility server" + start-stop-daemon --stop --quiet \ + --pidfile /var/run/proofd.pid \ + --exec /usr/bin/proofd + eend $? +} diff --git a/sci-physics/root/files/root-5.28.00b-glibc212.patch b/sci-physics/root/files/root-5.28.00b-glibc212.patch new file mode 100644 index 000000000000..a365431396f5 --- /dev/null +++ b/sci-physics/root/files/root-5.28.00b-glibc212.patch @@ -0,0 +1,11 @@ +--- root.orig/net/auth/src/TAFS.cxx 2010-09-14 03:22:22.647915854 +0400 ++++ root/net/auth/src/TAFS.cxx 2010-09-14 03:22:39.034599899 +0400 +@@ -11,6 +11,7 @@ + + #ifndef WIN32 + # include ++# include + #else + # define ssize_t int + # include + diff --git a/sci-physics/root/files/root-5.32.00-afs.patch b/sci-physics/root/files/root-5.32.00-afs.patch new file mode 100644 index 000000000000..2bf31798e6e0 --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-afs.patch @@ -0,0 +1,33 @@ +--- root/net/auth/src/TAFS.cxx.orig 2011-12-04 00:56:29.405007770 +0400 ++++ root/net/auth/src/TAFS.cxx 2011-12-04 00:56:35.534709259 +0400 +@@ -138,7 +138,7 @@ + } else { + if (isatty(0) != 0 && isatty(1) != 0) { + Gl_config("noecho", 1); +- pw = Getline((char *) prompt.Data()); ++ pw = const_cast( Getline((char *) prompt.Data()) ); + Gl_config("noecho", 0); + } else { + Warning("TAFS", "not tty: cannot prompt for passwd: failure"); +--- root/core/clib/src/strlcat.c.orig 2011-12-04 01:49:26.495179487 +0400 ++++ root/core/clib/src/strlcat.c 2011-12-04 01:50:41.407524763 +0400 +@@ -38,7 +38,7 @@ + * Returns strlen(src) + MIN(siz, strlen(initial dst)). + * If retval >= siz, truncation occurred. + */ +-size_t ++size_t __attribute__((weak)) + strlcat(char *dst, const char *src, size_t siz) + { + register char *d = dst; +--- root/core/clib/src/strlcpy.c.orig 2011-12-04 01:49:34.329797251 +0400 ++++ root/core/clib/src/strlcpy.c 2011-12-04 01:50:49.051151843 +0400 +@@ -36,7 +36,7 @@ + * will be copied. Always NUL terminates (unless siz == 0). + * Returns strlen(src); if retval >= siz, truncation occurred. + */ +-size_t ++size_t __attribute__((weak)) + strlcpy(char *dst, const char *src, size_t siz) + { + register char *d = dst; diff --git a/sci-physics/root/files/root-5.32.00-cfitsio.patch b/sci-physics/root/files/root-5.32.00-cfitsio.patch new file mode 100644 index 000000000000..853c3f39f207 --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-cfitsio.patch @@ -0,0 +1,13 @@ +--- configure.orig 2012-01-19 23:44:44.127607638 +0100 ++++ configure 2012-01-20 00:19:20.420652913 +0100 +@@ -3435,9 +3435,7 @@ + cfitsioinc=$found_hdr + cfitsioincdir=$found_dir + +- # At this time, libcfitsio.a should always be prefered over .so, +- # to avoid forcing users to install cfitsio. +- check_library "libcfitsio cfitsio" "no" "$cfitsiolibdir" \ ++ check_library "libcfitsio cfitsio" "yes" "$cfitsiolibdir" \ + $CFITSIO ${CFITSIO:+$CFITSIO/lib} ${CFITSIO:+$CFITSIO/.libs} \ + ${finkdir:+$finkdir/lib} \ + /usr/local/lib /usr/lib /opt/cfitsio/lib diff --git a/sci-physics/root/files/root-5.32.00-chklib64.patch b/sci-physics/root/files/root-5.32.00-chklib64.patch new file mode 100644 index 000000000000..979220f02f35 --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-chklib64.patch @@ -0,0 +1,24 @@ +bug fix for #406817 +--- configure.orig 2012-02-29 19:46:41.000000000 +0400 ++++ configure 2012-03-22 03:28:43.458968696 +0400 +@@ -441,14 +441,13 @@ + fi + else + if file $filearg $chklib64 | grep 'ASCII' > /dev/null 2>& 1 ; then +- check_link $chklib64 +- ret=$link_result +- else +- logmsg " file $filearg $chklib64 | grep '64-bit'" +- if file $filearg $chklib64 | grep '64-bit' > /dev/null 2>& 1 ; then +- ret=1 +- fi ++ # get real binary .so name from .so ld script ++ chklib64=$(gawk '($1 == "GROUP") { print $3 }' $chklib64) + fi ++ logmsg " file $filearg $chklib64 | grep '64-bit'" ++ if file $filearg $chklib64 | grep '64-bit' > /dev/null 2>& 1 ; then ++ ret=1 ++ fi + fi + logmsg " result: $ret" + if test $ret -eq 1 ; then diff --git a/sci-physics/root/files/root-5.32.00-dotfont.patch b/sci-physics/root/files/root-5.32.00-dotfont.patch new file mode 100644 index 000000000000..85d6dea7655e --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-dotfont.patch @@ -0,0 +1,58 @@ +--- root/html/src/TClassDocOutput.cxx.orig 2012-05-25 16:18:10.000000000 +0400 ++++ root/html/src/TClassDocOutput.cxx 2012-05-29 21:36:53.813593012 +0400 +@@ -625,7 +625,7 @@ + << "size=\"8,10\";" << endl + << "ratio=auto;" << endl + << "margin=0;" << endl +- << "node [shape=plaintext,fontsize=40,width=4,height=0.75];" << endl ++ << "node [shape=plaintext,fontsize=40,width=4,height=0.75,fontname=\"DejaVu Serif\"];" << endl + << "\"" << fCurrentClass->GetName() << "\" [shape=ellipse];" << endl; + + std::stringstream ssDep; +@@ -704,7 +704,7 @@ + outdot << ";" << endl; + } else if (writeAndMoreFor) { + outdot << " \"...andmore" << writeAndMoreFor->GetName() +- << "\" [label=\"...and more\",fontname=\"Times-Italic\",fillcolor=lightgrey,style=filled];" << endl; ++ << "\" [label=\"...and more\",fontname=\"DejaVu Serif Italic\",fillcolor=lightgrey,style=filled];" << endl; + } + } + if (!levelExists) break; +@@ -733,7 +733,7 @@ + << "ranksep=0.1;" << endl + << "nodesep=0;" << endl + << "margin=0;" << endl; +- outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10];" << endl; ++ outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10,fontname=\"DejaVu Serif\"];" << endl; + + std::stringstream ssDep; + const int numColumns = 3; +@@ -939,7 +939,7 @@ + << "ranksep=0;" << endl + << "nodesep=0;" << endl + << "size=\"8,10\";" << endl +- << "node [fontsize=20,shape=plaintext];" << endl; ++ << "node [fontsize=20,shape=plaintext,fontname=\"DejaVu Serif\"];" << endl; + + for (std::list::iterator iFile = listFilesToParse.begin(); + iFile != listFilesToParse.end(); ++iFile) { +@@ -999,7 +999,8 @@ + << "ranksep=0.7;" << endl + << "nodesep=0.3;" << endl + << "size=\"8,8\";" << endl +- << "ratio=compress;" << endl; ++ << "ratio=compress;" << endl ++ << "node [fontname=\"DejaVu Serif\"];" << endl; + + TString libs(fCurrentClass->GetSharedLibs()); + outdot << "\"All Libraries\" [URL=\"LibraryDependencies.html\",shape=box,rank=max,fillcolor=lightgray,style=filled];" << endl; +@@ -1109,7 +1110,8 @@ + + dotout << "digraph G {" << endl + << "ratio=auto;" << endl +- << "rankdir=RL;" << endl; ++ << "rankdir=RL;" << endl ++ << "node [fontname=\"DejaVu Serif\"];" << endl; + + // loop on all classes + TClassDocInfo* cdi = 0; diff --git a/sci-physics/root/files/root-5.34.05-nobyte-compile.patch b/sci-physics/root/files/root-5.34.05-nobyte-compile.patch new file mode 100644 index 000000000000..ec67a15887f6 --- /dev/null +++ b/sci-physics/root/files/root-5.34.05-nobyte-compile.patch @@ -0,0 +1,137 @@ +diff -Naur root.as-needed/Makefile root/Makefile +--- a/Makefile.orig 2013-02-15 02:27:56.000000000 +0400 ++++ b/Makefile 2013-02-23 02:22:14.556465852 +0400 +@@ -1258,10 +1258,7 @@ + for lib in $(RFLX_GRFLXPY); do \ + rm -f $(DESTDIR)$(LIBDIR)/$${lib#lib/}; \ + done; \ +- for lib in $(RFLX_GRFLXPYC); do \ +- rm -f $(DESTDIR)$(LIBDIR)/$${lib#lib/}; \ +- done; \ +- if test "x$(RFLX_GRFLXPY)$(RFLX_GRFLXPYC)" != "x"; then \ ++ if test "x$(RFLX_GRFLXPY)" != "x"; then \ + dir=$(subst lib/,,$(RFLX_GRFLXDD)); \ + while test "x$${dir}" != "x" && \ + test -d $(DESTDIR)$(LIBDIR)/$${dir} && \ +diff -Naur root.as-needed/bindings/pyroot/Module.mk root/bindings/pyroot/Module.mk +--- root.as-needed/bindings/pyroot/Module.mk 2011-07-10 10:42:48.991561304 +0400 ++++ root/bindings/pyroot/Module.mk 2011-07-10 10:43:21.493339703 +0400 +@@ -48,8 +48,6 @@ + ROOTPY := $(subst $(MODDIR),$(LPATH),$(ROOTPYS)) + $(LPATH)/%.py: $(MODDIR)/%.py; cp $< $@ + endif +-ROOTPYC := $(ROOTPY:.py=.pyc) +-ROOTPYO := $(ROOTPY:.py=.pyo) + + # used in the main Makefile + ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(PYROOTH)) +@@ -68,10 +66,8 @@ + include/%.h: $(PYROOTDIRI)/%.h + cp $< $@ + +-%.pyc: %.py; python -c 'import py_compile; py_compile.compile( "$<" )' +-%.pyo: %.py; python -O -c 'import py_compile; py_compile.compile( "$<" )' + +-$(PYROOTLIB): $(PYROOTO) $(PYROOTDO) $(ROOTPY) $(ROOTPYC) $(ROOTPYO) \ ++$(PYROOTLIB): $(PYROOTO) $(PYROOTDO) $(ROOTPY) \ + $(ROOTLIBSDEP) $(PYTHONLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libPyROOT.$(SOEXT) $@ \ +@@ -113,7 +109,7 @@ + + distclean-$(MODNAME): clean-$(MODNAME) + @rm -f $(PYROOTDEP) $(PYROOTDS) $(PYROOTDH) $(PYROOTLIB) \ +- $(ROOTPY) $(ROOTPYC) $(ROOTPYO) $(PYROOTMAP) \ ++ $(ROOTPY) $(PYROOTMAP) \ + $(PYROOTPYD) $(PYTHON64DEP) $(PYTHON64) + + distclean:: distclean-$(MODNAME) +diff -Naur root.as-needed/build/package/debian/rules root/build/package/debian/rules +--- root.as-needed/build/package/debian/rules 2011-07-10 10:42:49.241549346 +0400 ++++ root/build/package/debian/rules 2011-07-10 10:48:06.989670589 +0400 +@@ -691,10 +691,6 @@ + -X$(SYSCONFDIR)/root/system.rootauthrc \ + -X$(SYSCONFDIR)/root/system.rootdaemonrc \ + -X$(PREFIX)/lib/root/$(SOVERS)/libAfterImage.a \ +- -X$(PREFIX)/lib/root/$(SOVERS)/PyCintex.pyc \ +- -X$(PREFIX)/lib/root/$(SOVERS)/PyCintex.pyo \ +- -X$(PREFIX)/lib/root/$(SOVERS)/ROOT.pyc \ +- -X$(PREFIX)/lib/root/$(SOVERS)/ROOT.pyo \ + -X$(PREFIX)/lib/root/$(SOVERS)/cint7 \ + -X$(PREFIX)/include/root/Minuit2 + # $(foreach i, \ +diff -Naur root.as-needed/cint/cintex/Module.mk root/cint/cintex/Module.mk +--- root.as-needed/cint/cintex/Module.mk 2011-07-10 10:42:49.104889217 +0400 ++++ root/cint/cintex/Module.mk 2011-07-10 10:43:21.496672876 +0400 +@@ -31,10 +31,6 @@ + CINTEXPY := $(subst $(MODDIR)/python,$(LPATH),$(CINTEXPYS)) + $(LPATH)/%.py: $(MODDIR)/python/%.py; cp $< $@ + endif +-ifneq ($(BUILDPYTHON),no) +-CINTEXPYC := $(CINTEXPY:.py=.pyc) +-CINTEXPYO := $(CINTEXPY:.py=.pyo) +-endif + + # used in the main Makefile + ALLHDRS += $(patsubst $(MODDIRI)/Cintex/%.h,include/Cintex/%.h,$(CINTEXH)) +@@ -86,8 +82,6 @@ + fi) + cp $< $@ + +-%.pyc: %.py; python -c 'import py_compile; py_compile.compile( "$<" )' +-%.pyo: %.py; python -O -c 'import py_compile; py_compile.compile( "$<" )' + + $(CINTEXLIB): $(CINTEXO) $(CINTEXPY) $(CINTEXPYC) $(CINTEXPYO) \ + $(ORDER_) $(subst $(CINTEXLIB),,$(MAINLIBS)) $(CINTEXLIBDEP) +diff -Naur root.as-needed/cint/reflex/Module.mk root/cint/reflex/Module.mk +--- root.as-needed/cint/reflex/Module.mk 2011-07-10 10:42:49.074890651 +0400 ++++ root/cint/reflex/Module.mk 2011-07-10 10:43:21.496672876 +0400 +@@ -48,9 +48,6 @@ + RFLX_GRFLXS := $(wildcard $(RFLX_GRFLXSD)/*.py) + RFLX_GRFLXPY := $(patsubst $(RFLX_GRFLXSD)/%.py,$(RFLX_GRFLXDD)/%.py,$(RFLX_GRFLXS)) + RFLX_GRFLXPY += $(RFLX_GCCXMLPATHPY) +-ifneq ($(BUILDPYTHON),no) +-RFLX_GRFLXPYC := $(subst .py,.pyc,$(RFLX_GRFLXPY)) +-endif + + RFLX_LIBDIR = $(LIBDIR) + +@@ -92,7 +89,7 @@ + + ALLEXECS += $(RFLX_GENMAPX) + +-POSTBIN += $(RFLX_GRFLXPYC) $(RFLX_GRFLXPY) ++POSTBIN += $(RFLX_GRFLXPY) + + ##### local rules ##### + .PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) \ +@@ -122,8 +119,6 @@ + mkdir -p lib/python/genreflex; fi ) + cp $< $@ + +-$(RFLX_GRFLXDD)/%.pyc: $(RFLX_GRFLXDD)/%.py +- @python -c 'import py_compile; py_compile.compile( "$<" )' + + $(RFLX_GENMAPO) : CXXFLAGS += -I$(REFLEXDIRS)/genmap + +@@ -149,7 +144,7 @@ + $(RLIBMAP) -o $@ -l $(REFLEXDICTLIB) \ + -d $(REFLEXDICTLIBDEPM) -c $(REFLEXL) + +-all-$(MODNAME): $(REFLEXLIB) $(REFLEXDICTLIB) $(REFLEXDICTMAP) $(RFLX_GRFLXPYC) $(RFLX_GRFLXPY) ++all-$(MODNAME): $(REFLEXLIB) $(REFLEXDICTLIB) $(REFLEXDICTMAP) $(RFLX_GRFLXPY) + + clean-genreflex: + @rm -rf lib/python/genreflex +diff -Naur root.as-needed/cint/reflex/python/CMakeLists.txt root/cint/reflex/python/CMakeLists.txt +--- root.as-needed/cint/reflex/python/CMakeLists.txt 2011-07-10 10:42:49.074890651 +0400 ++++ root/cint/reflex/python/CMakeLists.txt 2011-07-10 10:43:21.496672876 +0400 +@@ -15,7 +15,7 @@ + ##################### sources #################### + + FILE(GLOB_RECURSE GENREFLEX_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} genreflex/*.py) +-SET(GENREFLEX_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/genreflex/genreflex.pyc PARENT_SCOPE) ++SET(GENREFLEX_SCRIPT PARENT_SCOPE) + + ##################### gccxmlpath #################### + diff --git a/sci-physics/root/files/root-5.34.13-unuran.patch b/sci-physics/root/files/root-5.34.13-unuran.patch new file mode 100644 index 000000000000..8262313184b5 --- /dev/null +++ b/sci-physics/root/files/root-5.34.13-unuran.patch @@ -0,0 +1,40 @@ +diff --git a/math/unuran/Module.mk b/math/unuran/Module.mk +index 00a530b..7cd22dc 100644 +--- a/math/unuran/Module.mk ++++ b/math/unuran/Module.mk +@@ -31,7 +31,7 @@ UNRS := $(wildcard $(UNRDIRS)/src/utils/*.c) \ + $(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)) \ +@@ -81,10 +81,9 @@ INCLUDEFILES += $(UNURANDEP) + ##### local rules ##### + .PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) + +-include/%.h: $(UNURANDIRI)/%.h $(UNURANETAG) ++include/%.h: $(UNURANDIRI)/%.h + cp $< $@ + +-$(UNURANDEP): $(UNRCFG) + $(UNRS): $(UNURANETAG) + + $(UNURANETAG): $(UNRSRCS) +@@ -137,12 +136,12 @@ $(UNRCFG): $(UNURANETAG) + GNUMAKE=$(MAKE) ./configure CC="$$ACC" \ + CFLAGS="$$ACFLAGS"); + +-$(UNURANLIB): $(UNRCFG) $(UNRO) $(UNURANO) $(UNURANDO) $(ORDER_) \ ++$(UNURANLIB): $(UNURANO) $(UNURANDO) $(ORDER_) \ + $(MAINLIBS) $(UNURANLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libUnuran.$(SOEXT) $@ \ + "$(UNURANO) $(UNURANDO)" \ +- "$(UNURANLIBEXTRA) $(UNRO)" ++ "$(UNURANLIBEXTRA) -lunuran" + + $(UNURANDS): $(UNRINIT) $(UNURANDH1) $(UNURANL) $(ROOTCINTTMPDEP) + $(MAKEDIR) diff --git a/sci-physics/root/files/root-5.34.26-ldflags.patch b/sci-physics/root/files/root-5.34.26-ldflags.patch new file mode 100644 index 000000000000..b81dbb5edb00 --- /dev/null +++ b/sci-physics/root/files/root-5.34.26-ldflags.patch @@ -0,0 +1,19 @@ +commit 3c8bc686abf57e7e2037c4c191cb63a1a5172b5b +Author: Andrew Savchenko +Date: Sun Feb 22 03:45:21 2015 +0300 + + root-5.32.00-prop-flags.patch -> root-5.34.26-prop-flags.patch + +diff --git a/config/Makefile.in b/config/Makefile.in +index 89674e7..91d25b9 100644 +--- a/config/Makefile.in ++++ b/config/Makefile.in +@@ -29,7 +29,7 @@ EXTRA_CFLAGS := -Iinclude @cflags@ + USERCONF_CFLAGS:= @usercflags@ + EXTRA_CXXFLAGS := -Iinclude @cflags@ + USERCONF_CXXFLAGS:= @usercxxflags@ +-EXTRA_LDFLAGS := @ldflags@ ++EXTRA_LDFLAGS := @ldflags@ $(LDFLAGS) + WERROR := @werror@ + WINRTDEBUG := @winrtdebug@ + diff --git a/sci-physics/root/files/root-6.00.01-dotfont.patch b/sci-physics/root/files/root-6.00.01-dotfont.patch new file mode 100644 index 000000000000..6c765f75a505 --- /dev/null +++ b/sci-physics/root/files/root-6.00.01-dotfont.patch @@ -0,0 +1,58 @@ +--- root/html/src/TClassDocOutput.cxx.orig 2012-06-08 02:13:51.000000000 +0400 ++++ root/html/src/TClassDocOutput.cxx 2012-06-08 02:34:45.705436577 +0400 +@@ -625,7 +625,7 @@ + << "size=\"8,10\";" << std::endl + << "ratio=auto;" << std::endl + << "margin=0;" << std::endl +- << "node [shape=plaintext,fontsize=40,width=4,height=0.75];" << std::endl ++ << "node [shape=plaintext,fontsize=40,width=4,height=0.75,fontname=\"DejaVu Serif\"];" << std::endl + << "\"" << fCurrentClass->GetName() << "\" [shape=ellipse];" << std::endl; + + std::stringstream ssDep; +@@ -704,7 +704,7 @@ + outdot << ";" << std::endl; + } else if (writeAndMoreFor) { + outdot << " \"...andmore" << writeAndMoreFor->GetName() +- << "\" [label=\"...and more\",fontname=\"Times-Italic\",fillcolor=lightgrey,style=filled];" << std::endl; ++ << "\" [label=\"...and more\",fontname=\"DejaVu Serif Italic\",fillcolor=lightgrey,style=filled];" << std::endl; + } + } + if (!levelExists) break; +@@ -733,7 +733,7 @@ + << "ranksep=0.1;" << std::endl + << "nodesep=0;" << std::endl + << "margin=0;" << std::endl; +- outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10];" << std::endl; ++ outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10,fontname=\"DejaVu Serif\"];" << std::endl; + + std::stringstream ssDep; + const int numColumns = 3; +@@ -939,7 +939,7 @@ + << "ranksep=0;" << std::endl + << "nodesep=0;" << std::endl + << "size=\"8,10\";" << std::endl +- << "node [fontsize=20,shape=plaintext];" << std::endl; ++ << "node [fontsize=20,shape=plaintext,fontname=\"DejaVu Serif\"];" << std::endl; + + for (std::list::iterator iFile = listFilesToParse.begin(); + iFile != listFilesToParse.end(); ++iFile) { +@@ -999,7 +999,8 @@ + << "ranksep=0.7;" << std::endl + << "nodesep=0.3;" << std::endl + << "size=\"8,8\";" << std::endl +- << "ratio=compress;" << std::endl; ++ << "ratio=compress;" << std::endl ++ << "node [fontname=\"DejaVu Serif\"];" << std::endl; + + TString libs(fCurrentClass->GetSharedLibs()); + outdot << "\"All Libraries\" [URL=\"LibraryDependencies.html\",shape=box,rank=max,fillcolor=lightgray,style=filled];" << std::endl; +@@ -1109,7 +1110,8 @@ + + dotout << "digraph G {" << std::endl + << "ratio=auto;" << std::endl +- << "rankdir=RL;" << std::endl; ++ << "rankdir=RL;" << std::endl ++ << "node [fontname=\"DejaVu Serif\"];" << std::endl; + + // loop on all classes + TClassDocInfo* cdi = 0; diff --git a/sci-physics/root/files/root-6.00.01-llvm.patch b/sci-physics/root/files/root-6.00.01-llvm.patch new file mode 100644 index 000000000000..c6abb353ee64 --- /dev/null +++ b/sci-physics/root/files/root-6.00.01-llvm.patch @@ -0,0 +1,13 @@ +diff --git a/interpreter/llvm/src/Makefile.config.in b/interpreter/llvm/src/Makefile.config.in +index 7633be2..c8756b1 100644 +--- a/interpreter/llvm/src/Makefile.config.in ++++ b/interpreter/llvm/src/Makefile.config.in +@@ -170,6 +170,8 @@ CXXFLAGS += @CXXFLAGS@ + + # Linker flags. + LDFLAGS += @LDFLAGS@ ++NOUNDEF := -Wl,--no-undefined ++LDFLAGS := $(filter-out $(NOUNDEF),$(LDFLAGS)) + + # Path to the library archiver program. + AR_PATH = @AR@ diff --git a/sci-physics/root/files/root-6.00.01-nobyte-compile.patch b/sci-physics/root/files/root-6.00.01-nobyte-compile.patch new file mode 100644 index 000000000000..aa58f20686dc --- /dev/null +++ b/sci-physics/root/files/root-6.00.01-nobyte-compile.patch @@ -0,0 +1,33 @@ +diff -Naur root.as-needed/bindings/pyroot/Module.mk root/bindings/pyroot/Module.mk +--- root.as-needed/bindings/pyroot/Module.mk 2011-07-10 10:42:48.991561304 +0400 ++++ root/bindings/pyroot/Module.mk 2011-07-10 10:43:21.493339703 +0400 +@@ -48,8 +48,6 @@ + ROOTPY := $(subst $(MODDIR),$(LPATH),$(ROOTPYS)) + $(LPATH)/%.py: $(MODDIR)/%.py; cp $< $@ + endif +-ROOTPYC := $(ROOTPY:.py=.pyc) +-ROOTPYO := $(ROOTPY:.py=.pyo) + + # used in the main Makefile + ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(PYROOTH)) +@@ -68,10 +66,8 @@ + include/%.h: $(PYROOTDIRI)/%.h + cp $< $@ + +-%.pyc: %.py; python -c 'import py_compile; py_compile.compile( "$<" )' +-%.pyo: %.py; python -O -c 'import py_compile; py_compile.compile( "$<" )' + +-$(PYROOTLIB): $(PYROOTO) $(PYROOTDO) $(ROOTPY) $(ROOTPYC) $(ROOTPYO) \ ++$(PYROOTLIB): $(PYROOTO) $(PYROOTDO) $(ROOTPY) \ + $(ROOTLIBSDEP) $(PYTHONLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libPyROOT.$(SOEXT) $@ \ +@@ -113,7 +109,7 @@ + + distclean-$(MODNAME): clean-$(MODNAME) + @rm -f $(PYROOTDEP) $(PYROOTDS) $(PYROOTDH) $(PYROOTLIB) \ +- $(ROOTPY) $(ROOTPYC) $(ROOTPYO) $(PYROOTMAP) \ ++ $(ROOTPY) $(PYROOTMAP) \ + $(PYROOTPYD) $(PYTHON64DEP) $(PYTHON64) + + distclean:: distclean-$(MODNAME) diff --git a/sci-physics/root/files/root-6.02.05-xrootd4.patch b/sci-physics/root/files/root-6.02.05-xrootd4.patch new file mode 100644 index 000000000000..0b4a4bef0f2e --- /dev/null +++ b/sci-physics/root/files/root-6.02.05-xrootd4.patch @@ -0,0 +1,11 @@ +https://sft.its.cern.ch/jira/browse/ROOT-6998 +--- root-6.02.05/net/netxng/src/TNetXNGFile.cxx.orig 2015-02-09 11:59:47.000000000 +0300 ++++ root-6.02.05/net/netxng/src/TNetXNGFile.cxx 2015-04-05 11:32:31.893127758 +0300 +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + + //------------------------------------------------------------------------------ diff --git a/sci-physics/root/files/root-6.04.06-gsl2.patch b/sci-physics/root/files/root-6.04.06-gsl2.patch new file mode 100644 index 000000000000..5d9fb102b73c --- /dev/null +++ b/sci-physics/root/files/root-6.04.06-gsl2.patch @@ -0,0 +1,58 @@ +commit ee9964210c56e7c1868618a4434c5340fef38fe4 +Author: Pere Mato +Date: Tue Dec 15 11:58:24 2015 +0100 + + Fix for ROOT-7776 - Integrate GSL 2.0 in ROOT. Changed the version used when option builtin_gsl=ON to 2.1 (latest production). + +diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake +index 6f04dad..309a8de 100644 +--- a/cmake/modules/SearchInstalledSoftware.cmake ++++ b/cmake/modules/SearchInstalledSoftware.cmake +@@ -332,7 +332,7 @@ if(mathmore OR builtin_gsl) + endif() + endif() + else() +- set(gsl_version 1.15) ++ set(gsl_version 2.1) + message(STATUS "Downloading and building GSL version ${gsl_version}") + ExternalProject_Add( + GSL +diff --git a/math/mathmore/src/GSLMultiFit.h b/math/mathmore/src/GSLMultiFit.h +index 1d86da5..5b5a887 100644 +--- a/math/mathmore/src/GSLMultiFit.h ++++ b/math/mathmore/src/GSLMultiFit.h +@@ -31,6 +31,7 @@ + #include "gsl/gsl_matrix.h" + #include "gsl/gsl_multifit_nlin.h" + #include "gsl/gsl_blas.h" ++#include "gsl/gsl_version.h" + #include "GSLMultiFitFunctionWrapper.h" + + #include "Math/IFunction.h" +@@ -143,7 +144,11 @@ public: + /// gradient value at the minimum + const double * Gradient() const { + if (fSolver == 0) return 0; ++#if GSL_MAJOR_VERSION > 1 ++ fType->gradient(fSolver->state, fVec); ++#else + gsl_multifit_gradient(fSolver->J, fSolver->f,fVec); ++#endif + return fVec->data; + } + +@@ -154,7 +159,14 @@ public: + unsigned int npar = fSolver->fdf->p; + fCov = gsl_matrix_alloc( npar, npar ); + static double kEpsrel = 0.0001; ++#if GSL_MAJOR_VERSION > 1 ++ gsl_matrix* J = gsl_matrix_alloc(npar,npar); ++ gsl_multifit_fdfsolver_jac (fSolver, J); ++ int ret = gsl_multifit_covar(J, kEpsrel, fCov); ++ gsl_matrix_free(J); ++#else + int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov); ++#endif + if (ret != GSL_SUCCESS) return 0; + return fCov->data; + } diff --git a/sci-physics/root/files/root-6.04.06-prop-flags.patch b/sci-physics/root/files/root-6.04.06-prop-flags.patch new file mode 100644 index 000000000000..90db15e21f6d --- /dev/null +++ b/sci-physics/root/files/root-6.04.06-prop-flags.patch @@ -0,0 +1,22 @@ + config/Makefile.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/config/Makefile.in b/config/Makefile.in +index 9243c90..a23a4d2 100644 +--- a/config/Makefile.in ++++ b/config/Makefile.in +@@ -64,11 +64,11 @@ HOST := @host@ + USECONFIG := @useconfig@ + MKLIBOPTIONS := @mkliboption@ + +-EXTRA_CFLAGS := -Iinclude @cflags@ ++EXTRA_CFLAGS := -Iinclude @cflags@ $(CFLAGS) + USERCONF_CFLAGS:= @usercflags@ +-EXTRA_CXXFLAGS := -Iinclude @cflags@ ++EXTRA_CXXFLAGS := -Iinclude @cflags@ $(CXXFLAGS) + USERCONF_CXXFLAGS:= @usercxxflags@ +-EXTRA_LDFLAGS := @ldflags@ ++EXTRA_LDFLAGS := @ldflags@ $(LDFLAGS) + WERROR := @werror@ + WINRTDEBUG := @winrtdebug@ + CTORSINITARRAY := @ctorsinitarray@ diff --git a/sci-physics/root/files/rootd.confd b/sci-physics/root/files/rootd.confd new file mode 100644 index 000000000000..7516b8c9b6dd --- /dev/null +++ b/sci-physics/root/files/rootd.confd @@ -0,0 +1,8 @@ +# conf.d file for root daemon + +# User to run as (default is `rootd') +ROOTD_USER="rootd" + +# Please refer to the rootd(1) man(1) page for more information on +# command line parameters. +ROOTD_OPTS="" diff --git a/sci-physics/root/files/rootd.initd b/sci-physics/root/files/rootd.initd new file mode 100644 index 000000000000..f808259c3670 --- /dev/null +++ b/sci-physics/root/files/rootd.initd @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net + use logger + provide root-file-server +} + +start() { + ebegin "Starting ROOT file server" + pid=$(start-stop-daemon --start --quiet --user ${ROOTD_USER} \ + --pidfile /var/run/rootd.pid \ + --exec /usr/bin/rootd -- ${ROOTD_OPTS}) + retval=$? + echo ${ROOTD_PID} > /var/run/rootd.pid + eend ${retval} +} + +stop() { + ebegin "Stopping ROOT file server" + start-stop-daemon --stop --quiet \ + --pidfile /var/run/rootd.pid \ + --exec /usr/bin/rootd + eend $? +} diff --git a/sci-physics/root/metadata.xml b/sci-physics/root/metadata.xml new file mode 100644 index 000000000000..fc9965963e8c --- /dev/null +++ b/sci-physics/root/metadata.xml @@ -0,0 +1,37 @@ + + + + + bircoph@gentoo.org + Andrew Savchenko + + + sci-physics@gentoo.org + Gentoo Physics Project + + + ROOT Object Oriented Technologies is an object oriented data + analysis framework written in C++ by the CERN. Widely used in + high energy physics, but also in other data analysis applications. It + contains the CINT C/C++ interpreter and many classes such as + statistics, serialization, optimization, linear algebra, graphics, + GUI toolkit, and a complete visualization framework. + + + Build ROOT using the C++11 standard + Build ROOT using the C++14 standard + Support for images and data from FITS files with sci-libs/cfitsio + Enable GDML writer and reader + Enable ROOT-CAD interface using sci-libs/opencascade + Enable http server support including but not limited to fastcgi support + Build all math related libraries plugins, needs sci-libs/gsl + Build memory statistics library, helps to detect memory leaks + Build the interface for sci-physics/pythia version 6.x + Build the interface for sci-physics/pythia version 8.x + Build the reflection database for the C++ interpreter + Enable shadow authentication in rootd and proofd + Build libTable contrib library + Build the interface for net-libs/xrootd + Enable support for dev-lang/R + + diff --git a/sci-physics/root/root-5.34.36.ebuild b/sci-physics/root/root-5.34.36.ebuild new file mode 100644 index 000000000000..86b4a8feaaa8 --- /dev/null +++ b/sci-physics/root/root-5.34.36.ebuild @@ -0,0 +1,441 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="http://root.cern.ch/git/root.git" +else + SRC_URI="https://root.cern.ch/download/${PN}_v${PV}.source.tar.gz" + KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux" +fi + +PYTHON_COMPAT=( python2_7 ) + +inherit elisp-common eutils fdo-mime fortran-2 multilib python-single-r1 \ + toolchain-funcs user versionator prefix + +DESCRIPTION="C++ data analysis framework and interpreter from CERN" +HOMEPAGE="https://root.cern.ch" + +SLOT="0/$(get_version_component_range 1-3 ${PV})" +LICENSE="LGPL-2.1 freedist MSttfEULA LGPL-3 libpng UoI-NCSA" +IUSE="+X afs c++11 c++14 doc emacs examples fits fftw gdml + graphviz http kerberos ldap +math +memstat mpi mysql odbc + +opengl openmp oracle postgres prefix pythia6 pythia8 + python qt4 +reflex ruby shadow sqlite ssl table +tiff xinetd + xml xrootd zeroconf" + +# TODO: add support for: davix +# TODO: unbundle: vdt + +REQUIRED_USE=" + !X? ( !opengl !qt4 !tiff ) + mpi? ( math !openmp ) + openmp? ( math !mpi ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +CDEPEND=" + app-arch/xz-utils:0= + >=dev-lang/cfortran-4.4-r2 + dev-libs/libpcre:3= + media-fonts/dejavu + media-libs/freetype:2= + media-libs/libpng:0= + sys-libs/zlib:0= + X? ( + media-libs/ftgl:0= + media-libs/glew:0= + x11-libs/libX11:0= + x11-libs/libXext:0= + x11-libs/libXpm:0= + || ( + media-libs/libafterimage[gif,jpeg,png,tiff?] + >=x11-wm/afterstep-2.2.11[gif,jpeg,png,tiff?] + ) + opengl? ( virtual/opengl virtual/glu x11-libs/gl2ps:0= ) + qt4? ( + dev-qt/qtgui:4= + dev-qt/qtopengl:4= + dev-qt/qt3support:4= + dev-qt/qtsvg:4= + dev-qt/qtwebkit:4= + dev-qt/qtxmlpatterns:4= + ) + x11-libs/libXft:0= + ) + afs? ( net-fs/openafs ) + emacs? ( virtual/emacs ) + fits? ( sci-libs/cfitsio:0= ) + fftw? ( sci-libs/fftw:3.0= ) + graphviz? ( media-gfx/graphviz:0= ) + http? ( dev-libs/fcgi:0= ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap:0= ) + math? ( + sci-libs/gsl:0= + sci-mathematics/unuran:0= + mpi? ( virtual/mpi ) + ) + mysql? ( virtual/mysql ) + odbc? ( || ( dev-db/libiodbc dev-db/unixODBC ) ) + oracle? ( dev-db/oracle-instantclient-basic:0= ) + postgres? ( dev-db/postgresql:= ) + pythia6? ( sci-physics/pythia:6= ) + pythia8? ( >=sci-physics/pythia-8.1.80:8= =net-libs/xrootd-3.3.5:0= ) + zeroconf? ( net-dns/avahi:0= ) +" + +DEPEND="${CDEPEND} + virtual/pkgconfig" + +RDEPEND="${CDEPEND} + reflex? ( dev-cpp/gccxml ) + xinetd? ( sys-apps/xinetd )" + +PDEPEND="doc? ( ~app-doc/root-docs-${PV}[http=,math=] )" + +S="${WORKDIR}/${PN}" + +# install stuff in ${P} and not ${PF} for easier tracking in root-docs +DOC_DIR="/usr/share/doc/${P}" + +die_compiler() { + eerror "You are using a $(tc-getCXX)-$5 without C++$1 capabilities" + die "Need one of the following C++$1 capable compilers:\n"\ + " >=sys-devel/gcc[cxx]-$2\n"\ + " >=sys-devel/clang-$3\n"\ + " >=dev-lang/icc-$4" +} + +# check compiler to satisfy minimal versions +# $1 - std version +# $2 - g++ +# $3 - clang++ +# $4 - icc/icpc +check_compiler() { + local cur ver + case "$(tc-getCXX)" in + *clang++*) + ver="$(best_version sys-devel/clang | sed 's:sys-devel/clang-::')" + cur="$3" + ;; + *g++*) + ver="$(gcc-version)" + cur="$2" + ;; + *icc*|*icpc*) + ver="$(best_version dev-lang/icc | sed 's:dev-lang/icc-::')" + cur="$4" + ;; + *) + ewarn "You are using an unsupported compiler." + ewarn "Please report any issues upstream." + return 0 + ;; + esac + version_is_at_least "${cur}" "${ver}" || die_compiler "$1" "$2" "$3" "$4" "${ver}" +} + +pkg_setup() { + fortran-2_pkg_setup + use python && python-single-r1_pkg_setup + echo + elog "There are extra options on packages not yet in Gentoo:" + elog "Afdsmgrd, AliEn, castor, Chirp, dCache, gfal, Globus, gLite," + elog "HDFS, Monalisa, MaxDB/SapDB, SRP." + elog "You can use the env variable EXTRA_ECONF variable for this." + elog "For example, for SRP, you would set: " + elog "EXTRA_ECONF=\"--enable-srp --with-srp-libdir=${EROOT%/}/usr/$(get_libdir)\"" + echo + + enewgroup rootd + enewuser rootd -1 -1 /var/spool/rootd rootd + + if use math; then + if use openmp; then + if [[ "$(tc-getCXX)" == *g++* && "$(tc-getCXX)" != *clang++* ]] && ! tc-has-openmp; then + ewarn "You are using a g++ without OpenMP capabilities" + die "Need an OpenMP capable compiler" + else + export USE_OPENMP=1 USE_PARALLEL_MINUIT2=1 + fi + elif use mpi; then + export USE_MPI=1 USE_PARALLEL_MINUIT2=1 + fi + fi + + use c++11 && check_compiler "11" "4.8" "3.3" "13" + use c++14 && check_compiler "14" "4.9" "3.4" "15" +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-5.28.00b-glibc212.patch \ + "${FILESDIR}"/${PN}-5.32.00-cfitsio.patch \ + "${FILESDIR}"/${PN}-5.32.00-chklib64.patch \ + "${FILESDIR}"/${PN}-5.32.00-dotfont.patch \ + "${FILESDIR}"/${PN}-5.34.05-nobyte-compile.patch \ + "${FILESDIR}"/${PN}-5.34.13-unuran.patch \ + "${FILESDIR}"/${PN}-5.34.26-ldflags.patch + + # make sure we use system libs and headers + rm montecarlo/eg/inc/cfortran.h README/cfortran.doc || die + rm -r graf2d/asimage/src/libAfterImage || die + rm -r graf3d/ftgl/{inc,src} || die + rm -r graf2d/freetype/src || die + rm -r graf3d/glew/{inc,src} || die + rm -r core/pcre/src || die + rm -r math/unuran/src/unuran-*.tar.gz || die + LANG=C LC_ALL=C find core/zip -type f -name "[a-z]*" -print0 | \ + xargs -0 rm || die + rm -r core/lzma/src/*.tar.gz || die + rm graf3d/gl/{inc,src}/gl2ps.* || die + sed -i -e 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' \ + graf3d/gl/Module.mk || die + + # In Gentoo, libPythia6 is called libpythia6 + # iodbc is in /usr/include/iodbc + # pg_config.h is checked instead of libpq-fe.h + sed -i \ + -e 's:libPythia6:libpythia6:g' \ + -e 's:$ODBCINCDIR:$ODBCINCDIR /usr/include/iodbc:' \ + -e 's:libpq-fe.h:pg_config.h:' \ + configure || die "adjusting configure for Gentoo failed" + + hprefixify configure + hprefixify -e "s,I/usr/include,I${EPREFIX}/usr/include," config/Makefile.in + + # CSS should use local images + sed -i -e 's,http://.*/,,' etc/html/ROOT.css || die "html sed failed" + + # fix reflex path (bug #497280) + sed -i -e 's|${ROOTSYS}/lib|@libdir@|' config/genreflex.in || die + + # QTDIR only used for qt3 in gentoo, and configure looks for it. + unset QTDIR +} + +src_configure() { + local -a myconf + # Some compilers need special care + case "$(tc-getCXX)" in + *clang++*) + myconf=( + --with-clang + --with-f77="$(tc-getFC)" + ) + ;; + *icc*|*icpc*) + # For icc we need to provide architecture manually + # and not to tamper with tc-get* + use x86 && myconf=( linuxicc ) + use amd64 && myconf=( linuxx8664icc ) + ;; + *) # gcc goes here too + myconf=( + --with-cc="$(tc-getCC)" + --with-cxx="$(tc-getCXX)" + --with-f77="$(tc-getFC)" + --with-ld="$(tc-getCXX)" + ) + ;; + esac + + # the configure script is not the standard autotools + myconf+=( + --prefix="${EPREFIX}/usr" + --etcdir="${EPREFIX}/etc/root" + --libdir="${EPREFIX}/usr/$(get_libdir)/${PN}" + --docdir="${EPREFIX}${DOC_DIR}" + --tutdir="${EPREFIX}${DOC_DIR}/examples/tutorials" + --testdir="${EPREFIX}${DOC_DIR}/examples/tests" + --cflags='${CFLAGS}' + --cxxflags='${CXXFLAGS}' + --disable-builtin-afterimage + --disable-builtin-ftgl + --disable-builtin-freetype + --disable-builtin-glew + --disable-builtin-lzma + --disable-builtin-pcre + --disable-builtin-zlib + --disable-cling + --disable-werror + --enable-explicitlink + --enable-shared + --enable-soversion + --fail-on-missing + --nohowto + --with-afs-shared=yes + --with-sys-iconpath="${EPREFIX}/usr/share/pixmaps" + $(use_enable X x11) + $(use_enable X asimage) + $(use_enable X xft) + $(use_enable afs) + $(use_enable c++11 cxx11) + $(use_enable c++14 cxx14) + $(use_enable fits fitsio) + $(use_enable fftw fftw3) + $(use_enable gdml) + $(use_enable graphviz gviz) + $(use_enable http) + $(use_enable kerberos krb5) + $(use_enable ldap) + $(use_enable math genvector) + $(use_enable math gsl-shared) + $(use_enable math mathmore) + $(use_enable math minuit2) + $(use_enable math roofit) + $(use_enable math tmva) + $(use_enable math vc) + $(use_enable math vdt) + $(use_enable math unuran) + $(use_enable memstat) + $(use_enable mysql) + $(usex mysql "--with-mysql-incdir=${EPREFIX}/usr/include/mysql" "") + $(use_enable odbc) + $(use_enable opengl) + $(use_enable oracle) + $(use_enable postgres pgsql) + $(use_enable prefix rpath) + $(use_enable pythia6) + $(use_enable pythia8) + $(use_enable python) + $(use_enable qt4 qt) + $(use_enable qt4 qtgsi) + $(use_enable reflex cintex) + $(use_enable reflex) + $(use_enable ruby) + $(use_enable shadow shadowpw) + $(use_enable sqlite) + $(use_enable ssl) + $(use_enable table) + $(use_enable tiff astiff) + $(use_enable xml) + $(use_enable xrootd) + $(use_enable zeroconf bonjour) + ${EXTRA_ECONF} + ) + + # usex can't be used here, because pg_config may be not + # installed with USE="-postgres" + use postgres && myconf+=( --with-pgsql-incdir=$(pg_config --includedir) ) + + ./configure ${myconf[@]} || die "configure failed" +} + +src_compile() { + # The build system does not handle the dependency of bin/rmkdepend correctly, + # preventing it to be called in parallel. Build bin/rmkdepend explicitly + # first to circumvent the problem. + emake bin/rmkdepend + emake \ + OPT="${CXXFLAGS}" \ + F77OPT="${FFLAGS}" \ + ROOTSYS="${S}" \ + LD_LIBRARY_PATH="${S}/lib" + use emacs && elisp-compile build/misc/*.el +} + +daemon_install() { + local daemons="rootd proofd" + dodir /var/spool/rootd + fowners rootd:rootd /var/spool/rootd + dodir /var/spool/rootd/{pub,tmp} + fperms 1777 /var/spool/rootd/{pub,tmp} + + local i + for i in ${daemons}; do + newinitd "${FILESDIR}"/${i}.initd ${i} + newconfd "${FILESDIR}"/${i}.confd ${i} + done + if use xinetd; then + insinto /etc/xinetd + doins "${S}"/etc/daemons/{rootd,proofd}.xinetd + fi +} + +desktop_install() { + cd "${S}" + echo "Icon=root-system-bin" >> etc/root.desktop + domenu etc/root.desktop + doicon build/package/debian/root-system-bin.png + + insinto /usr/share/icons/hicolor/48x48/mimetypes + doins build/package/debian/application-x-root.png + + insinto /usr/share/icons/hicolor/48x48/apps + doicon build/package/debian/root-system-bin.xpm +} + +cleanup_install() { + # Cleanup of files either already distributed or unused on Gentoo + pushd "${ED}" > /dev/null + rm usr/share/root/fonts/LICENSE || die + rm etc/root/proof/*.sample || die + rm -r etc/root/daemons || die + # these should be in PATH + mv etc/root/proof/utils/pq2/pq2* usr/bin/ || die + rm ${DOC_DIR#/}/{INSTALL,LICENSE,COPYING.CINT} || die + use examples || rm -r ${DOC_DIR#/}/examples || die + cd usr/$(get_libdir)/root/cint/cint + rm lib/posix/mktypes lib/dll_stl/setup lib/G__* || die + rm lib/dll_stl/G__* lib/dll_stl/rootcint_* lib/posix/exten.o || die + rm include/makehpib || die + popd > /dev/null +} + +src_install() { + emake DESTDIR="${D}" install + + echo "LDPATH=${EPREFIX%/}/usr/$(get_libdir)/root" > 99root + + use pythia8 && echo "PYTHIA8=${EPREFIX%/}/usr" >> 99root + if use python; then + echo "PYTHONPATH=${EPREFIX%/}/usr/$(get_libdir)/root" >> 99root + python_optimize "${D}/usr/$(get_libdir)/root" + use reflex && python_optimize "${D}/usr/$(get_libdir)/root/python/genreflex/" + fi + use ruby && \ + echo "RUBYLIB=${EPREFIX%/}/usr/$(get_libdir)/root" >> 99root + use emacs && elisp-install ${PN} build/misc/*.{el,elc} + if use examples; then + # these should really be taken care of by the root make install + insinto ${DOC_DIR}/examples/tutorials/tmva + doins -r tmva/test + fi + doenvd 99root + + # The build system installs Emacs support unconditionally in the wrong + # directory. Remove it and call elisp-install in case of USE=emacs. + rm -r "${ED}"/usr/share/emacs || die + + daemon_install + desktop_install + cleanup_install + + # do not copress files used by ROOT's CLI (.credit, .demo, .license) + docompress -x "${DOC_DIR}"/{CREDITS,examples/tutorials} + # needed for .license command to work + dosym "${ED}"usr/portage/licenses/LGPL-2.1 "${DOC_DIR}/LICENSE" +} + +pkg_postinst() { + fdo-mime_desktop_database_update +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/sci-physics/root/root-6.04.06.ebuild b/sci-physics/root/root-6.04.06.ebuild new file mode 100644 index 000000000000..826af7a7fffb --- /dev/null +++ b/sci-physics/root/root-6.04.06.ebuild @@ -0,0 +1,498 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) + +inherit elisp-common eutils fdo-mime fortran-2 multilib python-single-r1 \ + toolchain-funcs user versionator + +DESCRIPTION="C++ data analysis framework and interpreter from CERN" +HOMEPAGE="https://root.cern.ch" +SRC_URI="https://root.cern.ch/download/${PN}_v${PV}.source.tar.gz" + +SLOT="0/$(get_version_component_range 1-3 ${PV})" +LICENSE="LGPL-2.1 freedist MSttfEULA LGPL-3 libpng UoI-NCSA" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+X afs doc emacs examples fits fftw gdml geocad + graphviz http kerberos ldap +math +memstat mpi mysql odbc + +opengl openmp oracle postgres prefix pythia6 pythia8 + python qt4 R shadow sqlite ssl table +tiff xinetd xml xrootd + zeroconf" + +# TODO: add support for: davix +# TODO: ROOT-6 supports x32 ABI, but half of its dependencies doesn't +# TODO: unbundle: cling, vdt + +REQUIRED_USE=" + !X? ( !opengl !qt4 !tiff ) + mpi? ( math !openmp ) + openmp? ( math !mpi ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +CDEPEND=" + app-arch/xz-utils:0= + >=dev-lang/cfortran-4.4-r2 + dev-libs/libpcre:3= + media-fonts/dejavu + media-libs/freetype:2= + media-libs/libpng:0= + >=sys-devel/clang-3.4:= + sys-libs/ncurses:= + sys-libs/zlib:0= + X? ( + media-libs/ftgl:0= + media-libs/glew:0= + x11-libs/libX11:0= + x11-libs/libXext:0= + x11-libs/libXpm:0= + || ( + media-libs/libafterimage[gif,jpeg,png,tiff?] + >=x11-wm/afterstep-2.2.11[gif,jpeg,png,tiff?] + ) + opengl? ( virtual/opengl virtual/glu x11-libs/gl2ps:0= ) + qt4? ( + dev-qt/qtgui:4= + dev-qt/qtopengl:4= + dev-qt/qt3support:4= + dev-qt/qtsvg:4= + dev-qt/qtwebkit:4= + dev-qt/qtxmlpatterns:4= + ) + x11-libs/libXft:0= + ) + afs? ( net-fs/openafs ) + emacs? ( virtual/emacs ) + fits? ( sci-libs/cfitsio:0= ) + fftw? ( sci-libs/fftw:3.0= ) + geocad? ( =sci-physics/pythia-8.1.80:8= ) + python? ( ${PYTHON_DEPS} ) + R? ( dev-lang/R ) + shadow? ( virtual/shadow ) + sqlite? ( dev-db/sqlite:3= ) + ssl? ( dev-libs/openssl:0= ) + xml? ( dev-libs/libxml2:2= ) + xrootd? ( >=net-libs/xrootd-3.3.5:0= ) + zeroconf? ( net-dns/avahi:0= ) +" + +# TODO: ruby is not yet ported to ROOT-6, reenable when (if?) ready +# ruby? ( +# dev-lang/ruby:= +# dev-ruby/rubygems:= +# ) + +DEPEND="${CDEPEND} + virtual/pkgconfig" + +RDEPEND="${CDEPEND} + xinetd? ( sys-apps/xinetd )" + +PDEPEND="doc? ( ~app-doc/root-docs-${PV}[http=,math=] )" + +# install stuff in ${P} and not ${PF} for easier tracking in root-docs +DOC_DIR="/usr/share/doc/${P}" + +OC_UNSUPPORTED="6.8.0" + +die_compiler() { + eerror "You are using a $(tc-getCXX)-$5 without C++$1 capabilities" + die "Need one of the following C++$1 capable compilers:\n"\ + " >=sys-devel/gcc[cxx]-$2\n"\ + " >=sys-devel/clang-$3\n"\ + " >=dev-lang/icc-$4" +} + +# check compiler to satisfy minimal versions +# $1 - std version +# $2 - g++ +# $3 - clang++ +# $4 - icc/icpc +check_compiler() { + local cur ver + case "$(tc-getCXX)" in + *clang++*) + ver="$(best_version sys-devel/clang | sed 's:sys-devel/clang-::')" + cur="$3" + ;; + *g++*) + ver="$(gcc-version)" + if version_is_at_least "5" "${ver}"; then + eerror "" + eerror "GCC-5 is not yet supported in ROOT-6." + eerror "The code may build for you, but will have run-time failures." + eerror "See the following bugs:" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7285" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7319" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7654" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7721" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7818" + eerror "https://sft.its.cern.ch/jira/browse/ROOT-7895" + eerror "https://bugs.gentoo.org/show_bug.cgi?id=564306" + eerror "" + eerror "Please use GCC-4.9 for now." + eerror "" + die "gcc-5 is not yet supported" + fi + cur="$2" + ;; + *icc*|*icpc*) + ver="$(best_version dev-lang/icc | sed 's:dev-lang/icc-::')" + eerror "ROOT-6 is known not to build with ICC." + eerror "Please report any isuses upstream." + cur="$4" + ;; + *) + ewarn "You are using an unsupported compiler." + ewarn "Please report any issues upstream." + return 0 + ;; + esac + version_is_at_least "${cur}" "${ver}" || die_compiler "$1" "$2" "$3" "$4" "${ver}" +} + +pkg_setup() { + fortran-2_pkg_setup + use python && python-single-r1_pkg_setup + echo + elog "There are extra options on packages not yet in Gentoo:" + elog "Afdsmgrd, AliEn, castor, Chirp, dCache, gfal, Globus, gLite," + elog "HDFS, Monalisa, MaxDB/SapDB, SRP." + elog "You can use the env variable EXTRA_ECONF variable for this." + elog "For example, for SRP, you would set: " + elog "EXTRA_ECONF=\"--enable-srp --with-srp-libdir=${EROOT%/}/usr/$(get_libdir)\"" + echo + + enewgroup rootd + enewuser rootd -1 -1 /var/spool/rootd rootd + + if use math; then + if use openmp; then + if [[ "$(tc-getCXX)" == *g++* && "$(tc-getCXX)" != *clang++* ]] && ! tc-has-openmp; then + ewarn "You are using a g++ without OpenMP capabilities" + die "Need an OpenMP capable compiler" + else + export USE_OPENMP=1 USE_PARALLEL_MINUIT2=1 + fi + elif use mpi; then + export USE_MPI=1 USE_PARALLEL_MINUIT2=1 + fi + fi + + # c++11 support is mandatory + check_compiler "11" "4.8" "3.4" "13" + + # Active version of opencascade may be >= $OC_UNSUPPORTED, + # so we need to eselect proper version (it must exist due to DEPEND requirement) + if use geocad; then + oc_current=$(eselect opencascade show) + # Proceed only if active version is unsupported + if version_is_at_least "${OC_UNSUPPORTED}" "${oc_current}"; then + local -a vlist + vlist=( $(version_sort $(eselect opencascade list | awk '/^ / { print $2 }')) ) + local i + # search for higehr version < $OC_UNSUPPORTED + # list is sorted acsending, so loop backwards + for (( i=$(( ${#vlist[@]} -1 )); i>=0; i-- )); do + version_is_at_least "${OC_UNSUPPORTED}" "${vlist[i]}" || break + done + [[ $i == "-1" ]] && die "No suitable opencascade eselect slot is available (<${OC_UNSUPPORTED})" + + einfo "Switching opencascade to supported slot: ${oc_current} -> ${vlist[i]}" + eselect opencascade set ${vlist[i]} > /dev/null || die "eselect opencascade set ${vlist[i]} failed!" + else + # forget it, effectively disabling eselect cleanup + unset oc_current + fi + fi +} + +src_prepare() { + # Second version of makepch is required in order to generate + # PCH file appropriate for Gentoo include headers layout. + # This can be done only at install stage, when files are placed + # as appropriate. Premature modification of makepch.sh will + # broke build process, however. + #cp "etc/dictpch/makepch.sh" "etc/dictpch/makepch-gentoo.sh" || die + + epatch \ + "${FILESDIR}"/${PN}-5.28.00b-glibc212.patch \ + "${FILESDIR}"/${PN}-5.32.00-afs.patch \ + "${FILESDIR}"/${PN}-5.32.00-cfitsio.patch \ + "${FILESDIR}"/${PN}-5.32.00-chklib64.patch \ + "${FILESDIR}"/${PN}-5.34.13-unuran.patch \ + "${FILESDIR}"/${PN}-6.00.01-dotfont.patch \ + "${FILESDIR}"/${PN}-6.00.01-llvm.patch \ + "${FILESDIR}"/${PN}-6.00.01-nobyte-compile.patch \ + "${FILESDIR}"/${PN}-6.04.06-prop-flags.patch \ + "${FILESDIR}"/${PN}-6.04.06-gsl2.patch + # "${FILESDIR}"/${PN}-6.02.05-xrootd4.patch + # "${FILESDIR}"/${PN}-6.02.05-dictpch.patch \ + + # make sure we use system libs and headers + rm montecarlo/eg/inc/cfortran.h README/cfortran.doc || die + rm -r graf2d/asimage/src/libAfterImage || die + rm -r graf3d/ftgl/{inc,src} || die + rm -r graf2d/freetype/src || die + rm -r graf3d/glew/{inc,src} || die + rm -r core/pcre/src || die + rm -r math/unuran/src/unuran-*.tar.gz || die + LANG=C LC_ALL=C find core/zip -type f -name "[a-z]*" -print0 | \ + xargs -0 rm || die + rm -r core/lzma/src/*.tar.gz || die + rm graf3d/gl/{inc,src}/gl2ps.* || die + sed -i -e 's/^GLLIBS *:= .* $(OPENGLLIB)/& -lgl2ps/' \ + graf3d/gl/Module.mk || die + + # In Gentoo, libPythia6 is called libpythia6 + # iodbc is in /usr/include/iodbc + # pg_config.h is checked instead of libpq-fe.h + sed -i \ + -e 's:libPythia6:libpythia6:g' \ + -e 's:$ODBCINCDIR:$ODBCINCDIR /usr/include/iodbc:' \ + -e 's:libpq-fe.h:pg_config.h:' \ + configure || die "adjusting configure for Gentoo failed" + + # prefixify the configure script + sed -i \ + -e 's:/usr:${EPREFIX}/usr:g' \ + configure || die "prefixify configure failed" + + # CSS should use local images + sed -i -e 's,http://.*/,,' etc/html/ROOT.css || die "html sed failed" + + # QTDIR only used for qt3 in gentoo, and configure looks for it. + unset QTDIR +} + +# NB: ROOT uses bundled LLVM, because it is patched and API-incompatible with +# system LLVM. +# NB: As of 6.00.0.1 cmake is not ready as it can't fully replace configure, +# e.g. for afs and geocad. + +src_configure() { + local -a myconf + # Some compilers need special care + case "$(tc-getCXX)" in + *clang++*) + myconf=( + --with-clang + --with-f77="$(tc-getFC)" + ) + ;; + *icc*|*icpc*) + # For icc we need to provide architecture manually + # and not to tamper with tc-get* + use x86 && myconf=( linuxicc ) + use amd64 && myconf=( linuxx8664icc ) + ;; + *) # gcc goes here too + myconf=( + --with-cc="$(tc-getCC)" + --with-cxx="$(tc-getCXX)" + --with-f77="$(tc-getFC)" + --with-ld="$(tc-getCXX)" + ) + ;; + esac + + # the configure script is not the standard autotools + myconf+=( + --prefix="${EPREFIX}/usr" + --etcdir="${EPREFIX}/etc/root" + --libdir="${EPREFIX}/usr/$(get_libdir)/${PN}" + --docdir="${EPREFIX}${DOC_DIR}" + --tutdir="${EPREFIX}${DOC_DIR}/examples/tutorials" + --testdir="${EPREFIX}${DOC_DIR}/examples/tests" + --disable-builtin-afterimage + --disable-builtin-ftgl + --disable-builtin-freetype + --disable-builtin-glew + --disable-builtin-lzma + --disable-builtin-pcre + --disable-builtin-zlib + --disable-werror + --enable-explicitlink + --enable-shared + --enable-soversion + --fail-on-missing + --nohowto + --with-afs-shared=yes + --with-sys-iconpath="${EPREFIX}/usr/share/pixmaps" + # Invalid option '-mtune=native'. Try ./configure --help + # --cflags=\"${CFLAGS}\" + # --cxxflags=\"${CXXFLAGS}\" + $(use_enable X x11) + $(use_enable X asimage) + $(use_enable X xft) + $(use_enable afs) + $(use_enable fits fitsio) + $(use_enable fftw fftw3) + $(use_enable gdml) + $(use_enable geocad) + $(use_enable graphviz gviz) + $(use_enable http) + $(use_enable kerberos krb5) + $(use_enable ldap) + $(use_enable math genvector) + $(use_enable math gsl-shared) + $(use_enable math mathmore) + $(use_enable math minuit2) + $(use_enable math roofit) + $(use_enable math tmva) + $(use_enable math vc) + $(use_enable math vdt) + $(use_enable math unuran) + $(use_enable memstat) + $(use_enable mysql) + $(usex mysql "--with-mysql-incdir=${EPREFIX}/usr/include/mysql" "") + $(use_enable odbc) + $(use_enable opengl) + $(use_enable oracle) + $(use_enable postgres pgsql) + $(use_enable prefix rpath) + $(use_enable pythia6) + $(use_enable pythia8) + $(use_enable python) + $(use_enable qt4 qt) + $(use_enable qt4 qtgsi) + $(use_enable R r) + $(use_enable shadow shadowpw) + $(use_enable sqlite) + $(use_enable ssl) + $(use_enable table) + $(use_enable tiff astiff) + $(use_enable xml) + $(use_enable xrootd) + $(use_enable zeroconf bonjour) + ${EXTRA_ECONF} + ) + + # usex can't be used here, because pg_config may be not + # installed with USE="-postgres" + use postgres && myconf+=( --with-pgsql-incdir=$(pg_config --includedir) ) + + einfo "Configuring with ${myconf[@]}" + ./configure ${myconf[@]} || die "configure failed" +} + +src_compile() { + emake \ + OPT="${CXXFLAGS}" \ + F77OPT="${FFLAGS}" \ + ROOTSYS="${S}" \ + LD_LIBRARY_PATH="${S}/lib" + use emacs && elisp-compile build/misc/*.el +} + +daemon_install() { + local daemons="rootd proofd" + dodir /var/spool/rootd + fowners rootd:rootd /var/spool/rootd + dodir /var/spool/rootd/{pub,tmp} + fperms 1777 /var/spool/rootd/{pub,tmp} + + local i + for i in ${daemons}; do + newinitd "${FILESDIR}"/${i}.initd ${i} + newconfd "${FILESDIR}"/${i}.confd ${i} + done + if use xinetd; then + insinto /etc/xinetd + doins "${S}"/etc/daemons/{rootd,proofd}.xinetd + fi +} + +desktop_install() { + cd "${S}" + echo "Icon=root-system-bin" >> etc/root.desktop + domenu etc/root.desktop + doicon build/package/debian/root-system-bin.png + + insinto /usr/share/icons/hicolor/48x48/mimetypes + doins build/package/debian/application-x-root.png + + insinto /usr/share/icons/hicolor/48x48/apps + doicon build/package/debian/root-system-bin.xpm +} + +cleanup_install() { + # Cleanup of files either already distributed or unused on Gentoo + pushd "${ED}" > /dev/null + rm usr/share/root/fonts/LICENSE || die + rm etc/root/proof/*.sample || die + rm -r etc/root/daemons || die + # these should be in PATH + mv etc/root/proof/utils/pq2/pq2* usr/bin/ || die + rm ${DOC_DIR#/}/INSTALL || die + use examples || rm -r ${DOC_DIR#/}/examples || die + + # clean hardcoded sandbox paths + #rm etc/root/dictpch/allCppflags.txt.tmp || die + #sed -i "s|${S}/||" etc/root/cling/llvm/Config/llvm-config.h || die + # regenerate pch for Gentoo headers layout + #rm "etc/root/allDict.cxx.pch" || die + #sed -i 's|etc/dictpch|etc/root/dictpch|' etc/root/dictpch/allLinkDefs.h || die + #sed -i 's|etc/cling|etc/root/cling|' etc/root/dictpch/allHeaders.h || die + #sed -i "s|ROOTDIR_TEMPLATE|${ED}|" etc/root/dictpch/makepch-gentoo.sh || die + #etc/root/dictpch/makepch-gentoo.sh etc/root/allDict.cxx.pch || die "PCH generation failed" +} + +src_install() { + ROOTSYS="${S}" emake DESTDIR="${D}" install + insinto "${DOC_DIR}" + doins README.md + + echo "LDPATH=${EPREFIX%/}/usr/$(get_libdir)/root" > 99root + use pythia8 && echo "PYTHIA8=${EPREFIX%/}/usr" >> 99root + + if use python; then + echo "PYTHONPATH=${EPREFIX%/}/usr/$(get_libdir)/root" >> 99root + python_optimize "${D}/usr/$(get_libdir)/root" + fi + use emacs && elisp-install ${PN} build/misc/*.{el,elc} + doenvd 99root + + # The build system installs Emacs support unconditionally in the wrong + # directory. Remove it and call elisp-install in case of USE=emacs. + rm -r "${ED}"/usr/share/emacs || die + + daemon_install + desktop_install + cleanup_install + + # do not copress files used by ROOT's CLI (.credit, .demo, .license) + docompress -x "${DOC_DIR}"/{CREDITS,examples/tutorials} +} + +pkg_postinst() { + fdo-mime_desktop_database_update + + # restort opencascade eselect slot + if use geocad && [[ -n ${oc_current} ]]; then + einfo "Switching to user set slot: $(eselect opencascade show) -> ${oc_current}" + eselect opencascade set ${oc_current} > /dev/null || eerror "eselect opencascade set ${vlist[i]} failed!" + unset oc_current + fi +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} -- cgit v1.2.3