sn4k3 / UVtools

MSLA/DLP, file analysis, calibration, repair, conversion and manipulation
GNU Affero General Public License v3.0
1.18k stars 103 forks source link

[BUG] UVtools 3.0.0 - arm build not functional #431

Closed rfield19 closed 1 year ago

rfield19 commented 2 years ago

System

Describe the bug

ARM64 build for osx doesn't run. Pops a window up with 'The application 'uvtools' can't be opened.' (non arm64 build of uvtools works fine through rosetta, same as previous versions).

To Reproduce

Run uvtools on m1 mac See error :)

Screenshots

Screenshot 2022-03-12 at 21 19 25
rfield19 commented 2 years ago

Someone suggested adding a zero length extension at the start of the sed line, and that works great sed -i '' "s/#VERSION/$version/g" "$osxApp/Contents/Info.plist"

Script now runs fully, and creates a (working) regular app with icon in the publish dir. Nice!

Screenshot 2022-03-20 at 00 20 21
sn4k3 commented 2 years ago

Nice, i have updated the script, you may fetch to get everything in place (there are others fixes regarding ==) Thanks for testing

rfield19 commented 2 years ago

No worries - happy to help!

sn4k3 commented 2 years ago

Now to fix the public releases for macOS i will need an developer account from Apple. This will impact x64 too in future and not able to execute too

rfield19 commented 2 years ago

Don't know if this helps - you can apply for a free developer account if you're a non-profit https://developer.apple.com/support/membership-fee-waiver/

sn4k3 commented 2 years ago

nonprofit organization, accredited educational institution

You need an registed organization, UVtools is just an app...

Also Portugal is not included

Eligible regions: Australia, Brazil, Canada, China mainland, France, Germany, Israel, Italy, Japan, Mexico, South Korea, United Kingdom, United States.

Also funny that they request a ton of documents to apply to that, but if you pay they ask nothing 🤣

illusio26 commented 2 years ago

I'm running into the same issue. I followed the install instructions on the main page, but no matter what I try, I get the "this application cannot be opened" prompt. Was a work around ever figured out?

sn4k3 commented 2 years ago

@illusio26 There is a way if you compile it on your machine (read all this discussion) Or just run the x64 as that will still work

illusio26 commented 2 years ago

Thanks. I just ran with the x64 for now and that worked just fine.

ok1ok1 commented 2 years ago

Nice, i have updated the script, you may fetch to get everything in place (there are others fixes regarding ==) Thanks for testing

Where is this script?

sn4k3 commented 2 years ago

Where is this script?

You need to clone the repo, and it's located here: https://github.com/sn4k3/UVtools/tree/master/build Script: createRelease.sh

./createRelease.sh -b osx-arm64

Installing .NET and run via terminal also works with public builds. You can make a shortcut to run the dotnet command and it will work

mtaumike commented 2 years ago

Tried opening from command line, error is such:

The application cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x60000235d1a0 {Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}

I'll try building myself later.

sn4k3 commented 2 years ago

@mtaumike Try this command over the package:

xattr -d com.apple.quarantine UVtools.app

Run by double click on it, does it work?

mtaumike commented 2 years ago
% xattr -d com.apple.quarantine /Applications/UVtools.app
xattr: /Applications/UVtools.app: No such xattr: com.apple.quarantine

So the x86_64 runs just fine, it's the arm64 edition that fails with the above error message.

sn4k3 commented 2 years ago

Arm fails because apple require arm apps to be codesigned which is a pain for free developer (because its payed), read this whole post to know more and this.

Here another thing you can try:

  1. Create a file with:

    #!/bin/bash
    # used to remove com.apple.quarantine attribute from a given file/pkg
    #
    # use this like: xattr_remove /path/to/file
    cd $1
    find . -print0 | xargs -0 xattr -d com.apple.quarantine
  2. Run that file like: myscript /Applications/UVtools.app

  3. Run UVtools and report the results

mtaumike commented 2 years ago

I see what you are trying to do but if xattr -d UVTools.app isn't working on the 'app' then your script is traversing the 'app'.

So I did that by hand find UVTools.app -print0 | xargs -0 xattr -d com.apple.quarantine and I got a ton of errors like I posted above and app still does not launch with error as before.

