bartoszek / AUR-meshroom-git

0 stars 0 forks source link

meshroom-git incompatible with OpenEXR 3.x #2

Open pnabbefeld opened 3 years ago

pnabbefeld commented 3 years ago

While there exists a patch for alice-vision-git, there's none for meshroom-git.

More specifically, the build of bundled QtOIIO library fails because separation of imath library.

pnabbefeld commented 3 years ago

Adding some lines from "meshroom" (non-git) PKGBUILD/prepare() seems to fix the build for OpenEXR 3. However, now I'm running into yet another problem:

[ 54%] Automatic MOC for target depthMapEntityQmlPlugin

AutoMoc error

"SRC:/src/depthMapEntity/depthMapEntityQmlPlugin_autogen/mocs_compilation.cpp" includes the moc file "EWIEGA46WW/moc_DepthMapEntity.cpp", but a header "EWIEGA46WW/DepthMapEntity.{h,hh,h++,hm,hpp,hxx,in,txx}" could not be found in the following directories "SRC:/src/depthMapEntity/depthMapEntityQmlPlugin_autogen/EWIEGA46WW" "SRC:/src/depthMapEntity/EWIEGA46WW" "/usr/include/qt/EWIEGA46WW" "/usr/include/qt/QtCore/EWIEGA46WW" "/usr/lib/qt/mkspecs/linux-g++/EWIEGA46WW" "/usr/include/qt/QtGui/EWIEGA46WW" "/usr/include/qt/QtQml/EWIEGA46WW" ...

Edit: Okay, that problem seems to belong to interrupting the build - probably some flag is re-used, producing such side-effects. Still trying to build.

Edit 2: Building with makepkg works after editing PKGBUILD and applying the patch (while I'm not sure if it's still needed).

Edit 3: Starting Meshroom results in a core dump, which I don't know how to open/read.

bartoszek commented 3 years ago

I've patched the openexr:3 in ItOIIO but segfoult is occurring in broken python-cx-freeze I'll post a bug report, let those lazy bums in the Arch package repository finally gets their shit together.

pnabbefeld commented 3 years ago

