> I am migrating the full CRIPT muon tomography detector from MIDAS (SVN Rev.
> 5238, circa 2012) to a more modern release.
> The current system runs on Scientific Linux 6 and very old hardware.
Right, good vintage midas and linux. But in the current security environment,
we must run currently supported OS (and MIDAS), and we must never fall off
the yearly/bi-yearly OS upgrade threadmill.
How old is your computer hardware and do you plan to update it, as well? If you OS
is installed on an HDD, definitely move to an SSD would be good. If you are hard
on money, a RaspberryPi5 with 16GB RAM may be good enough for what you have.
Anyhow new OS choice would be Ubuntu 24 or Debian 13. I do not recommend Red Hat based OS (vanilla
RHEL, Fedora, Alma, Rocky), they have become niche OSes with minimal vendor and community support.
> Due to substantial changes in the MIDAS codebase over the years ...
The big change in MIDAS land is move to c++, then c++11, then to c++17, and move from vanilla make to
cmake.
MIDAS API has been reasonably stable since then, but very old MIDAS frontends would fail to build with
latest compilers because of changes in c++ language and changes in the c and c++ libraries.
> I have encountered multiple compatibility issues during the migration. I have also attempted to
build and run the legacy MIDAS version and the front-end code using GCC 4.8 on a modern Linux system
(Ubuntu 24.04), but without success.
this is non-viable, latest C/C++ compilers reject perfectly good SL6-era C/C++ code, old MIDAS would
not compile, old frontends would not compile.
> Could you please advise on the recommended approach ...
What you are doing, we have done several times with TRIUMF experiments,
updating SL6 and CentOS-7 MIDAS instances to current MIDAS, C++ and OS:
1) new computer with Ubuntu 24 (or Debian or Raspbian). (U-26 will come out roughly in August, fo rth
epurposes of this discussion).
2) new MIDAS. we generally recommend the head of the develop branch, but older tagged version are
okey, too.
3) apache https proxy, etc, for secure browser connections, see
https://daq00.triumf.ca/DaqWiki/index.php/Ubuntu#Install_apache_httpd_proxy_for_midas_and_elog
4) reload your old ODB into the new MIDAS
5) your old history, etc should work
6a) build your old frontends, this will be a chore, but if you look at the compile errors, you will
see that most changes are very mechanical (i.e. const char*, etc). biggest hassle is ot make your old
C/C++ code to build with current C++17 compiler, smaller hassle is to update for minor changes in the
mfe.h API.
6b) bite the bullet and rewrite your frontends using the C++ tmfe API, start with
tmfe_example_everything.cxx, remove unnecessary, add required, pretty straightforward, I can guide you
through this (contact me directly by email).
7) minor tweeks to mlogger, mhttpd and history settings
8) rewrite all customs pages to the current mjsonrpc API
Best of luck, if you have more questions, please ask here or by direct email.
K.O. |