d3cod3 / Mosaic-Installer

bash Mosaic installer script
The Unlicense
4 stars 1 forks source link

Ubuntu 20.04 LTS installation #3

Closed diiigle closed 3 years ago

diiigle commented 3 years ago

Pardon my french, but I spend 9+ hours trying to get this running/building.

Windows problems

After trying to run prebuild binaries for windows on two machines without success I reverted back to building Mosaic myself.

Failure on machine 1 Windows 8.1 It starts and runs until I load any of the example patches/networks.
Failure on machine 2 Windows 10 It starts and I can see the main screen for half a second and then it crashes. WinDbg didn't provide any useful failure information. Last loaded dll was libcms.

Cloning problems

I tried installing in a fresh Ubuntu Desktop 20.04 (minimal installation) VM and needed the following additional packages to install:

and it still kept failing.

I manually triggered /opt/openFrameworks/scripts/linux/ubuntu/install_dependencies.sh and that did the trick for the dependencies.

Building problems

ofxPdExternals made some issues with

/opt/openFrameworks/addons/ofxPdExternals/libs/cyclone/cyclone_lib.c:525:17: error: conflicting types for ‘obj_findsignalscalar’
  525 | EXTERN t_float *obj_findsignalscalar(t_object *x, int m);
      |                 ^~~~~~~~~~~~~~~~~~~~
In file included from /opt/openFrameworks/addons/ofxPdExternals/libs/cyclone/cyclone_lib.c:23:
/opt/openFrameworks/addons/ofxPd/libs/libpd/pure-data/src/m_imp.h:88:17: note: previous declaration of ‘obj_findsignalscalar’ was here
   88 | EXTERN t_float *obj_findsignalscalar(const t_object *x, int m);
      |                 ^~~~~~~~~~~~~~~~~~~~

https://github.com/d3cod3/Mosaic-Installer/blob/b23a853f50363631f4b6c7560cd5fd76880ac35c/mosaic_installer.sh#L392 Should be mkdir -p

Feedback

Overall my feedback is: The installation process is far from developer friendly. Please consider providing Docker images, using git submodules for all dependencies (references exact commits) and potentially a more flexible build system like CMake+ninja (Make -j always messes stuff up and you end up building single-core for ages). Also running your installer script as sudo / root will create all the files as root user. :facepalm:

Somebody started this already: https://github.com/ofnode/of

I know you inherited all of that from openFrameworks, but that is just not up to date. Feels like developing software 10 years ago. I can also recommend setting up a build/CI system which (as a side-effect) serves as a secondary resource for people that want to reproduce a building environment.

CobbieCobbie commented 3 years ago

Definitely feel your pain, pretty much the same issue here (Debian). dont see any reason for sudo / root privileges

d3cod3 commented 3 years ago

Hi, first of all, thanks @diiigle for all your time and all the info & suggestions, it's really appreciated!

Now, about the supposedly problematic sudo / root privileges, if you check the installer script code, at the end it will restore all the privileges to the current user on all the installed files:

# 10 - Change the ownership of the entire openFrameworks folder to local user
cd $INSTALLFOLDER
chown $LOCALUSERNAME:$LOCALUSERNAME -R $OFFOLDERNAME/

As you commented, this is all inherited from openFrameworks, so the sudo / root it's needed for running OF scripts, this is what it is right now.

And before changing subject, to answer at @CobbieCobbie , this is not twitter, this is an open source project on github, people write here to collaborate in some way, as @diiigle did, with his constructive critique and important information, so please avoid useless commentaries, if you don't see any reason for the issue is because you didn't look properly.

Coming back to the important stuff, i agree with all the @diiigle feedback, we are working on gettin Mosaic running with flatpak, and Docker images will come soon too. I'll take a look at the CMake+ninja option too, thanks for the link.

I completely agree with the feeling of developing software 10 years ago, we are considering options to remove openFrameworks from the equation, to drastically simplify all compile related stuff.

About the compiler script errors, the curl error is easy to solve, but can you post some more info about the other errors? Anyway, i'll add in the readme a list of linux system tested, because, for example, i didn't test specifically ubuntu 20.04 LTS.

Thanks again for your feedback!

diiigle commented 3 years ago

Unfortunately I don't have any recollection about the specifics any more. There was just too many. Probably also some of them were followup problems from the building not finishing properly in the first place.

And thats the reason that chmod does not help. If the installer crashes somewhere along the way, there is no proper 'cleanup'.

I might wait another six months then, till things stabilize a bit. That experience was not very motivating.

d3cod3 commented 3 years ago

Ok, no problem.

and yes, maybe it's better for you to wait some more time, as all this is still in beta, developed/maintained by one person plus some help and worked at on free time, so it's not strange to have a lot of issues at this stage.

Daandelange commented 3 years ago

Hello, sorry to re-open+close this. Indeed, heritages from OF give Mosaic an old-school feeling.
Like d3cod3 says, I hope this will get easier with time.

I've just verified a fresh install on Mint 20, which is based on Ubuntu 20.
I didn't run the Mosaic Installer, but reproduced it. Here's steps for a manual install, for the reference. (not developer friendly).

d3cod3 commented 3 years ago

Thanks @Daandelange for the clarification and the detailed manual compile instructions, i'll add it to the README!

Daandelange commented 3 years ago

Beware that I did not install in /opt as the installer script does.
I didn't even think about putting it in the readme! :) Indeed a manual+auto install option semi-fixes the root problem by giving a less "blind sudo" installation choice. Also, I'll try the makefile patch your posted and report back.