Bug 268993 - science/geant4: upgrade to Geant4 v. 11.1.0
Summary: science/geant4: upgrade to Geant4 v. 11.1.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Fernando Apesteguía
URL:
Keywords:
Depends on: 268992
Blocks: 269649
  Show dependency treegraph
 
Reported: 2023-01-16 21:26 UTC by Erik Jensen
Modified: 2023-04-05 05:54 UTC (History)
4 users (show)

See Also:


Attachments
Archive of git diff --staged patch to Geant4 (403.20 KB, application/gzip)
2023-01-16 21:26 UTC, Erik Jensen
no flags Details
Archive of patch for update to version 11.1.0 -- fixed ordering of Makefile variables (403.26 KB, application/gzip)
2023-02-18 11:03 UTC, Erik Jensen
no flags Details
Archive of patch for update to version 11.1.0 -- improved search for CLHEP (403.86 KB, application/gzip)
2023-03-28 11:13 UTC, Erik Jensen
no flags Details
Archive of patch for update to version 11.1.0 -- improved search for CLHEP (403.73 KB, text/plain)
2023-03-31 16:07 UTC, Erik Jensen
erik: maintainer-approval+
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Erik Jensen 2023-01-16 21:26:43 UTC
Created attachment 239513 [details]
Archive of git diff --staged patch to Geant4

Upgrade of Geant4 to latest version 11.1.0:
- Python bindings are no longer part of Geant4, they can be downloaded from https://github.com/koichi-murakami/g4python
- Geant4 source code fetched from CERN main site (removed USE_GL)
- Geant4 data sets G4EMLOW upgraded from version 8.0 to 8.2 and G4NDL upgraded from version 4.6 to 4.7
- Introduced PLIST_SUB'ing of dataset versions (the provided patch is large, but this should be a one-time thing now)
- Added dependencies on ports science/clhep, textproc/expat2, devel/onetbb and devel/ptl (new proposed port at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268992); these were build as external libraries within Geant4 previously
- Added dependency on QT5 as a common visualisation option within Geant4
- Using system's zlib rather than Geant4's bundled zlib

A fork of Geant4 with *.orig and patch files is being kept updated here: https://gitlab.cern.ch/ejensen/geant4-fbsd
Comment 1 Erik Jensen 2023-01-16 21:36:47 UTC
Port passed a `poudriere testport` on 12.3R, 12.4R and 13.1R amd64 on my system.
Comment 2 Erik Jensen 2023-02-18 11:03:32 UTC
Created attachment 240230 [details]
Archive of patch for update to version 11.1.0 -- fixed ordering of Makefile variables

- Fixed ordering of Makefile variables in the new attachment.
- Removed versioning of DIST_SUBDIR, as dataset versions can generally be reused across several releases of Geant4.

A new release of Geant4 has landed on February 14th.
I will submit a new patch which will depend on this one, i.e. with changes which build on the contents of this patch.
Comment 3 Fernando Apesteguía freebsd_committer freebsd_triage 2023-02-20 09:34:39 UTC
Hi Erik,

Could you please attach a git diff patch instead of a tbz?

Thanks!
Comment 4 Erik Jensen 2023-02-20 10:58:28 UTC
I submitted an archive of the patch since the uncompressed version exceeds the stated file size limit of 1000 KB.
I tried submitting the uncompressed patch (7.4 MB) just now (it could just be a *stated* file size limit, right?) - but it gave me an error 413.

In the future, patches should not be this large, as I add proper versioning hooks for Geant4's datasets to pkg-plist of this patch.
Comment 5 Erik Jensen 2023-03-11 15:09:38 UTC
Hello again!

Anything I can do to ease along committing this patch as well as its dependencies/dependents bug #268992 and bug #269649 into the ports tree before the next quarterly branch is released?

I can upload the git diff patch (>1000KB) elsewhere and provide a link to it here, if that helps?

Cheers,
Erik
Comment 6 Fernando Apesteguía freebsd_committer freebsd_triage 2023-03-27 10:24:39 UTC
Hi Erik,

The port does not build:

