From c181a6189feb95d67416d8ccffd098fedd483bbd Mon Sep 17 00:00:00 2001 From: bicatali Date: Wed, 16 Apr 2008 09:40:01 +0000 Subject: geant4: new ebuild with exports git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@1018 32389bae-6d03-0410-99cf-db05cde120eb --- sci-physics/geant/ChangeLog | 6 + sci-physics/geant/Manifest | 8 +- .../geant/files/geant-4.9.1_p01-configure.patch | 116 ----------- .../geant/files/geant-4.9.1_p01-no-source.patch | 45 ----- sci-physics/geant/geant-4.9.1_p01.ebuild | 220 ++++++++++----------- sci-physics/geant/metadata.xml | 3 +- 6 files changed, 119 insertions(+), 279 deletions(-) delete mode 100644 sci-physics/geant/files/geant-4.9.1_p01-configure.patch delete mode 100644 sci-physics/geant/files/geant-4.9.1_p01-no-source.patch (limited to 'sci-physics') diff --git a/sci-physics/geant/ChangeLog b/sci-physics/geant/ChangeLog index b1834f1e4..3fc3998ee 100644 --- a/sci-physics/geant/ChangeLog +++ b/sci-physics/geant/ChangeLog @@ -2,6 +2,12 @@ # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 16 Apr 2008; Sébastien Fabbro + -files/geant-4.9.1_p01-configure.patch, + -files/geant-4.9.1_p01-no-source.patch, metadata.xml, + geant-4.9.1_p01.ebuild: + geant4: new ebuild with exports + 11 Apr 2008; Sébastien Fabbro +geant-3.21.14-r2.ebuild, geant-4.9.1_p01.ebuild: Added slotted geant-3 diff --git a/sci-physics/geant/Manifest b/sci-physics/geant/Manifest index b4e761775..934e5a539 100644 --- a/sci-physics/geant/Manifest +++ b/sci-physics/geant/Manifest @@ -1,5 +1,3 @@ -AUX geant-4.9.1_p01-configure.patch 2543 RMD160 146187182104386f0499421020848eb1cff3ac12 SHA1 53894a926685d456705b2b14a9da502ca2036994 SHA256 52adff5ca21ffb9620ebba5959cdef9ee321dfd9c62fa7033c6b95bc52c3746e -AUX geant-4.9.1_p01-no-source.patch 1182 RMD160 1d61219d09f454bc832deadc2cb43cd6977513e5 SHA1 bb9cc244d008039e71eb8ff84fcc6561bced72b1 SHA256 12fe3d01864b7822d6f68efba307b7f3055491b45fe918e39a13b58edfe0906d DIST G4ABLA.3.0.tar.gz 54909 RMD160 5a032ee8e90d00f39b67114fe257ec47001f347b SHA1 5f38676f1650a508e49d35f9405ac96984388135 SHA256 ff0b77be6b36204eeeba71099f6b7530edd80b79eb015994535bc4334bc821eb DIST G4EMLOW.5.1.tar.gz 8287134 RMD160 163f76c359bf9d4f8a2eb3d734de50c2b6dc4d72 SHA1 092e27f2befe10f3e4b2f7450d1ba3f9fe0435bb SHA256 b1bebb1a502257ba9d379e6719be7a453b0aa31c9b01d5026866e9bd811c17d9 DIST G4NDL.3.12.tar.gz 54904967 RMD160 5ea321deb3c1ddc8094c3d28457d627cacd6f2f0 SHA1 d42d0835e8921c15902d7aa410f1207edfbd54df SHA256 05a4d74ff1faa8fa3382fbda780ea258b2e4af7e5ae29856d1deaf72b4235290 @@ -9,6 +7,6 @@ DIST geant321_3.21.14.dfsg-8.diff.gz 41909 RMD160 4edbe5d3dd93a78198fa2d2d83770c DIST geant321_3.21.14.dfsg.orig.tar.gz 10922928 RMD160 253b35bd9cda82c2213ec042274f7e6ff6b9e333 SHA1 ae6f39ccc18eacd576a3493992db5da3b3d3b128 SHA256 186fe98a08ad1de39f68698a09a46e7c2f14c37b22f8f990257b0bd66215c5b4 DIST geant4.9.1.p01.tar.gz 17528409 RMD160 e8bb8df4138d4d8e662eae86b7c2a01813f6621e SHA1 87e511c257c31d579371d745e7c17eae58d3fc9c SHA256 6a634d9e6b4eb201f54c97882cef11ce8f1e6745864d6e5830c6c7b198df8ba4 EBUILD geant-3.21.14-r2.ebuild 1777 RMD160 41c10364420d4c16f97db9afe2ab2c5ee7aa9172 SHA1 d5262f3d33f3bc0ebac0a7829acf1d9f60207749 SHA256 65f1efc85ff9cb07e405413e011fb8b3e5b154de36706015cb6d1c1a01f03229 -EBUILD geant-4.9.1_p01.ebuild 5249 RMD160 2d7948a6671b4bc23c9409ad015491285d9d1496 SHA1 4cec3c92543280cc5b300f9cffb3f75f75e55bcb SHA256 ebbe8fade812ab4a73acb0042c37e1a2e949c590f34cd2bdeb895c00812f6841 -MISC ChangeLog 1043 RMD160 a6a0094d5e491614658549630e0d5529ac4777d6 SHA1 38b6031c465c5bca4c865d1a8a66f873d0f608c5 SHA256 7a59f0ba540a40dfdca0579303ef91356c597de3f16586567ff25e26581b98fe -MISC metadata.xml 487 RMD160 6ef1920ad5ce8a4b81c3960b490f7e1219d29592 SHA1 3df009e39f51086e9bbc66616b65fdad441f956f SHA256 c7ca665634072c0520ad9a26e61bdba7eef1665c32cbe9a9039d8ebbcd35c1d8 +EBUILD geant-4.9.1_p01.ebuild 5935 RMD160 9d1b63c74e7e14c5d2ca9018605cc803667cc361 SHA1 7016d8b3d188a3a56c7cb86311e869e36241ed85 SHA256 3dd92792a4cd895c32c42c12ea5dae34a4c6e4524278a28c368822c9e4922fc1 +MISC ChangeLog 1257 RMD160 4559f2f1899b4f7c3d50bad8da1c5351ac0166a9 SHA1 4b3d4dab999f741b73b7640502be986a2cca4dad SHA256 182dbf7e21a1411a5a2b43d53a6cc17605147517464ce27fbed8aa37134c0bf0 +MISC metadata.xml 552 RMD160 d7d3afe7f12639592a2f7356d75563ee6b84b262 SHA1 831756c23df5293d3f114679bd3d59e6f6e15ec4 SHA256 9375e293406efe2a3810fdc3e0d75fed9be986db1d79b845f3e4fc4e81edb37f diff --git a/sci-physics/geant/files/geant-4.9.1_p01-configure.patch b/sci-physics/geant/files/geant-4.9.1_p01-configure.patch deleted file mode 100644 index 55c925d49..000000000 --- a/sci-physics/geant/files/geant-4.9.1_p01-configure.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- Configure.orig 2007-11-28 13:49:23.000000000 +0000 -+++ Configure 2008-04-07 18:45:41.317949330 +0000 -@@ -579,16 +579,17 @@ - ;; - esac - --: Sanity checks --case "$fastread$alldone" in --yescont|yesexit) ;; --*) -- if test ! -t 0; then -- echo "Say 'sh Configure', not 'sh &1 - case "$silent" in -@@ -982,7 +983,7 @@ - : general instructions - needman=true - firsttime=true --user=`(logname) 2>/dev/null` -+user=`(logname || true) 2>/dev/null` - case "$user" in - '') user=`whoami 2>&1`;; - esac -@@ -1315,7 +1316,6 @@ - '') - myuname=`( ($uname -a) 2>/dev/null || hostname) 2>&1` - --mygcc=`( ($g++ -v) 2>/dev/null) 2>&1` - myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \ - ./tr '[A-Z]' '[a-z]' | tr '\012' ' '` - newmyuname="$myuname" -@@ -1911,7 +1911,7 @@ - - . $src/.config/bin/$g4system/move.sh - -- exit 1 -+ exit 0 - - fi #end of cppflags - -@@ -2119,7 +2119,7 @@ - cp -i $src/.config/bin/$g4system/env.csh . - cp -i $src/.config/bin/$g4system/env.sh . - -- exit 1 -+ exit 0 - fi #end of -lib or user - else #there is no env.sh - -@@ -2217,7 +2217,7 @@ - - : who configured the system - cf_time=`$date 2>&1` --cf_by=`(logname) 2>/dev/null` -+cf_by=`(logname || true) 2>/dev/null` - case "$cf_by" in - "") - cf_by=`(whoami) 2>/dev/null` -@@ -4200,9 +4200,9 @@ - if test "X$g4osname" = "XLinux" ; then - g4vis_xmflags=" -I$g4vis_xmhome/include " - if test "X$g4vis_xmhome" = "X/usr/X11R6" ; then -- g4vis_xmlibs=" -lXm -lXpm " -+ g4vis_xmlibs=" -lXm " - else -- g4vis_xmlibs=" -L$g4vis_xmhome/lib -lXm -lXpm " -+ g4vis_xmlibs=" -L$g4vis_xmhome/lib -lXm " - fi - fi - -@@ -4908,9 +4908,9 @@ - if test "X$g4osname" = "XLinux" ; then - g4vis_xmflags=" -I$g4vis_xmhome/include " - if test "X$g4vis_xmhome" = "X/usr/X11R6" ; then -- g4vis_xmlibs=" -lXm -lXpm " -+ g4vis_xmlibs=" -lXm " - else -- g4vis_xmlibs=" -L$g4vis_xmhome/lib -lXm -lXpm " -+ g4vis_xmlibs=" -L$g4vis_xmhome/lib -lXm " - fi - fi - -@@ -6123,7 +6123,7 @@ - - echo "" - -- g4_gmake_version=`(gmake -v) 2>/dev/null` -+ g4_gmake_version=`(gmake -v || true) 2>/dev/null` - case $g4_gmake_version in - GNU*) - g4_gmake=y -@@ -6133,7 +6133,7 @@ - ;; - esac - -- g4_make_version=`(make -v) 2>/dev/null` -+ g4_make_version=`(make -v || true) 2>/dev/null` - case $g4_make_version in - GNU*) - g4_make=y diff --git a/sci-physics/geant/files/geant-4.9.1_p01-no-source.patch b/sci-physics/geant/files/geant-4.9.1_p01-no-source.patch deleted file mode 100644 index add9da455..000000000 --- a/sci-physics/geant/files/geant-4.9.1_p01-no-source.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- config/scripts/move.sh.SH.orig 2008-04-08 16:08:16.817366051 +0000 -+++ config/scripts/move.sh.SH 2008-04-10 15:21:09.507532565 +0000 -@@ -445,39 +445,14 @@ - cd $g4install - #echo `pwd` - -- --# Remove 'verbosity' in 'tar' command --# If not INCLUDE then install full tree in 'src' directory! --# --if [ X$g4includes_flag = Xn ] ; then --if [ X$g4install != X$g4final_install ] ; then --echo "" --echo "Installing sources and headers..." --echo "" --mkdir -p $g4final_install/src/geant4/ --tar cf - Configure config/ source/ environments/ examples/ include/ |(cd $g4final_install/src/geant4/; tar xf -) --fi --fi -- --######################################## --# There is no env! --if [ X$g4includes_flag = Xy ] ; then -- --if [ X$g4install != X$g4final_install ] ; then --echo "" --echo "Installing sources..." --echo "" -- --mkdir -p $g4final_install/src/geant4/ --tar cf - Configure config/ source/ environments/ examples/ |(cd $g4final_install/src/geant4/; tar xf -) --fi -- -+# Remove all the stuff to not install sources -+# - echo "" - echo "Installing headers..." - echo "" - cd $g4install/source - $g4make includes dependencies="" --fi -+ - - # Move libraries - if [ X$g4install != X$g4final_install ] ; then diff --git a/sci-physics/geant/geant-4.9.1_p01.ebuild b/sci-physics/geant/geant-4.9.1_p01.ebuild index fef365e50..d19a5024e 100644 --- a/sci-physics/geant/geant-4.9.1_p01.ebuild +++ b/sci-physics/geant/geant-4.9.1_p01.ebuild @@ -4,12 +4,15 @@ EAPI="1" -inherit eutils fortran multilib versionator +inherit eutils fortran multilib versionator toolchain-funcs +PV1=$(get_version_component_range 1 ${PV}) +PV2=$(get_version_component_range 2 ${PV}) +PV3=$(get_version_component_range 3 ${PV}) MY_P=${PN}$(replace_version_separator 3 .) DESCRIPTION="CERN's detector description and simulation Tool" -HOMEPAGE="http://geant4.cern.ch/" +HOMEPAGE="http://www.geant4.org/" SRC_COM="http://geant4.web.cern.ch/geant4/support/source/" SRC_URI="${SRC_COM}/${MY_P}.tar.gz" @@ -25,7 +28,7 @@ done LICENSE="geant4" SLOT="4" KEYWORDS="~amd64 ~x86" -IUSE="athena +data dawn debug examples gdml geant3 minimal +motif +IUSE="athena +data dawn debug examples gdml geant3 global minimal +motif +opengl openinventor +raytracerx static +vrml zlib" DEPEND="sci-physics/clhep @@ -44,163 +47,156 @@ S="${WORKDIR}/${MY_P}" pkg_setup() { FORTRAN="gfortran g77 ifc" use geant3 && fortran_pkg_setup + eval unset ${!G4_*} } src_unpack() { unpack ${A} cd "${S}" - # this patch sanitize the Configure script - epatch "${FILESDIR}"/${P}-configure.patch - epatch "${FILESDIR}"/${P}-no-source.patch - - # propagate user's make options - sed -i \ - -e "s/g4make=gmake/g4make=\"gmake ${MAKEOPTS}\"/" \ - Configure || die "sed Configure failed" - # propagate user's flags. sed -i \ - -e "s:\(CXXFLAGS*+=\)*-O2:\1 ${CXXFLAGS:--O2}:g" \ - -e "s:\(FCFLAGS*+=\)*-O2:\1 ${FFLAGS:--O2}:g" \ - -e "s:\(CCFLAGS*+=\)*-O2:\1 ${CFLAGS:--O2}:g" \ - config/sys/Linux* || die "flag substitution failed" + -e "/CXXFLAGS[[:space:]]*.=[[:space:]]-O2/s:=.*:= ${CXXFLAGS}:" \ + -e "/FCFLAGS[[:space:]]*.=[[:space:]]-O2/s:=.*:= ${FFLAGS:--O2}:" \ + -e "/CCFLAGS[[:space:]]*.=[[:space:]]-O2/s:=.*:= ${CFLAGS}:" \ + config/sys/Linux*gmk || die "flag substitution failed" - # libdir stuff + # fix forced lib directory sed -i \ - -e "s:lib/geant4:$(get_libdir)/geant:g" \ - Configure config/scripts/move.sh.SH \ - || die "multilib substitution failed" -} - -g4ui_use() { - local answer=$(use $1 && echo y || echo n) - echo "-D g4ui_build_${2:-$1}_session=${answer} - -D g4ui_use_${2:-$1}=${answer}" -} - -g4vis_use() { - local answer=$(use $1 && echo y || echo n) - echo "-D g4vis_build_${2:-$1}_driver=${answer} - -D g4vis_use_${2:-$1}=${answer}" -} - -g4w_use() { - local answer=$(use $1 && echo y || echo n) - echo "-D g4w_use_${2:-$1}=${answer} - -D g4wlib_use_${2:-$1}=${answer}" + -e 's:$(G4LIB)/$(G4SYSTEM):$(G4LIB):g' \ + config/binmake.gmk || die "sed binmake.gmk failed" + sed -i \ + -e '/$(G4LIB)\/$(G4SYSTEM)/d' \ + config/architecture.gmk || die "sed architecture.gmk failed" } src_compile() { - - GEANT4_DIR=/usr/share/${PN}-${SLOT} - GEANT4_DATA_DIR=${GEANT4_DIR}/data - - # The Configure shell script saves its options - # in .config/bin/*/config.sh - local myconf="$(g4vis_use opengl openglx)" - use opengl && myconf="${glconf} $(g4vis_use motif openglxm)" - use data && myconf="${myconf} -D g4data=${GEANT4_DATA_DIR}" - - # switch to see compiling flags + export GEANT4_DIR="/usr/share/${PN}${PV1}" + # where to put compiled libraries; + # we set env var G4LIB in src_install() + # to avoid confusing make + export GEANT4_LIBDIR=/usr/$(get_libdir)/${PN}${PV1} + + # these should always to be set + [[ $(tc-getCXX) = ic*c ]] && export G4SYSTEM=Linux-icc \ + || export G4SYSTEM=Linux-g++ + export G4INSTALL="${S}" + export G4INCLUDE="${D}/usr/include/${PN}" + export CLHEP_BASE_DIR=/usr + + # parse USE; just set flags of drivers to build, G4*_USE_* vars are set + # later automatically for G4*_BUILD_*_DRIVER + use minimal && export G4UI_NONE=y \ + && export G4VIS_NONE=y + + use motif && export G4UI_BUILD_XM_SESSION=y + use athena && export G4UI_BUILD_XAW_SESSION=y + + use dawn && export G4VIS_BUILD_DAWN_DRIVER=y + use raytracerx && export G4VIS_BUILD_RAYTRACERX_DRIVER=y + use openinventor && export G4VIS_BUILD_OI_DRIVER=y + use opengl && export G4VIS_BUILD_OPENGLX_DRIVER=y + use opengl && use motif && export G4VIS_BUILD_OPENGLXM_DRIVER=y + + use geant3 && export G4LIB_BUILD_G3TOG4=y + use zlib && export G4LIB_BUILD_ZLIB=y + use vrml && export G4VIS_BUILD_VRML_DRIVER=y \ + && export G4VIS_BUILD_VRMLFILE_DRIVER=y + + use data && export G4DATA="${GEANT4_DIR}/data" + use debug && export G4DEBUG=y || export G4OPTIMIZE=y + + # switch to see compiling flags export CPPVERBOSE=y - use debug && export G4DEBUG=y || export G4OPTIMIZE=y - - # to check what they are doing and working - # -D d_portable \ - # -D g4global=n \ - # -D g4granular=y - # -D g4_use_granular=y - # -D g4make=make \ - - ./Configure \ - -deE -build \ - -D g4analysis_use=n \ - -D g4includes_flag=y \ - -D g4include="${D}/usr/include/geant4" \ - -D g4final_install="${D}/usr" \ - $(g4ui_use minimal none) \ - $(g4ui_use athena xaw) \ - $(g4ui_use motif xm) \ - $(g4vis_use minimal none) \ - $(g4vis_use dawn) \ - $(g4vis_use raytracerx) \ - $(g4vis_use openinventor oix) \ - $(g4vis_use vrml) \ - $(g4vis_use vrml vrmlfile) \ - $(g4w_use geant3 g3tog4) \ - $(g4w_use zlib) \ - ${myconf} \ - ${EXTRA_ECONF} \ - || die "Configure failed" # if shared libs are built, the script will also build static libs # with pic flags # avoid that by building it twice and removing temporary objects - - ./Configure \ - -deO -build \ - -D g4lib_build_shared=y \ - -D g4lib_build_static=n \ - || die "Building shared geant failed" + cd "${S}/source/" + export G4LIB_BUILD_SHARED=y + emake || die "Building shared geant failed" if use static; then rm -rf tmp - ./Configure \ - -deO -build \ - -D g4lib_build_shared=n \ - -D g4lib_build_static=y \ - || die "Building shared geant failed" + export G4LIB_BUILD_STATIC=y ; unset G4LIB_BUILD_SHARED + emake || die "Building static geant failed" + fi + + if use global; then + export G4LIB_USE_GRANULAR=y + emake global || die "Building global libraries failed" fi } +g4_create_env_scripts() { + # we need to change some variables to the final values since we hide these + # from make during the compile + export G4INSTALL=${GEANT4_DIR} + export G4LIB=${GEANT4_LIBDIR} + export G4INCLUDE=${G4INCLUDE/${D}/} + export G4WORKDIR=\${HOME}/${PN}${PV1} + + local g4env=99${PN}${PV1} + cat <<-EOF > ${g4env} + LDPATH=${G4LIB} + CLHEP_BASE_DIR=${CLHEP_BASE_DIR} + EOF + # read env variables defined upto now + printenv | grep ^G4 | uniq >> ${g4env} + + # define env vars for capabilities we can build into user projects + printenv | uniq | \ + sed -e '/^G4/s:BUILD\(.*\)_DRIVER=1:USE\1=y:g' >> ${g4env} + + doenvd ${g4env} || die "Installing environment scripts failed " +} + src_install() { - ./Configure \ - -install \ - || die "Install failed" + # install headers via make since we want them in a single directory + cd "${S}/source/" + emake includes || die 'Installing headers failed' + cd "${S}" + + # but install libraries and Geant library tool manually + insinto ${GEANT4_LIBDIR} + doins -r lib/${G4SYSTEM}/* || die + exeinto ${GEANT4_LIBDIR} + doexe lib/${G4SYSTEM}/liblist || die - ./Configure \ - || die "Final install failed" + g4_create_env_script - # install env stuff - # todo: try to decipher and translate into a env.d file + # configs insinto ${GEANT4_DIR} - sed -i \ - -e "s:${S}:${GEANT4_DIR}:g" \ - -e "s:${D}:/:g" \ - env.*sh - doins env.*sh || die "failed installing shell scripts" - doins -r config + doins -r config || die # install data - insinto ${GEANT4_DATA_DIR} if use data; then - cd "${WORKDIR}" + insinto ${G4DATA} + pushd "${WORKDIR}" for d in ${GEANT4_DATA}; do local p=${d/.} doins -r *${p/G4} || die "installing data ${d} failed" done + popd fi # doc and examples insinto /usr/share/doc/${PF} - local mypv="4.$(get_version_component_range 2 ${PV})" - mypv="${mypv}.$(get_version_component_range 3 ${PV})" + local mypv="${PV1}.${PV2}.${PV3}" doins ReleaseNotes/ReleaseNotes${mypv}.html [[ -e ReleaseNotes/Patch${mypv}-1.txt ]] && \ dodoc ReleaseNotes/Patch${mypv}-*.txt use examples && doins -r examples - # todo: g4py will probably need a split ebuild since it seems to + + # TODO: g4py will probably need a split ebuild since it seems to # rely on on geant4 existence. - # todo: momo with momo or java flag, and check java stuff + # TODO: momo with momo or java flag, and check java stuff } pkg_postinst() { - elog "You can set the Geant4 environment variables" - elog "from ${ROOT}${GEANT4_DIR} shell scripts." - elog "Ex: for bash" - elog " source ${ROOT}${GEANT4_DIR}/env.sh" + elog "Geant4 projects are by default expected in each user's " + elog "If you want to change, set \$G4WORKDIR to another directory" elog elog "Help us to improve the ebuild and dependencies in" elog "http://bugs.gentoo.org/show_bug.cgi?id=212221" diff --git a/sci-physics/geant/metadata.xml b/sci-physics/geant/metadata.xml index 8dada074a..256a42f0f 100644 --- a/sci-physics/geant/metadata.xml +++ b/sci-physics/geant/metadata.xml @@ -5,7 +5,8 @@ Geant simulates the passage of subatomic particles through matter, for instance, particle detectors. For maximum flexibility, Geant - simulations are performed by linking Fortran code supplied by the user + simulations are performed by linking code supplied by the user with the Geant libraries, then running the resulting executable. + Geant-3.* was written in Fortran, while Geant-4.* is a rewrite in C++. -- cgit v1.2.3