Opened 4 years ago

Last modified 4 years ago

#6024 new enhancement

OM won't compile on cutting edge linux due to internal dependencies. Suggest to optionally configure for available system packages instead of sub-repos.

Reported by: ppenguin Owned by: Martin Sjölund
Priority: high Milestone: Future
Component: Build Environment Version: v1.16.0-dev
Keywords: Cc:

Description

Compiling from git source on current (cutting edge) Manjaro fails due to mumps and qwt build errors.

qwt fails because of a similar issue to this one: https://github.com/RPCS3/rpcs3/pull/7832.

Fix that makes the same build work presented here: https://github.com/OpenModelica/OpenModelica/pull/983

Generally, compiling from source on Linux would benefit greatly from the possibility to use system packages for Ipopt, mumps, qwt, sundials etc. more easily. Additionally, explicitly using an internal qwt as omqwt forcilbly seems heavy-handed, especially since many systems provide a good qwt separately.

Propose to update configure/autoconf with options to use system packages.

Change History (2)

comment:1 by Francesco Casella, 4 years ago

@sjoelund.se, what do you think?

comment:2 by Martin Sjölund, 4 years ago

We need to use our own versions of the dependencies because newer packages are not always backwards compatible - in particular they will give vastly different results for numerical solvers. It's too much work to support all these different configurations (also see Andreas spending almost a month failing to get the newer Sundials working). We have OpenModelica working on an OS as old as RedHat 6 (20 years old) due to customer demand.

There are also Linux distributions that do not ship with these dependencies so we need them in there anyway.

I remember back in 2009 when I started... we needed to patch system headers because they were broken as well.

Usually the best way to resolve these issues is if the problem is fixed upstream; then we can try a newer release of the same package. Otherwise we quite often just patched the offending files.

The solution that always seems to work is using docker - you can forward your entire home directory and X11 socket.

Note: See TracTickets for help on using tickets.