Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d2011b2
add go4 recipe
HLinde Jun 11, 2025
b2d1965
remove explicit python variants
HLinde Jun 11, 2025
78053da
skip win and osx builds for now
HLinde Jun 11, 2025
16026b1
fix homepage link
HLinde Jun 16, 2025
c5a0cee
Merge branch 'main' into go4
HLinde Aug 3, 2025
2125d9a
Merge branch 'main' into go4
HLinde Sep 1, 2025
1d3d45a
clean up recipe
HLinde Sep 5, 2025
45a8a4b
Merge branch 'conda-forge:main' into go4
HLinde Sep 5, 2025
6278357
Merge remote-tracking branch 'refs/remotes/origin/go4' into go4
HLinde Sep 5, 2025
8f32b0e
add python to run dependencies again
HLinde Sep 5, 2025
5994ab4
Merge branch 'conda-forge:main' into go4
HLinde Nov 8, 2025
ff07f5d
add GO4License.txt to recipe
HLinde Nov 9, 2025
9a6fd10
Add comment on ${{ compiler('cxx') }} resolution for the test environ…
HLinde Nov 9, 2025
1bbc01e
try building on osx
HLinde Nov 9, 2025
9f7aa7c
only use libgl-devel host dependency on linux
HLinde Nov 9, 2025
4a29c35
remove globstar shell option for osx build
HLinde Nov 9, 2025
0cde1c5
clean up and avoid using globstar as osx does not support it
HLinde Nov 9, 2025
f1e91a4
try different sed commands for osx
HLinde Nov 10, 2025
c1f351b
try if cleanup is even necessary at all anymore
HLinde Nov 11, 2025
747b00f
add osx libSystem.B.dylib to allowlist
HLinde Nov 11, 2025
09a8700
remove the sed cleanups as they do not seem necessary any more
HLinde Nov 11, 2025
83cd7f3
adjust test requirements for osx
HLinde Nov 11, 2025
3c76357
try again on osx without compiler macro
HLinde Nov 12, 2025
cc49fa7
clean up
HLinde Nov 12, 2025
72d701e
further cleanup
HLinde Nov 24, 2025
0f14530
patch compiler selection in Go4s Makefile.Linux
HLinde Nov 24, 2025
eabc565
adjust cmake invocation to conda-forge
HLinde Nov 24, 2025
c0b33b9
build on of the test cases with cmake
HLinde Nov 25, 2025
3dc0f59
try matching the library on both linux / osx
HLinde Nov 25, 2025
6446e96
set extglob for test examples
HLinde Nov 25, 2025
4587bf0
remove special settings for dynamic_linking
HLinde Dec 13, 2025
67f50d5
try using CMAKE_ARGS.. but leads to errors
HLinde Dec 13, 2025
ab29662
Merge branch 'main' into go4
HLinde Dec 13, 2025
dd37f65
use CMAKE_ARGS
HLinde Dec 15, 2025
fa5bd61
use CPU_COUNT parameter instead of trying to call nproc
HLinde Jan 5, 2026
876b711
remove manual pins
HLinde Jan 5, 2026
02732c6
patch lipthread linking
HLinde Jan 5, 2026
46527b0
take DCMAKE_INSTALL_LIBDIR out of CMAKE_ARGS
HLinde Jan 5, 2026
938a7b5
adjust patches to docker building
HLinde Jan 5, 2026
5973ffd
Merge branch 'main' into go4
HLinde Jan 6, 2026
f73abb3
handle linking issues only on linux
HLinde Jan 6, 2026
6314eb4
remove CMAKE argument with pattern mattching instead of array position
HLinde Jan 6, 2026
eda6e81
fix cmake argument expansion in example runs
HLinde Jan 6, 2026
4ec7158
Merge branch 'main' into go4
HLinde Mar 3, 2026
a5c362e
Merge remote-tracking branch 'refs/remotes/origin/go4' into go4
HLinde Mar 3, 2026
7a814a8
remove optional hdf5
HLinde Mar 3, 2026
ce0e756
explicitly turn hdf5 feature off
HLinde Mar 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 232 additions & 0 deletions recipes/go4/LICENSE

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions recipes/go4/activate-go4.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

# preserve the user's existing setting
if [ ! -z "${GO4SYS+x}" ]; then
export CONDA_BACKUP_GO4SYS="${GO4SYS}"
fi
if [ ! -z "${ROOT_INCLUDE_PATH+x}" ]; then
export CONDA_BACKUP_ROOT_INCLUDE_PATH="${ROOT_INCLUDE_PATH}"
fi

export GO4SYS="${CONDA_PREFIX}"
export PYTHONPATH=$GO4SYS/python:$PYTHONPATH
export ROOT_INCLUDE_PATH="${CONDA_PREFIX}/include":$ROOT_INCLUDE_PATH
21 changes: 21 additions & 0 deletions recipes/go4/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -eumx -o pipefail
shopt -s failglob

# take out an argument from CMAKE_ARGS...
LEAVE_OUT_ARG="-DCMAKE_INSTALL_LIBDIR=lib"
echo "Taking ${LEAVE_OUT_ARG} out of CMAKE_ARGS"
CMAKE_ARGS="${CMAKE_ARGS/$LEAVE_OUT_ARG}"

