Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • fp311online/cern-root
1 result
Show changes
Commits on Source (3)
  • Tobias Triffterer's avatar
    Add __ROOFIT_NOBANNER Definition to RooFitCore · cb2899c3
    Tobias Triffterer authored
    This compiler flag — foreseen by the original authors — stops RooFit
    from displaying its banner in front of the banner and license
    information of the main application
    Verified
    cb2899c3
  • Tobias Triffterer's avatar
    Adapt Cling C++ Header Search Paths to Flatpak · 035181f8
    Tobias Triffterer authored
    This adds additional directories to the CMake variable
    CLING_CXX_HEADERS, whose content is later on compiled into
    the ROOT libraries.
    
    Cling requires access to the header files even at runtime,
    but a Flatpak runtime environment does not contain them,
    only the SDK used at compilation time does.
    
    The /usr tree inside a Flatpak sanbox is immutable, everything
    the application needs in addition to the underlying runtime has
    to be shipped in /app.
    
    This patch adds these paths under /app to the search paths of Cling
    so that it does work inside a Flatpak sandbox.
    
    This behaviour is controlled by the new boolean build option
    “BUILD_FOR_FLATPAK”.
    
    However, this patch alone does not do the trick. The Flatpak build manifest
    needs to contain commands to create the “/app/include” directory and copy
    all the include files there from the SDK as well as to install the include
    files from ROOT under “/app/include/root”.
    Verified
    035181f8
  • Tobias Triffterer's avatar
    Add Modification Notice to Readme · e0c7ca2a
    Tobias Triffterer authored
    As required under the LGPL, a prominent notice has been added to the
    main readme file to inform the user that this is a modified version
    of ROOT.
    Verified
    e0c7ca2a
<img src="https://root-forum.cern.ch/uploads/default/original/2X/3/3fb82b650635bc6d61461f3c47f41786afad4548.png" align="right" height="50"/>
## :warning: Modified Version :warning:
This version of [ROOT](https://root.cern) has been modified to be included in the [Rutherford Experiment Online Lab Course at Ruhr-Universität Bochum](https://gitlab.ep1.rub.de/fp311online).
The original source can be found at GitHub: https://github.com/root-project/root
This modified version is hosted at: https://gitlab.ep1.rub.de/fp311online/cern-root
### Purpose
The main distribution path of the aforementioned software under Linux is Flatpak because it is distribution-agnostic.
Unfortunately, the official ROOT version does not work properly inside the sandbox created by Flatpak due to the special needs of Cling, the runtime C++ parser of ROOT.
These modifications do allow using ROOT inside the sanbox, which is their purpose.
### Changelog
* Added the ` __ROOFIT_NOBANNER` compiler flag to `libRooFitCore`
* Added build option `BUILD_FOR_FLATPAK`
* Adapted Cling C++ header search paths for use inside the Flatpak sandbox if `BUILD_FOR_FLATPAK` is enabled
### License
This version of ROOT including the modifications is licensed under the [GNU Lesser General Public Licensei (LGPL), version 2.1 or later](ihttps://www.gnu.org/licenses/old-licenses/lgpl-2.1.html).
The Rutherford Experiment Online Lab Course and this version of ROOT form a combined work when they are distributed in one Flatpak bundle. This bundle is licensed under the [GNU General Public Licensei (GPL), version 3 or later](https://www.gnu.org/licenses/gpl-3.0.html) under the “upgrade clauses“ of the LGPL.
### Contact Information
The author of this modified version can be contacted as follows:
Dr. Tobias Triffterer
Ruhr-Universität Bochum
Institut für Experimentalphysik I
NB 2/126 – Fach-Nr. 125
Universitätsstraße 150
44801 Bochum
Germany
E-Mail: tobias@ep1.ruhr-uni-bochum.de
[S/MIME Certificate](https://ep1.ruhr-uni-bochum.de/~tobias/tobias_ep1.pem) (Fingerprint: DF35 4C01 A72C E689 2D95 F52D 8426 5187 BE21 2DEE)
[GnuPG/OpenPGP Key](https://ep1.ruhr-uni-bochum.de/~tobias/tobias_ep1.asc) (Fingerprint: 32FC 7266 0504 437B BF8A AFB6 7B74 849A 85A6 0E50)
EP1 GitLab Username: @tobias
Matrix-ID: [\@trifftmp:ruhr-uni-bochum.de](https://matrix.to/#/@trifftmp:ruhr-uni-bochum.de)
---
Original Readme:
## About
The ROOT system provides a set of OO frameworks with all the functionality
......
......@@ -282,6 +282,25 @@ if (UNIX)
endif()
endif()
# Modification for Fp311Online@Ruhr-Universität
option(BUILD_FOR_FLATPAK "Add include paths under /app to allow Cling to work in the Flatpak sandbox. (Please note that the Flatpak build manifest has to copy include files there in addition to setting this flag.)" OFF)
if (${BUILD_FOR_FLATPAK})
set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include:/app/include/root")
file(GLOB flatpaksdk_cpp_inc_dirs LIST_DIRECTORIES TRUE "/usr/include/c++/*")
foreach(flatpaksdk_cpp_inc_dir ${flatpaksdk_cpp_inc_dirs})
get_filename_component(flatpaksdk_cpp_version ${flatpaksdk_cpp_inc_dir} NAME)
set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include/c++/${flatpaksdk_cpp_version}")
file(GLOB flatpaksdk_cpp_arch_dirs LIST_DIRECTORIES TRUE "/usr/include/c++/${flatpaksdk_cpp_version}/*linux*")
foreach(flatpaksdk_cpp_arch_dir ${flatpaksdk_cpp_arch_dirs})
get_filename_component(flatpaksdk_cpp_arch ${flatpaksdk_cpp_arch_dir} NAME)
set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include/c++/${flatpaksdk_cpp_version}/${flatpaksdk_cpp_arch}")
endforeach()
endforeach()
endif (${BUILD_FOR_FLATPAK})
# End Modification
MESSAGE(STATUS "Cling will look for C++ headers in '${CLING_CXX_HEADERS}' at runtime.")
# In modules builds we 'mount' our own stl modulemap for libstdc++. In order to do this,
......
......@@ -471,4 +471,8 @@ foreach(incl ${fitcore_incl})
target_include_directories(RooFitCore PUBLIC $<BUILD_INTERFACE:${incl}>)
endforeach()
# Modification for Fp311Online@Ruhr-Universität Bochum
target_compile_definitions(RooFitCore PRIVATE __ROOFIT_NOBANNER)
# End of modification
ROOT_ADD_TEST_SUBDIRECTORY(test)