Hello science team, As previously mentioned I have been developing a package for Siconos, a C++ framework for numerical simulation of non-smooth dynamical systems.
I would like to know if anyone would be willing to review this package as it stands. The package is here: https://salsa.debian.org/science-team/siconos ITP: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915656 Some notes on the package. Various binary packages are generated, including C++ libraries, -dev, python packages, and command-line tools. A master "siconos" package depends everything including dev packages along with a script that uses them. * It has a few different usage modes that the package tries to be amenable to. - First, as a set of C++ libraries, one C library that wraps a suite of numerical solvers and then a C++ framework and various sub-frameworks for different use cases (e.g. mechanical systems, control problems, etc.); - second, as a modeling framework, it provides a script that compiles and launches a program driven by CMake; - third, as a Python library, wrapped using SWIG. I note these because one major mode of *usage* of Siconos, namely the use of the "siconos" script, requires build tools, so this should be understood in case questions arise about the need for -dev packages when the "siconos" package is installed. When only library packages are installed, it can be used like any other shared library. Moreover siconos-mechanics-tools includes some Python scripts specific to the mechanics subcomponent which generate HDF5 files based on a scene description that can be visualized interactively in 3D (using python-vtk7). * A serialization framework is available through BOOST serialization. This is heavily templated C++ code. In combination with SWIG, these two "compiler-wrappers" cause the compilation to balloon in needed memory at certain points during the build. When turned on, which they are, a large amount of memory is needed for compilation. I found that it overloads the Salsa CI gitlab runner, for example, and on my laptop with 8 GB memory I must close the browser while it is compiling else OOM. I am not sure if this will present issues for Debian packaging, please advise. In particular this is why I disabled parallel build. * All copyright issues have been cleared, anything not adhering to Debian legal standards has been made optional and removed. If anything is noticed please let me know. The main obstacle was the QP solver (ql0001), which still needs to be replaced with a free option, but Siconos works regardless so this can be hopefully fixed in a later release. The upstream authors are aware. Finally: autopkgtests are included, although at the moment I have having trouble getting autopkgtest working locally for any package (weird errors about "file not found" and "cannot send to testbed" on a brand-new schroot), but it worked previously so I hope it does not cause issues. The package also passed on Salsa's Gitlab CI when I disabled the options that cause memory issues, so I'm fairly confident: https://salsa.debian.org/science-team/siconos/-/jobs/72019 . I've stalled long enough sending this for review so I didn't want to let this stop me. Due to working with upstream to get necessary changes in, the package is currently based on a git version. I should mention, the last thing to do is symbols files, I have not done it yet. I am not sure how to proceed with a complicated C++ library to be honest, any advice is appreciated. My interest in the package is its use as a rigid body mechanics solver for robotics applications. It is similar somehow to Bullet or ODE, but not oriented towards games or really even to real-time, instead it focuses on generalized modeling of dynamical systems and the use of a wide array of collision solvers. In fact it uses Bullet for collision detection, hence the dep from libsiconos_mechanics. regards, Steve