So, continuing to beat on this:

UVtools v3.5.6 Arm64 [macOS] Unable to run due one or more missing dependencies. Triggered by: libcvextern (OpenCV)

Can't find libcvextern in brew.

Continuing to look in the 'app', I found UVTools.app/Contents/MacOS/libcvextern.dylib so that's a plus though it seems it is not being loaded.

Just a quick bit of info: Brand new Mac Studio, just put on my desk yesterday, and going with fresh environment (ie; did not restore from TM or any other method). This can't get more bare than what I have done so far (well, iTerm, some browsers, and a bunch of brew installed items as I live 90% on a command line doing automation work).

Tried again:

% ./UVtools.sh
./UVtools.sh: line 3: 14040 Killed: 9               ./UVtools
System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'cvextern' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libcvextern, 0x0001): tried: 'libcvextern' (no such file), '/usr/local/lib/libcvextern' (no such file), '/usr/lib/libcvextern' (no such file), '/Users/drechsau/Desktop/UVtools.app/Contents/MacOS/libcvextern' (no such file)
   at Emgu.CV.CvInvoke.RedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
   at Emgu.CV.CvInvoke..cctor()
   --- End of inner exception stack trace ---
   at Emgu.CV.CvInvoke.Init()
   at UVtools.WPF.App.OnFrameworkInitializationCompleted() in /mnt/d/Tiago/Dropbox/Programming/C#/UVtools/UVtools.WPF/App.axaml.cs:line 281

Been busy and traveling tomorrow so don't have time to do my own build as of yet :(

sn4k3 commented 2 years ago

reports a couple of things then brings up a window.

Have you downgraded the ffmpeg?

mtaumike commented 2 years ago

I'll try that in just a bit, didn't see that further down the README as this is my first real 'upgrade' from Intel to the Apple Silicon type architecture(s).

Praktiker commented 1 year ago

Just to let you know, I can not start UVtools on my arm Mac Studio as well. Tried everything which is posted here. Does not even start if I try to open it from ./UVtools.app/Contents/MacOS/UVtools. Just to let you know. regards Praktiker.

sn4k3 commented 1 year ago

Just to let you know, I can not start UVtools on my arm Mac Studio as well. Tried everything which is posted here. Does not even start if I try to open it from ./UVtools.app/Contents/MacOS/UVtools. Just to let you know. regards Praktiker.

You need to use the x64 package for now

sn4k3 commented 1 year ago

Need help bulding latest libcvextern for mac arm64 / M1 Anyone with a M1/M2 machine can please download: libcvextern.sh, run with bash libcvextern.sh 4.6.0 Zip and upload the folder emgucv/libs/runtimes/osx/native ?

dpeet commented 1 year ago

@sn4k3 I ran that command it errored out, error below. Any suggestions? m1 macbook pro on Ventura btw


