I have not used MathMap for quite some years now, and I thought this
could be an opportunity to give the current version a try, and provide
some feedback to the developers.
Tas Mania wrote:
> I have installed a fresh copy of Ubuntu 18.04. I only compile with the
> 'Long Term Support' versions because the libraries change too much
> between LTS versions.
I am pleased to report that I successfully built it on Ubuntu 19.04.
> sudo apt-get install [...many packages...]
You don't need to list all those packages on the command line, as apt
handles dependencies automatically. For example, libgimp2.0-dev depends
on libgegl-dev, which in turn depends on libjson-glib-dev... At least
the following packages are pulled automatically as dependencies:
libgegl-dev, libgif7, libglib2.0-dev, libgsl23, libgslcblas0,
libgtksourceview2.0 and libjpeg62.
> cp -R /usr/local/src/mathmap /usr/local/src/mathmapBack
There is no point in copying a git repo this way. The repo already
contains a backup of the worktree. Actually, in contains one such a
backup for every commit in the history...
This failed with:
In file included from mathmap_common.c:47:
compiler.h:37:10: fatal error: compiler_types.h: No such file or directory
but then it worked by just retyping ‘make’. I found out the issue is
related to my ‘make’ being an alias for ‘make -j 2’. Re-building from
scratch with make in sequential mode worked fine. It would seem the
Makefile fails to declare all the dependencies.
While doing those tests, I ran into this problem:
$ unalias make && make clean && make
rm -f *.o builtins/*.o designer/*.o [...]
rm -rf debian/mathmap debian/mathmap.substvars libnoise
make: *** No rule to make target 'libnoise', needed by 'libnoise/noise/lib/libnoise.a'. Stop.
It appears that ‘make clean’ erroneously removes libnoise, which is part
of the distribution. Fortunately, it can easily be restored with
‘git checkout .’. I had to replace ‘make clean’ with
‘git ls-files -o | xargs rm’. Then:
gcc -I. -I/usr/local/include -D_GNU_SOURCE -O0 [...]
The source is being compiled at optimization level -O0. I think this can
be considered a bug. The build worked, but it gave **tons** of compiler
warnings, including the use of many deprecated functions, some
‘volatile’ qualifiers being discarded, variables set but not used,
pointers being implicitly converted to integers, casts to pointer from
integers of different sizes... There is also this assignment that looks
like a genuine bug: in compiler.c:1099:
assert(phi_assign->v.assign.rhs2->kind = RHS_PRIMARY
&& phi_assign->v.assign.rhs2->v.primary.kind == PRIMARY_VALUE);
I guess the first ‘=’ is meant to be an ‘==’.
I can provide a full transcript of the compilation, with all the
warnings, if that is useful.
> sudo checkinstall --install=no
I found it a little bit annoying that it did install everything in /usr
despite the option ‘--install=no’. I would expect to be able to just
type ‘sudo make install‘ and get the whole thing in /usr/local.
Running MathMap I stumbled on another issue: In the ‘Expression‘ tab,
the comments appear in dark blue over a dark gray background, which
makes them almost impossible to read.
Other than that, all seems to work fine.
Should I open a GitHub issue for each of the points I listed here?