Thank You. I'm no C programmer, so I do not know how to work with core dumps - I've only found some binary format (or at least "less" doesn't show anything that makes sense to me) - is there any chance to see the content in plain text format?

And would it be possible, to run meshroom just from the Python files, without creating executables of these? Probably some "testing" mode?

bartoszek commented 3 years ago

Looks like a problem with packaging of cx_Freeze na Arch's side, already poked the maintainer about it https://bugs.archlinux.org/task/71505 as building console binary for cx_Freeze with simple gcc -lpython3.9 Console.c produce working binary.

Surely I can package meshroom without freeze, but it would become more fragile. You can try it yourself: just call makepkg -Cod to rebuild sources, then got into src/meshroom and run bash -c start.sh to start UI

bartoszek commented 3 years ago

Looks like cx_Freeze has this fixed already https://github.com/marcelotduarte/cx_Freeze/commit/030dd1177c7b7019fb753cd62d0548763805f31c I'll poke the maintainers to back port the fix.

pnabbefeld commented 3 years ago

Is there probably sth. wrong with either PKGBUILD or .SRCINFO? When trying to update meshroom-git, I'm getting this: $ pikaur -Ss meshroom-git Suche... [###] aur/meshroom-git 2021.1.0.r93.gd312d635-1 [installiert: 2021.1.0.r134.gf1331c6a-1] (1, 0.00) Meshroom is a free, open-source 3D Reconstruction Software based on the AliceVision framework.

I guess, version in PKGBUILD should have been upgraded?

bartoszek commented 3 years ago

Sorry, currently I've only updated meshroom https://github.com/bartoszek/AUR-meshroom/commit/3cc913736dd17d7f0149421f2e91b9a1b46d8dbd meshroom-git still poses a problem.

bartoszek commented 3 years ago

I've pushed fixed cx_freeze version to AUR and refactor all alice-vision{,-git} and meshroom{,-git} packages - should works fine beside qtAliceVision plugin witch is disabled by default ( set env var ENABLE_QTALICEVISION=1` to build it if you like to test it)

pnabbefeld commented 3 years ago
  1. Do I need qtAliceVision to run meshroom-git?
  2. I've built alice-vision-git and meshroom-git (without setting ENABLE_QTALICEVISION), but I still get a core dump when trying to start Meshroom. Probably, because aur/python-cx-freeze-qfix needs to be updated? Notice, installation is of August, 4th ... Going to check that.
bartoszek commented 3 years ago

QtAliceVision is just a GUI plugin allowing in depth inspection of Alice-Vision reconstruction results in meshroom.

bartoszek commented 3 years ago

Crush is most likely due to cx_freeze. You can check it by running base console binary located in /use/lib/python 3.9/site-packages/cx_Freeze/base it should throws an error about missing package to run, and not segfoulting.

pnabbefeld commented 3 years ago

Yes, indeed, the console binary is working and produces some interesting output, i.e.: ModuleNotFoundError: No module named 'encodings'

"sudo pip install encodings" does not work, while searching for "encodings" on pypi.org results in: 8,600 projects for "encodings"

Could You probably tell me which package to install?

bartoszek commented 3 years ago

No need, it should be generated automatically with each cx_freeze based package.

pnabbefeld commented 3 years ago

Then there seems sth. still broken - I'll try to find out

Found this: https://github.com/marcelotduarte/cx_Freeze/issues/835

Seems, there's probably a problem with numpy versions - probably ...

pnabbefeld commented 3 years ago

Some other approach: I noticed, encodings is no module, but a directory populated with some encoding-related files. Now I could check for the right encoding, so I wonder, how cx-freeze gets the file name it is searching for - just for checking, if the desired file is there.

bartoszek commented 3 years ago

I've just build {meshroom,alice-vision}-git with DISABLE_CUDA=1 in gcloud and everything seems to work fine 😏

btw. Are you on Arch, or some custome flavored distro e.g: Manjaro ?

pnabbefeld commented 3 years ago
  1. I'm on Arch.
  2. I've been told there's a new build of cx-freeze (at least 6.8b2). I tried to pip it, but meshroom-git didn't build, then.
bartoszek commented 3 years ago

I'll have to test the latest version of cx_freeze, looks like my previous issue with it should be fixed now. https://github.com/marcelotduarte/cx_Freeze/issues/1189

pnabbefeld commented 3 years ago

cx-freeze is fixed now, however, it seems some Arch packages need to be rebuilt (namely pyside2 and shiboken), probably, but I've not yet tested further, so I cannot state this to be true.

For cx-freeze see: https://github.com/marcelotduarte/cx_Freeze/issues/1197#issuecomment-912920347

As just mentioned, I've not been able to fix my own installation, yet, because I'm not used to building sth. manually (and I do not want to break any other packages).

pnabbefeld commented 3 years ago

After installation of patchelf 0.13 (from community-testing), re-building python-cx-freeze-qfix (modified to load cx-freeze 6.8b5), pyside2/shiboken2 (using asp checkout/makepkg -si), alice-vision-git, and meshroom-git, I'm still stuck with errors when starting Meshroom:

$ LANG=C Meshroom PySide2/init.py: Unable to import shiboken2 from /usr/lib/Meshroom-2021.1.0/lib/library.zip, /usr/lib/Meshroom-2021.1.0/lib Traceback (most recent call last): File "/usr/lib/python3.9/site-packages/cx_Freeze/initscripts/startup.py", line 113, in run module_init.run(name + "main") File "/home/peter/.cache/pikaur/build/meshroom-git/src/meshroom/setupInitScriptUnix.py", line 42, in run exec(code, m.dict) File "meshroom/ui/main.py", line 10, in File "/home/peter/.cache/pikaur/build/meshroom-git/src/meshroom/meshroom/ui/app.py", line 5, in from PySide2.QtCore import Qt, QUrl, Slot, QJsonValue, Property, Signal, qInstallMessageHandler, QtMsgType, QSettings File "/home/peter/.local/lib/python3.9/site-packages/PySide2/init.py", line 107, in _setupQtDirectories() File "/home/peter/.local/lib/python3.9/site-packages/PySide2/init.py", line 58, in _setupQtDirectories import shiboken2 File "/home/peter/.local/lib/python3.9/site-packages/shiboken2/init.py", line 27, in from .shiboken2 import * ImportError: /usr/lib/Meshroom-2021.1.0/lib/shiboken2/shiboken2.abi3.so: ELF load command address/offset not properly aligned

Do You have an idea, what might be wrong? The only difference I see to Marcel's build is, I'm trying to use packages instead of pip (because I'll use those in the future, too, if they become stable, and I don't want to mix-up installation methods too much).