[ 74%] Building CXX object opencv/modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:80:6: warning: 'LIBAVCODEC_VERSION_INT' is not defined, evaluates to 0 [-Wundef]
#if (LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(54, 51, 100))
     ^
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:146:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('H', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:147:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('h', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:148:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('X', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:149:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('x', '2', '6', '4') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:150:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:151:7: error: use of undeclared identifier 'CODEC_ID_H264'; did you mean 'AV_CODEC_ID_H264'?
    { AV_CODEC_ID_H264, MKTAG('V', 'S', 'S', 'H') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H264
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:81:26: note: expanded from macro 'AV_CODEC_ID_H264'
#define AV_CODEC_ID_H264 CODEC_ID_H264
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:77:5: note: 'AV_CODEC_ID_H264' declared here
    AV_CODEC_ID_H264,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:153:7: error: use of undeclared identifier 'CODEC_ID_H263'; did you mean 'AV_CODEC_ID_H263'?
    { AV_CODEC_ID_H263, MKTAG('H', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:82:26: note: expanded from macro 'AV_CODEC_ID_H263'
#define AV_CODEC_ID_H263 CODEC_ID_H263
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:54:5: note: 'AV_CODEC_ID_H263' declared here
    AV_CODEC_ID_H263,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:154:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('H', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:155:7: error: use of undeclared identifier 'CODEC_ID_H263I'; did you mean 'AV_CODEC_ID_H263I'?
    { AV_CODEC_ID_H263I, MKTAG('I', '2', '6', '3') }, /* intel h263 */
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263I
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:84:27: note: expanded from macro 'AV_CODEC_ID_H263I'
#define AV_CODEC_ID_H263I CODEC_ID_H263I
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:70:5: note: 'AV_CODEC_ID_H263I' declared here
    AV_CODEC_ID_H263I,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:156:7: error: use of undeclared identifier 'CODEC_ID_H261'; did you mean 'AV_CODEC_ID_H261'?
    { AV_CODEC_ID_H261, MKTAG('H', '2', '6', '1') },
      ^~~~~~~~~~~~~~~~
      AV_CODEC_ID_H261
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:85:26: note: expanded from macro 'AV_CODEC_ID_H261'
#define AV_CODEC_ID_H261 CODEC_ID_H261
                         ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:53:5: note: 'AV_CODEC_ID_H261' declared here
    AV_CODEC_ID_H261,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:159:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('U', '2', '6', '3') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:160:7: error: use of undeclared identifier 'CODEC_ID_H263P'; did you mean 'AV_CODEC_ID_H263P'?
    { AV_CODEC_ID_H263P, MKTAG('v', 'i', 'v', '1') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_H263P
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:83:27: note: expanded from macro 'AV_CODEC_ID_H263P'
#define AV_CODEC_ID_H263P CODEC_ID_H263P
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:69:5: note: 'AV_CODEC_ID_H263P' declared here
    AV_CODEC_ID_H263P,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:162:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('F', 'M', 'P', '4') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:163:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('D', 'I', 'V', 'X') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:164:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('D', 'X', '5', '0') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:165:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:166:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('M', 'P', '4', 'S') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:167:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG('M', '4', 'S', '2') },
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg.cpp:50:
In file included from /git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:81:
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:168:7: error: use of undeclared identifier 'CODEC_ID_MPEG4'; did you mean 'AV_CODEC_ID_MPEG4'?
    { AV_CODEC_ID_MPEG4, MKTAG(0x04, 0, 0, 0) }, /* some broken avi use this */
      ^~~~~~~~~~~~~~~~~
      AV_CODEC_ID_MPEG4
/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv/modules/videoio/src/ffmpeg_codecs.hpp:86:27: note: expanded from macro 'AV_CODEC_ID_MPEG4'
#define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4
                          ^
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/codec_id.h:62:5: note: 'AV_CODEC_ID_MPEG4' declared here
    AV_CODEC_ID_MPEG4,
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make[2]: *** [opencv/modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] Error 1
make[1]: *** [opencv/modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [all] Error 2

#if [ "$1" == "cuda" ]; then
#    cp -rf bin/x64/*.so ../../../../libs/x64
#    cp -rf bin/x64/*.so.* ../../../../libs/x64
#fi

cd ..

Completed - Check for errors but also for libcvextern presence on emgucv-4.6.0/libs```
sn4k3 commented 1 year ago

Wierd maybe other dependency is missing, can you try to install: brew install libav and retry ?

dpeet commented 1 year ago

Error: libav has been disabled because it is not maintained upstream!
sn4k3 commented 1 year ago

ok try to open my libcvextern.sh file and change from "mini" to "full" does it work?

dpeet commented 1 year ago

different error!


[ 25%] Built target opencv_features2d
[ 25%] Building CXX object opencv/modules/freetype/CMakeFiles/opencv_freetype.dir/src/freetype.cpp.o
/Users/devonpeet/git_repos/personal/uvtools_build/emgucv-4.6.0/opencv_contrib/modules/freetype/src/freetype.cpp:57:10: fatal error: 'hb-ft.h' file not found
#include <hb-ft.h>
         ^~~~~~~~~
1 error generated.
make[2]: *** [opencv/modules/freetype/CMakeFiles/opencv_freetype.dir/src/freetype.cpp.o] Error 1
make[1]: *** [opencv/modules/freetype/CMakeFiles/opencv_freetype.dir/all] Error 2
make: *** [all] Error 2

#if [ "$1" == "cuda" ]; then
#    cp -rf bin/x64/*.so ../../../../libs/x64
#    cp -rf bin/x64/*.so.* ../../../../libs/x64
#fi

cd ..

Completed - Check for errors but also for libcvextern presence on emgucv-4.6.0/libs
sn4k3 commented 1 year ago

Maybe arm64 build is bug, i compiled the x64 on a VM just fine :/

dpeet commented 1 year ago

That sucks :/. let me know if you want me to try anything else!

sn4k3 commented 1 year ago

I will ask to the dev

sn4k3 commented 1 year ago

There is a missing include on openCV, please revert to "mini". Open: emgucv/opencv/modules/videoio/src/ffmpeg_codecs.hpp Find: #include <libavformat/avformat.h> Insert above: #include <libavcodec/version.h>

Recompile using "mini"

dpeet commented 1 year ago

Here it is @sn4k3 !

native.zip

sn4k3 commented 1 year ago

Nice! It would have work out of the box with Monterey, lets hope Monterey users don't have trouble with this library been compiled on a recent system linking recent dependencies. Thanks!

sn4k3 commented 1 year ago

@dpeet can you please test the build?

  1. Download: https://we.tl/t-lDg50PC9WB
  2. Extract to Desktop
  3. Open terminal
  4. Call:
  5. bash "$HOME/Desktop/UVtools.app/Contents/MacOS/UVtools.sh"

Try to make some operations. Does it work?

dpeet commented 1 year ago

Looks good to me!

I still had to right click open it first because it's unsigned (of course) but I opened it, opened a file, saved a new one, did a "repair issues" and generated an exposure time finder and all of that worked without issue

sn4k3 commented 1 year ago

Yes security must be disabled for UVtools. Will not be required if users use my auto installer script after this release. At least they now can use native arm64 instead x64

sn4k3 commented 1 year ago

@dpeet Can you delete your emgucv folder and re-run the compilation script? I think when you tried with "full" it included the ffmpeg into configuration.

Here my x64 build vs yours

image

"mini" should not include ffmpeg nor VTK, either configuration is wrong or the "full" test mess it up

dpeet commented 1 year ago

@sn4k3 so to generate that I deleted the emgucv folder, then had to run the compilation script to download all the submodule. I stopped it after all the folders were downloaded, added the "include" line, and the ran the script again. How would you like me to run it now?

sn4k3 commented 1 year ago

How would you like me to run it now?

Yes, with the "mini" build

dpeet commented 1 year ago

That’s what I ran the version above with, after deleting the folder

sn4k3 commented 1 year ago

That’s what I ran the version above with, after deleting the folder

kk, upload the libs when you can 👍

dpeet commented 1 year ago

@sn4k3 looks like the same result native.zip

sn4k3 commented 1 year ago

Looks like, i will go with that. Thanks

sn4k3 commented 1 year ago

It's released, you can now remove all your UVtools apps and test the auto installer with:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/sn4k3/UVtools/master/Scripts/install-uvtools.sh)"

That will handle dependencies and create a run script file on desktop to bypass apple codesign annoyance

dpeet commented 1 year ago

worked for me!

sn4k3 commented 1 year ago

It's perceptible that users must always run the 'run-uvtools' script in order to run the app?

dpeet commented 1 year ago

yup! I also use it to print a test part and the print was successful

sn4k3 commented 1 year ago

yup! I also use it to print a test part and the print was successful

Ok, did you notice any performance improvement over the emulated x64?

Praktiker commented 1 year ago

Did not work for me. No errors in terminal but when I start uvtools (macstudio, Monterey newest version) an error pops up. see screenshot: Ohne Titel 2

sn4k3 commented 1 year ago

Did not work for me. No errors in terminal but when I start uvtools (macstudio, Monterey newest version) an error pops up.

Did you install by bash -c "$(curl -fsSL https://raw.githubusercontent.com/sn4k3/UVtools/master/Scripts/install-uvtools.sh)" or by upgrade?

13tales commented 1 year ago

I also experience that "Unable to run, triggered by libcvextern" error, after installing via the script. Macbook Pro, macOS Monterey 12.5.

Update: Looks like running brew install opencv fixes it. I can run UV tools now! 🎉