-- Performing Test HAVE_TLS - Success
CMake Error at cmake/Modules/G4OptionalComponents.cmake:42 (find_package):
  Could not find a package configuration file provided by "CLHEP" (requested
  version 2.4.6.0) with any of the following names:

    CLHEPConfig.cmake
    clhep-config.cmake

  Add the installation prefix of "CLHEP" to CMAKE_PREFIX_PATH or set
  "CLHEP_DIR" to a directory containing one of the above files.  If "CLHEP"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  cmake/Modules/G4CMakeMain.cmake:59 (include)
  CMakeLists.txt:50 (include)


-- Configuring incomplete, errors occurred!
See also "/wrkdirs/usr/ports/science/geant4/work/.build/CMakeFiles/CMakeOutput.log".
*** Error code 1


libCLHEP is installed as a dependency. Maybe the CMakeList.txt needs patching?
Comment 7 Erik Jensen 2023-03-28 11:13:35 UTC
Created attachment 241156 [details]
Archive of patch for update to version 11.1.0 -- improved search for CLHEP

I attach a new patch in which CMake's attention is directed towards 
'<prefix>/*/CLHEP-<VERSION>/' rather than just '<prefix>/*/CLHEP/'

My comment in the file where the additional patching of Geant4 takes place:
"CLHEP installs CMake Config files not, e.g., to '<prefix>/libdata/CLHEP/' (where CMake
would have no trouble finding the files), but to '<prefix>/libdata/CLHEP-<VERSION>/'.
There is no straight-forward way to communicate this to CMake's `find_package`, but
we can provide a list of additional PATHS for CMake to try as *prefixes*.
We find all absolute paths from the system's pre-defined prefixes to directories
containing a file "CLHEPConfig.cmake" and provide these paths as prefixes, slightly
abusing the fact that one of CMake's search paths is just '<prefix>/'.
See https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure."

The previous patch had a hard-coded dependency on CLHEP version 2.4.6.3 (CLHEP is now at version 2.4.6.4 in the ports tree) in the Geant4 port Makefile, but this version-specific dependency was not communicated properly to Geant4's CMake specifications, so I chose this new solution instead.
Comment 8 Erik Jensen 2023-03-28 11:16:01 UTC
The additions to the current patch should not affect the dependent patch submitted in bug #269649
Comment 9 Fernando Apesteguía freebsd_committer freebsd_triage 2023-03-31 06:48:25 UTC
Unfortunately, one of the patches does not apply anymore.

===>  Patching for geant4-11.1.0
===>  Applying FreeBSD patches for geant4-11.1.0 from /data/fernape_data/FreeBSD-repos/ports/science/geant4/files
1 out of 2 hunks failed--saving rejects to cmake/Modules/G4OptionalComponents.cmake.rej
===>  FAILED Applying FreeBSD patch-cmake_Modules_G4OptionalComponents.cmake
===> Cleanly applied FreeBSD patch(es)  patch-CMakeLists.txt
===> FAILED to apply cleanly FreeBSD patch(es)  patch-cmake_Modules_G4OptionalComponents.cmake
*** Error code 1

Stop.
make: stopped in /data/fernape_data/FreeBSD-repos/ports/science/geant4

Could you please check it?
Comment 10 Erik Jensen 2023-03-31 16:07:11 UTC
Created attachment 241232 [details]
Archive of patch for update to version 11.1.0 -- improved search for CLHEP

My IDE had decided to remove a whitespace character in an insignificant but disruptive place - sorry about that...

`poudriere testport` succeeds on my end against 13.1R now
Comment 11 Fernando Apesteguía freebsd_committer freebsd_triage 2023-04-05 05:54:06 UTC
Committed,

Thanks!
Comment 12 commit-hook freebsd_committer freebsd_triage 2023-04-05 05:54:21 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c766dfa673925737a6f6da0ea1000887d8f5baaf

commit c766dfa673925737a6f6da0ea1000887d8f5baaf
Author:     Erik Jensen <erik@tenku.dk>
AuthorDate: 2023-04-01 10:57:56 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2023-04-05 05:46:58 +0000

    science/geant4: update to 11.1.0

    PR:             268993
    Reported by:    erik@tenku.dk (maintainer)

 science/geant4/Makefile                            |    109 +-
 science/geant4/distinfo                            |     52 +-
 ...-cmake_Modules_G4OptionalComponents.cmake (new) |     35 +
 science/geant4/pkg-plist                           | 107968 +++++++++---------
 4 files changed, 57230 insertions(+), 50934 deletions(-)