# We do want to split words in $CMAKE_ARGS, so it must not be quoted!
# shellcheck disable=SC2086
cmake -B build -S "${SRC_DIR}" -Dexamples=OFF -Dhdf5=OFF $CMAKE_ARGS
cmake --build build -j"${CPU_COUNT}"
cmake --install build

cd "$PREFIX"
CHANGES="activate deactivate"
for CHANGE in $CHANGES; do
mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d"
cp "${RECIPE_DIR}/${CHANGE}-go4.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${CHANGE}-${PKG_NAME}.sh"
done
17 changes: 17 additions & 0 deletions recipes/go4/deactivate-go4.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash

# reinstate the backup from outside the environment
if [ ! -z "${CONDA_BACKUP_GO4SYS}" ]; then
export GO4SYS="${CONDA_BACKUP_GO4SYS}"
unset CONDA_BACKUP_GO4SYS
# no backup, just unset
else
unset GO4SYS
fi
if [ ! -z "${CONDA_BACKUP_ROOT_INCLUDE_PATH}" ]; then
export ROOT_INCLUDE_PATH="${CONDA_BACKUP_ROOT_INCLUDE_PATH}"
unset CONDA_BACKUP_ROOT_INCLUDE_PATH
# no backup, just unset
else
unset ROOT_INCLUDE_PATH
fi
32 changes: 32 additions & 0 deletions recipes/go4/fix-gxx.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
--- a/build/Makefile.Linux
+++ b/build/Makefile.Linux
@@ -7,11 +7,11 @@

#### Compilers: ####
ifdef clang
-CXX = clang++
-CC = clang
+CXX ?= clang++
+CC ?= clang
else
-CXX = g++
-CC = gcc
+CXX ?= g++
+CC ?= gcc
endif

#### Compiler optimization flags: ####
@@ -37,11 +37,11 @@
endif

ifdef clang
-LD = clang++
+LD = $(CXX)
LDFLAGS += $(LDFLAGS_RPATH) $(LDFLAGS_EXTRA) -O
SOFLAGS = -shared -Wl,-soname,
else
-LD = g++
+LD = $(CXX)
LDFLAGS += $(LDFLAGS_RPATH) -Wl,--no-as-needed $(LDFLAGS_EXTRA) -O
SOFLAGS = -shared -Wl,-soname,
endif
80 changes: 80 additions & 0 deletions recipes/go4/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
context:
version: '6.4.1'

package:
name: go4
version: ${{ version }}

source:
url: https://github.com/gsi-ee/go4/releases/download/${{ version }}/go4-${{ version }}.tar.gz
sha256: d4c4409b4a86e8686ac19a040824fc37f8ad9bdeef27545cb405b777025e12ee
patches:
- fix-gxx.patch

build:
number: 0
skip:
- win
script:
- $RECIPE_DIR/build.sh
requirements:
build:
- cmake
- make
- ${{ compiler('c') }}
- ${{ stdlib('c') }}
- ${{ compiler('cxx') }}
- if: linux
then:
- libgl-devel
host:
- root_base
- qt
- python
run:
- python

tests:
- package_contents:
bin:
- go4
- go4analysis
- script:
- ./run_go4_examples.sh
files:
source:
- Go4ExampleSimple/
- Go4ExampleUserSource/
recipe:
- run_go4_examples.sh
requirements:
run:
- make
- cmake
about:
homepage: https://www.gsi.de/en/work/research/experiment_electronics/data_processing/data_analysis/the_go4_home_page
summary: |
The object-oriented system Go4 (GSI Object Oriented On-line Off-line system)
is based on ROOT (R. Brun et al.) with the specific requirements of the low
and medium energy nuclear and atomic physics experiments implemented as extensions.
description: |
Go4 separates analysis and GUI in two tasks which could run on different nodes.
Communication is done through threads and sockets. The GUI is built with the
Qt widget library using the Qt designer. Qt and ROOT are interfaced by QtROOT.
Full ROOT functionality including menus and graphics is available without modifications.
The Go4 analysis framework provides the syntax to organize the analysis in steps
which can be controlled from the GUI. Each step has its own IO and processing classes.
The Go4 event classes can be used to construct at runtime complex (composite) events which
are stored by Go4 in trees and branches without explicit programming. The Go4 GUI includes
a browser and tree viewer which can be used without analysis to process standard ROOT files.
The tree viewer resolves arbitrary hierarchy levels of composite event trees.
license: GPL-3.0-or-later
license_file:
- LICENSE
- Go4License.txt
documentation: https://www.gsi.de/en/work/research/experiment_electronics/data_processing/data_analysis/the_go4_home_page/documentation
repository: https://github.com/gsi-ee/go4

extra:
recipe-maintainers:
- HLinde
21 changes: 21 additions & 0 deletions recipes/go4/run_go4_examples.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -eumx -o pipefail
shopt -s failglob
shopt -s extglob

# Test running an example analysis with Make build
pushd Go4ExampleSimple
make clean
make -j"${CPU_COUNT}"
go4analysis -random -number 10000
popd

# Test running another example analysis with CMake build
pushd Go4ExampleUserSource
mkdir build
# shellcheck disable=SC2086
cmake -S ./ -B ./build/ $CMAKE_ARGS
cmake --build build -j"${CPU_COUNT}"
go4analysis -lib ./build/libGo4UserAnalysis.@(so|dylib) -user tafoil50.scf
go4analysis -lib ./build/libGo4UserAnalysis.@(so|dylib) -user befoil50.scf
popd