Opened 13 years ago
Closed 11 years ago
#32716 closed update (fixed)
geant4: update to 9.5
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | mf2k (Frank Schima), cooljeanius (Eric Gallager) | |
Port: | geant4 |
Attachments (6)
Change History (28)
comment:1 Changed 12 years ago by mojca (Mojca Miklavec)
Cc: | mojca.miklavec.lists@… added |
---|
comment:2 follow-up: 3 Changed 12 years ago by mojca (Mojca Miklavec)
I would like to request CMake-based installation if possible.
I was playing with the following minimal example since I wanted working Qt that's not provided by current port. It is far from being finished, but it can serve as a starting point. Basic functionality works, but it definitely needs both more testing as well as more code (for existing & possibly new variants).
PortSystem 1.0 PortGroup cmake 1.0 name geant4 version 4.9.5.p01 categories science maintainers pd.infn.it:cristiano.fontana license Geant4 description Geant4 is a toolkit for the simulation of the passage of particles through matter. long_description Geant4 is a toolkit for the simulation of the passage of particles through matter. \ Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. \ The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, \ and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278. homepage http://geant4.web.cern.ch/ platforms darwin distfiles geant${version}.tar.gz:cern master_sites http://geant4.cern.ch/support/source/:cern checksums geant${version}.tar.gz \ rmd160 42249229a97c2eaf5ed2471a93608a1d0daa38e1 \ sha256 451f8c4a29bb0dc4b923d59d77535a657f0f8a30dc6c8ef639c8b1ebdb26a10e worksrcdir geant${version} configure.dir ${workpath}/build build.dir ${configure.dir} post-extract { file mkdir ${configure.dir} } configure.post_args ${worksrcpath} depends_lib port:zlib variant qt description {Build with Qt support} { depends_lib-append port:qt4-mac configure.args-append -DGEANT4_USE_QT=ON } configure.args-append -DGEANT4_INSTALL_DATA=ON \ -DGEANT4_BUILD_EXAMPLES=ON \ -DGEANT4_INSTALL_EXAMPLES=OFF \ -DWITH_GEANT4_UIVIS=ON \ -DGEANT4_USE_OPENGL_X11=ON default_variants +qt
I don't know if that's acceptable, but in the above implementation data is being downloaded while Geant4 is compiling. I used built-in CLHEP since I wasn't able to enable the external one. I tried with
configure.args-append -DGEANT4_USE_SYSTEM_CLHEP=ON \ -DCLHEP_CONFIG_EXECUTABLE=${prefix}/bin/clhep-config \ -DCLHEP_INCLUDE_DIR=${prefix}/include \ -DCLHEP_LIBRARY=${prefix}/lib/libCLHEP.dylib
but it didn't work.
In 9.4 iAIDA is broken.
comment:3 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to mojca.miklavec.lists@…:
I don't know if that's acceptable, but in the above implementation data is being downloaded while Geant4 is compiling.
It would be extremely preferable if the port did not download data while compiling. All necessary files should be downloaded by MacPorts in the fetch phase. That way we can provide checksums for them and thereby assure the user that the software they're installing is the same software the maintainer actually tested.
comment:4 Changed 12 years ago by mojca (Mojca Miklavec)
I believe that the data being fetched is checksummed as well (I already got some warnings/errors about wrong checksums):
# Where to install data in the install tree (a Default) set(GEANT4_INSTALL_DATADIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}/data") # Define the known datasets as a list of tuples, tuple entries being # forward slash separated. Messy. # Tuple entries: # 0 : Directory Name # 1 : Version # 2 : Filename # 3 : Filename Extension # 4 : Environment Variable # 5 : Expected MD5 sum File # 6 : (NOTIMPLEMENTEDYET) Marker for detecting existing install # set(GEANT4_DATASETS G4NDL/4.1/G4NDL/tar.gz/G4NEUTRONHPDATA/ff018eca2c2ca3bc32a096c2d72df64f G4EMLOW/6.27/G4EMLOW/tar.gz/G4LEDATA/4d204b9d730148d3e34b490105aed1bd PhotonEvaporation/2.2/G4PhotonEvaporation/tar.gz/G4LEVELGAMMADATA/8010e7ce8a92564e38dd3418e6040563 RadioactiveDecay/3.4/G4RadioactiveDecay/tar.gz/G4RADIOACTIVEDATA/a5b681048584631608ab0965b33c7959 G4ABLA/3.0/G4ABLA/tar.gz/G4ABLADATA/d7049166ef74a592cb97df0ed4b757bd G4NEUTRONXS/1.1/G4NEUTRONXS/tar.gz/G4NEUTRONXSDATA/61ef3a05b56525db04e11820e3f603f1 G4PII/1.3/G4PII/tar.gz/G4PIIDATA/05f2471dbcdf1a2b17cbff84e8e83b37 RealSurface/1.0/RealSurface/tar.gz/G4REALSURFACEDATA/0dde95e00fcd3bcd745804f870bb6884 )
but of course doing the download automatically puts it slightly out of MacPorts' control. Of course, "manual/separate" download (like it has always been done for Geant4) is always possible. One argument might also be that "port clean geant4" would probably delete data files if fetched during installation, while if they are fetched during download, they stay on machine and may be reused.
(However I won't buy the argument that the packager is actually testing the contents of those files :)
My suggestion would be to create geant4-devel with 4.9.6 beta (or 4.9.5) when switching to CMake files since the installation can make quite a difference depending on user's habits. That would enable wider testing audience for a longer period of time. Saying that "Geant4 works" is namely not too well defined, in particular because different users use different approaches to find Geant4 (GNUmakefile, CMake, manual compilation, ...), most of them using DYLD_LIBRARY_PATH which makes my programs crash etc.
comment:6 Changed 12 years ago by mojca (Mojca Miklavec)
This is the current state of the port (not yet finished):
PortSystem 1.0 PortGroup cmake 1.0 name geant4 version 4.9.5.p02 categories science maintainers pd.infn.it:cristiano.fontana license Geant4 description Geant4 is a toolkit for the simulation of the passage of particles through matter. long_description Geant4 is a toolkit for the simulation of the passage of particles through matter. \ Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. \ The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, \ and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278. homepage http://geant4.web.cern.ch/ platforms darwin # list of files from cmake/Modules/Geant4InstallData.cmake # G4NDL/4.0/G4NDL/tar.gz/G4NEUTRONHPDATA # G4EMLOW/6.23/G4EMLOW/tar.gz/G4LEDATA # PhotonEvaporation/2.2/PhotonEvaporation/tar.gz/G4LEVELGAMMADATA # RadioactiveDecay/3.4/G4RadioactiveDecay/tar.gz/G4RADIOACTIVEDATA # G4ABLA/3.0/G4ABLA/tar.gz/G4ABLADATA # G4NEUTRONXS/1.1/G4NEUTRONXS/tar.gz/G4NEUTRONXSDATA # G4PII/1.3/G4PII/tar.gz/G4PIIDATA # RealSurface/1.0/RealSurface/tar.gz/G4REALSURFACEDATA set G4NDL_v 4.0 set G4EMLOW_v 6.23 set PhotonEvaporation_v 2.2 set RadioactiveDecay_v 3.4 set G4ABLA_v 3.0 set G4NEUTRONXS_v 1.1 set G4PII_v 1.3 set RealSurface_v 1.0 distfiles geant${version}.tar.gz:cern \ G4NDL.${G4NDL_v}.tar.gz:cern \ G4EMLOW.${G4EMLOW_v}.tar.gz:cern \ PhotonEvaporation.${PhotonEvaporation_v}.tar.gz:cern \ G4RadioactiveDecay.${RadioactiveDecay_v}.tar.gz:cern \ G4ABLA.${G4ABLA_v}.tar.gz:cern \ G4NEUTRONXS.${G4NEUTRONXS_v}.tar.gz:cern \ G4PII.${G4PII_v}.tar.gz:cern \ RealSurface.${RealSurface_v}.tar.gz:cern extract.only geant${version}.tar.gz master_sites http://geant4.cern.ch/support/source/:cern checksums geant${version}.tar.gz \ rmd160 33413f6233b75c003254af5888f4af32d17f515d \ sha256 adb04fce9472228bb10d78cbc7f40493bfb37454beee22e7c80d630646cd3777 \ G4NDL.${G4NDL_v}.tar.gz \ rmd160 602d209009ee93d792cb67fe592aa37de6bab7c2 \ sha256 cef4fab143d8dcb8eae4c6e5c095af01d735bb36334b9958e00e30bcec9827ed \ G4EMLOW.${G4EMLOW_v}.tar.gz \ rmd160 84529979894ed5e35ade27201fee67884d7b381d \ sha256 6452215d9a0acbd35c71eed47f3581fd0276d7088b1a1a8588c003d9072aed3e \ PhotonEvaporation.${PhotonEvaporation_v}.tar.gz \ rmd160 5ced597a9bfd6095b08f29b780a38e91ea64c460 \ sha256 74ac25290274f12f40d80f5b30a876aaff31acfa1ea64bea6034158e759c30dd \ G4RadioactiveDecay.${RadioactiveDecay_v}.tar.gz \ rmd160 378c237cd5857b4205980815a3c47cdb654506d4 \ sha256 1ecfb477ca3c3966dd128193d8e11e24d6c3dc29cc188c8c9b0b21b941f9c30c \ G4ABLA.${G4ABLA_v}.tar.gz \ rmd160 656b10fc9d8022e89e99a728576d0b502161aa69 \ sha256 99fd4dcc9b4949778f14ed8364088e45fa4ff3148b3ea36f9f3103241d277014 \ G4NEUTRONXS.${G4NEUTRONXS_v}.tar.gz \ rmd160 a4cd8791219f0df856da39295e7f913a537bde1a \ sha256 d477a377aee229bf9d75d3c9cc4b7cd48b414285a246449e4e44a72bf037472b \ G4PII.${G4PII_v}.tar.gz \ rmd160 313a2615903b0682b8aabc344bedde82c345704b \ sha256 6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926 \ RealSurface.${RealSurface_v}.tar.gz \ rmd160 030513fe340e0cccbfe0b9ae9acb3ba6b5291ebb \ sha256 3e2d2506600d2780ed903f1f2681962e208039329347c58ba1916740679020b1 worksrcdir geant${version} configure.dir ${workpath}/build build.dir ${configure.dir} post-extract { file mkdir ${configure.dir} } patchfiles patch-upstream-clang-detection.diff configure.post_args ${worksrcpath} depends_lib port:clhep \ port:zlib variant qt description {Build with Qt support} { depends_lib-append port:qt4-mac configure.args-append -DGEANT4_USE_QT=ON } # CLHEP as included in geant4 apparently doesn't offer enough functionality for Gate configure.args-append -DGEANT4_USE_SYSTEM_CLHEP=ON # TODO: don't fetch data on the fly (use MacPorts to fetch the files instead) # however that also skips installation of data & we need a fix for this configure.args-append -DGEANT4_INSTALL_DATA=OFF \ -DGEANT4_BUILD_EXAMPLES=OFF \ -DGEANT4_INSTALL_EXAMPLES=OFF \ -DGEANT4_USE_OPENGL_X11=ON default_variants +qt
Changed 12 years ago by mojca (Mojca Miklavec)
Attachment: | patch-upstream-clang-detection.diff added |
---|
Upstream patch to recognize clang compiler in Geant4 9.5
Changed 11 years ago by mojca (Mojca Miklavec)
Attachment: | geant4.10.0.Portfile added |
---|
first attempt for geant4 10.0
comment:7 Changed 11 years ago by mojca (Mojca Miklavec)
I attached the first attempt for geant4.10.00.b01, even if the title of this ticket suggests otherwise. It's not yet functional and it is currently throwing some errors for AIDA:
Traceback (most recent call last): File "/opt/local/bin/aida-config", line 266, in <module> ['help', 'version', 'includes', 'cflags', 'libs', 'runtime=', 'platform=']) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 88, in getopt opts, args = do_longs(opts, args[0][2:], longopts, args[1:]) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 152, in do_longs has_arg, opt = long_has_args(opt, longopts) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 169, in long_has_args raise GetoptError('option --%s not recognized' % opt, opt) getopt.GetoptError: option --implementation not recognized -- G4 Examples: AIDA found. --> amsEcal example with AIDA enabled. -- G4 Examples: GDML not installed --> ChargeExchangeMC example disabled -- G4 Examples: AIDA package not found. --> CompositeCalorimeter example disabled -- Found ROOT 5.34/08 in /opt/local -- G4 Examples: ROOT found. --> iort_therapy example with ROOT enabled. Traceback (most recent call last): File "/opt/local/bin/aida-config", line 266, in <module> ['help', 'version', 'includes', 'cflags', 'libs', 'runtime=', 'platform=']) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 88, in getopt opts, args = do_longs(opts, args[0][2:], longopts, args[1:]) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 152, in do_longs has_arg, opt = long_has_args(opt, longopts) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 169, in long_has_args raise GetoptError('option --%s not recognized' % opt, opt) getopt.GetoptError: option --implementation not recognized -- G4 Examples: AIDA found. --> xray_fluorescence example with AIDA enabled. ...etc.
Changed 11 years ago by mojca (Mojca Miklavec)
Attachment: | geant4.10.0-v2.Portfile added |
---|
geant4 10.0 - compiles & installs
comment:9 Changed 11 years ago by mojca (Mojca Miklavec)
The most basic port for 10.0 that compiles and installs (it needs more polishing of course).
Changed 11 years ago by mojca (Mojca Miklavec)
Attachment: | geant4-data.Portfile added |
---|
Portfile with subports for data
Changed 11 years ago by mojca (Mojca Miklavec)
Attachment: | geant4.10.0-v3.Portfile added |
---|
Geant4 10.0 with dependency on geant4-data
Changed 11 years ago by mojca (Mojca Miklavec)
Attachment: | geant4-data.2.Portfile added |
---|
Portfile with subports for data
comment:10 Changed 11 years ago by mojca (Mojca Miklavec)
Cc: | mojca@… added; mojca.miklavec.lists@… removed |
---|
comment:11 Changed 11 years ago by mojca (Mojca Miklavec)
Before I loose control of what I'm doing, I created a playground in SVN (svn: https://svn.macports.org/repository/macports/users/mojca, trac: browser:users/mojca/ports).
I have put geant4-data there and two separate ports for Geant4 9.6.p02 and 10.0.b01. The ports should probably end up being combined in some other way, but I wanted to have some Portfile to start with. Current TODO list:
- figure out if it would be better to combine data files based on version of Geant4 rather than based on version of data (pro & contra)
- find out all dependencies, possibly split x11 in a clean way
- try to get rid of some paths like Geant4/GeantVERSION/Geant4
- implement options from Geant4 9.4 (or rather: figure out which ones are needed and which ones are not)
- possibly write a Portfile for Geant4 9.5 (depending on how long it will take to get these ports uploaded, it might be outdated enough, so that it won't even need to be added ;)
- figure out how to combine different versions: as subports, using some PortGroup, ...; should one account for Geant5 in the naming scheme
- implement a function to choose the default version of Geant4 as it is done for Python (using
port select
); symliking won't be sufficient: executable scripts need to be patched to recognize the path - test, ...
comment:12 Changed 11 years ago by mojca (Mojca Miklavec)
There are some issues left, but the SVN repository mentioned above should contain a working version of Geant4 9.5.p02, 9.6.p02 and 10.0.b01
comment:13 Changed 11 years ago by mojca (Mojca Miklavec)
Here's the description of the issue with X11. The following variables need to be set by Geant4 (or rather: this is what I get when building Geant4 9.6 within MacPorts as default values):
OPENGL_INCLUDE_DIR /System/Library/Frameworks/OpenGL.framework OPENGL_X11_INCLUDE_DIR /usr/X11R6/include OPENGL_X11_gl_LIBRARY /usr/X11R6/lib/libGL.dylib OPENGL_X11_glu_LIBRARY /usr/X11R6/lib/libGLU.dylib OPENGL_gl_LIBRARY /System/Library/Frameworks/OpenGL.framework OPENGL_glu_LIBRARY /System/Library/Frameworks/AGL.framework X11_ICE_INCLUDE_PATH /opt/local/include X11_ICE_LIB /opt/local/lib/libICE.dylib X11_SM_INCLUDE_PATH /opt/local/include X11_SM_LIB /opt/local/lib/libSM.dylib X11_X11_INCLUDE_PATH /opt/local/include X11_X11_LIB /opt/local/lib/libX11.dylib X11_XRes_INCLUDE_PATH /usr/include X11_XRes_LIB /usr/X11R6/lib/libXRes.dylib X11_XShm_INCLUDE_PATH /opt/local/include X11_XSync_INCLUDE_PATH /opt/local/include X11_XTest_INCLUDE_PATH /usr/include X11_XTest_LIB /usr/X11R6/lib/libXtst.dylib X11_Xaccessrules_INCLUDE_PATH /opt/local/include X11_Xaccessstr_INCLUDE_PATH /opt/local/include X11_Xau_INCLUDE_PATH /opt/local/include X11_Xau_LIB /opt/local/lib/libXau.dylib X11_Xcomposite_INCLUDE_PATH /opt/local/include X11_Xcomposite_LIB /opt/local/lib/libXcomposite.dylib X11_Xcursor_INCLUDE_PATH /opt/local/include X11_Xcursor_LIB /opt/local/lib/libXcursor.dylib X11_Xdamage_INCLUDE_PATH /opt/local/include X11_Xdamage_LIB /opt/local/lib/libXdamage.dylib X11_Xdmcp_INCLUDE_PATH /opt/local/include X11_Xdmcp_LIB /opt/local/lib/libXdmcp.dylib X11_Xext_LIB /opt/local/lib/libXext.dylib X11_Xfixes_INCLUDE_PATH /opt/local/include X11_Xfixes_LIB /opt/local/lib/libXfixes.dylib X11_Xft_INCLUDE_PATH /opt/local/include X11_Xft_LIB /opt/local/lib/libXft.dylib X11_Xi_INCLUDE_PATH /opt/local/include X11_Xi_LIB /opt/local/lib/libXi.dylib X11_Xinerama_INCLUDE_PATH /opt/local/include X11_Xinerama_LIB /opt/local/lib/libXinerama.dylib X11_Xinput_INCLUDE_PATH /opt/local/include X11_Xinput_LIB /opt/local/lib/libXi.dylib X11_Xkb_INCLUDE_PATH /opt/local/include X11_Xkbfile_INCLUDE_PATH /opt/local/include X11_Xkbfile_LIB /opt/local/lib/libxkbfile.dylib X11_Xkblib_INCLUDE_PATH /opt/local/include X11_Xlib_INCLUDE_PATH /opt/local/include X11_Xmu_INCLUDE_PATH /opt/local/include X11_Xmu_LIB /opt/local/lib/libXmu.dylib X11_Xmu_LIBRARY /opt/local/lib/libXmu.dylib X11_Xpm_INCLUDE_PATH /opt/local/include X11_Xpm_LIB /opt/local/lib/libXpm.dylib X11_Xrandr_INCLUDE_PATH /opt/local/include X11_Xrandr_LIB /opt/local/lib/libXrandr.dylib X11_Xrender_INCLUDE_PATH /opt/local/include X11_Xrender_LIB /opt/local/lib/libXrender.dylib X11_Xscreensaver_INCLUDE_PATH /opt/local/include X11_Xscreensaver_LIB /opt/local/lib/libXss.dylib X11_Xshape_INCLUDE_PATH /opt/local/include X11_Xt_INCLUDE_PATH /opt/local/include X11_Xt_LIB /opt/local/lib/libXt.dylib X11_Xutil_INCLUDE_PATH /opt/local/include X11_Xv_INCLUDE_PATH /usr/include X11_Xv_LIB /usr/X11R6/lib/libXv.dylib X11_Xxf86misc_LIB /usr/X11R6/lib/libXxf86misc.dylib X11_Xxf86vm_LIB /opt/local/lib/libXxf86vm.dylib X11_dpms_INCLUDE_PATH /opt/local/include X11_xf86misc_INCLUDE_PATH /usr/include X11_xf86vmode_INCLUDE_PATH /opt/local/include
Some files like cmake/Modules/Geant4InterfaceOptions.cmake
hardcode the search path, as in:
find_path(OPENGL_X11_INCLUDE_DIR GL/gl.h PATHS /usr/X11R6/include NO_DEFAULT_PATH ) find_library(OPENGL_X11_gl_LIBRARY GL PATHS /usr/X11R6/lib NO_DEFAULT_PATH ) find_library(OPENGL_X11_glu_LIBRARY GLU PATHS /usr/X11R6/lib NO_DEFAULT_PATH )
Ryan suggested to use the mesa
port, but some patching will be needed to find the right library first. The weird fact is that the final code doesn't link tho all the libraries mentioned in the CMake list, so I'm not exactly sure how many dependencies need to be pulled in. But quite some code needs to be patched and it would be nice to submit some patches upstream if anyone has a good idea about the proper search algorithm for libraries.
comment:14 follow-up: 15 Changed 11 years ago by mojca (Mojca Miklavec)
The only remaining issues other than X11 dependencies & linking are the following:
- Smooth transition from 4.9.4: I'm not sure what is needed or how to implement it.
- Decide on licence: is
license Restrictive/Distributable Geant4
OK? - Decide on exact port name:
geant4
? - Decide on exact subport name:
geant4.9.6
? - Decide on exact variant names:
raytracer_x11/raytracerx
,motif/motif_x11
,opengl_x11/x11
- Document how to use the port (where could this go?)
- Review of the Portfile from an experienced MacPorts developer.
Once these are settled, I believe it would be time for the port to go live.
comment:15 follow-up: 17 Changed 11 years ago by mf2k (Frank Schima)
Here is my $0.02.
Replying to mojca@…:
- Smooth transition from 4.9.4: I'm not sure what is needed or how to implement it.
Make the current geant4
port replaced_by geant4.9.6
.
- Decide on licence: is
license Restrictive/Distributable Geant4
OK?
I don't have an opinion here and haven't researched the geant4 license.
- Decide on exact port name:
geant4
?
I recommend the overall meta port be called "geant" so the version is not encoded in the name. This allows an easy transition from the current geant4 port to be replaced_by
this.
- Decide on exact subport name:
geant4.9.6
?
I like the this. The perl ports (messed up as the perl situation is) are a good example. I never liked the python/ruby model which omits the periods. The ruby186 port is a good example of a confusing name.
- Decide on exact variant names:
raytracer_x11/raytracerx
,motif/motif_x11
,opengl_x11/x11
I like the more explicit naming: raytracer_x11
, motif_x11
, opengl_x11
. But I say that without knowing what the exact differences are.
- Document how to use the port (where could this go?)
Use the wiki HOWTO page to link to a new geant subpage which documents everything. The port itself can have a "notes
" entry which links to this.
- Review of the Portfile from an experienced MacPorts developer.
Hopefully someone more experienced/knowledgeable than me will look, but I'll try to take a look sometime.
Once these are settled, I believe it would be time for the port to go live.
Good work on this so far. I've been watching from the sidelines without much time to help.
comment:16 Changed 11 years ago by mf2k (Frank Schima)
BTW, see the current mysql5-server-devel
port for an example of how to use replaced_by
.
comment:17 follow-up: 18 Changed 11 years ago by mojca (Mojca Miklavec)
- Smooth transition from 4.9.4: I'm not sure what is needed or how to implement it.
Make the current
geant4
portreplaced_by geant4.9.6
.
If I understand correctly this is only possible if the new port is called geant
?
- Decide on exact port name:
geant4
?I recommend the overall meta port be called "geant" so the version is not encoded in the name. This allows an easy transition from the current geant4 port to be
replaced_by
this.
This is definitely true. (I don't know to what extent calling the new port geant4
would be a problem though. I wouldn't know how to handle it in any case.)
- Decide on exact subport name:
geant4.9.6
?I like the this. The perl ports (messed up as the perl situation is) are a good example. I never liked the python/ruby model which omits the periods. The ruby186 port is a good example of a confusing name.
But then I have another question for you: how would you name the patch files (I currently have patch-cmake-Modules-Geant4BuildProjectConfig.cmake.4100.diff
for example) and variants (gate
could depend on two different versions of geant, I called them geant495
and geant496
; would more verbose variant names be better?)
- Decide on exact variant names:
raytracer_x11/raytracerx
,motif/motif_x11
,opengl_x11/x11
I like the more explicit naming:
raytracer_x11
,motif_x11
,opengl_x11
. But I say that without knowing what the exact differences are.
Just different GUIs, in fact one more obsolete on mac than the other (maybe raytracer is usable). Maybe they could be a tiny bit faster than Qt, but definitely a lot more clumsy to use. Another option is to leave them in the port for a while, only comment them out and ask for the first user to request them. If nobody requests them, I would actually be happier to leave x11 out.
- Document how to use the port (where could this go?)
Use the wiki HOWTO page to link to a new geant subpage which documents everything. The port itself can have a "
notes
" entry which links to this.
Thank you.
comment:18 Changed 11 years ago by mf2k (Frank Schima)
Replying to mojca@…:
- Smooth transition from 4.9.4: I'm not sure what is needed or how to implement it.
Make the current
geant4
portreplaced_by geant4.9.6
.If I understand correctly this is only possible if the new port is called
geant
?
I believe so but someone please correct me if I'm wrong.
- Decide on exact subport name:
geant4.9.6
?I like the this. The perl ports (messed up as the perl situation is) are a good example. I never liked the python/ruby model which omits the periods. The ruby186 port is a good example of a confusing name.
But then I have another question for you: how would you name the patch files (I currently have
patch-cmake-Modules-Geant4BuildProjectConfig.cmake.4100.diff
for example) and variants (gate
could depend on two different versions of geant, I called themgeant495
andgeant496
; would more verbose variant names be better?)
I wouldn't worry about renaming patches. Those are for port maintainers only. As for variants, I'm not actually sure if having a period in a variant name is valid. I can't think of a variant name that uses one so probably best to stick to geant495
etc.
comment:19 Changed 11 years ago by mojca (Mojca Miklavec)
Another option that comes to my mind (but I don't know if it's acceptable) would be to put the following at the bottom of the geant4
Portfile
:
# stub port if {$subport == $name || $subport == ""} { depends_lib port:geant4.9.6 fetch {} checksum {} extract {} patch {} use_configure no build {} destroot { set geant.docdir ${prefix}/share/doc/${name} xinstall -m 755 -d ${destroot}${geant.docdir} system "echo $name is a stub port > ${destroot}${geant.docdir}/README" } livecheck.type none }
comment:20 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from cristiano.fontana@… to macports-tickets@… |
---|
comment:21 Changed 11 years ago by mojca (Mojca Miklavec)
Cc: | mojca@… removed |
---|---|
Owner: | changed from macports-tickets@… to mojca@… |
comment:22 Changed 11 years ago by mojca (Mojca Miklavec)
Resolution: | → fixed |
---|---|
Status: | new → closed |
I upgraded the port in r111720 with substantial changes. It now includes a subport for geant4.9.5
and geant4.9.6
as well as separate data subports.
Cc Me!