mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.5k stars 1.28k forks source link

Missing top waveforms after compile on apple M1 #10651

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: s00500 Date: 2022-01-29T20:34:59Z Status: Invalid Importance: Undecided Launchpad Issue: lp1959495 Attachments: [Screenshot 2022-01-29 at 21.33.51.png](https://bugs.launchpad.net/bugs/1959495/+attachment/5558216/+files/Screenshot 2022-01-29 at 21.33.51.png)


Hi all, This is mainly a simple question, not really a bug (if this is the wrong place, sorry, did not know any better)

I have followed the wiki page about compilation on macOS and managed to get a successful build after some dependency hunting.

Everything seems to be working just fine, except the top waveforms, these do not show. The waveforms in the decks work just fine. (See attached screenshot)

Could it be that I just missed a dependency ? like a qt plugin or such ?

I get these messages in the logs:
critical [Main] <QNSWindow: 0x16d80dee0; contentView=<QNSView: 0x1665f9a90; QCocoaWindow(0x162bac110, window=QWidgetWindow(0x16460f080, name="QGLWidgetClassWindow"))>> has active key-value observers (KVO)! These will stop working now that the window is recreated, and will result in exceptions when the observers are removed. Break in QCocoaWindow::recreateWindowIfNeeded to debug.

(But I also get them when launching v2.3.1 from the releases)

Here is the output generated by cmake when configuring:

❯ cmake -DCMAKE_BUILD_TYPE=Debug -DDEBUG_ASSERTIONS_FATAL=ON -DCMAKE_PREFIX_PATH=/opt/homebrew/Cellar/qt@5/5.15.2_1/ -DOPENSSL_ROOT_DIR=/opt/homebrew/Cellar/openssl@1.1/1.1.1m/ -S . -B ./build -- Optimization level: portable -- Could NOT find ccache (missing executable) -- Support for ccache: OFF -- Enabling QML Debugging! This poses a security risk as Mixxx will open a TCP port for debugging -- git version: v0.0.0 normalized to 0.0.0 -- Version: 1.6.0 -- Performing Test HAVE_THREAD_SAFETY_ATTRIBUTES -- failed to compile -- Performing Test HAVE_STD_REGEX -- success -- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile -- Performing Test HAVE_POSIX_REGEX -- success -- Performing Test HAVE_STEADY_CLOCK -- success -- Could NOT find DjInterop (missing: DjInterop_LIBRARY DjInterop_INCLUDE_DIR) (Required is at least version "0.16.0") -- Building libdjinterop sources (with embedded SQLite) fetched from GitHub -- Could NOT find KeyFinder (missing: KeyFinder_LIBRARY KeyFinder_INCLUDE_DIR) (Required is at least version "2.2.6") -- Could NOT find MP4 (missing: MP4_LIBRARY MP4_INCLUDE_DIR) -- Could NOT find MP4v2 (missing: MP4v2_LIBRARY MP4v2_INCLUDE_DIR) -- Searching for FFMPEG components -- - libavcodec 58.134.100 found. -- - libavformat 58.76.100 found. -- - libavdevice 58.13.100 found. -- - libavutil 56.70.100 found. -- - libavfilter 7.110.100 found. -- - libswscale 5.9.100 found. -- - libswresample 3.9.100 found. -- Could NOT find HSS1394 (missing: HSS1394_LIBRARY HSS1394_INCLUDE_DIR) -- Could NOT find lilv (missing: lilv_LIBRARY lilv_INCLUDE_DIR) -- Could NOT find Shoutidjc (missing: Shoutidjc_LIBRARY Shoutidjc_INCLUDE_DIR) -- Using internal libshout-idjc -- Looking for _GNU_SOURCE -- Looking for _GNU_SOURCE - not found -- Could NOT find OpusFile (missing: OpusFile_LIBRARY OpusFile_INCLUDE_DIR) -- Could NOT find MAD (missing: MAD_LIBRARY MAD_INCLUDE_DIR) -- Could NOT find ID3Tag (missing: ID3Tag_LIBRARY ID3Tag_INCLUDE_DIR) -- Could NOT find Modplug (missing: Modplug_LIBRARY Modplug_INCLUDE_DIR) -- Could NOT find hidapi (missing: hidapi_LIBRARY hidapi_INCLUDE_DIR hidapi_VERSION) (Required is at least version "0.10.1") -- Linking internal libhidapi statically -- Found wavpack: /opt/homebrew/lib/libwavpack.dylib -- Configuring done -- Generating done -- Build files have been written to: /Users/lb/Desktop/tmp/mixxx/build

Thanks for any input, and AWESOME WORK on this thing, just getting into playing with it more :-)

(The build was directly from master: d0449aebd9744acedff3f59ebf6bec13bce0bbd0)

mixxxbot commented 2 years ago

Commented by: s00500 Date: 2022-01-29T20:34:59Z Attachments: [Screenshot 2022-01-29 at 21.33.51.png](https://bugs.launchpad.net/mixxx/+bug/1959495/+attachment/5558216/+files/Screenshot 2022-01-29 at 21.33.51.png)

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2022-01-29T20:51:46Z


Do not use dependencies from Homebrew. This is unsupported. Build instructions are at https://github.com/mixxxdj/mixxx/wiki/Compiling%20on%20macOS

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2022-01-29T20:55:57Z


Building on ARM macOS is not supported. https://github.com/mixxxdj/mixxx/pull/4432 works with ARM macOS though. You are welcome to revive that pull request if you are interested in getting that working.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2022-01-29T21:48:27Z


You can find an experimental arm64 build here: https://github.com/daschuer/mixxx/actions/runs/1701720430 "macOS DMG" on the bottom of the page. A GitHub login is required.

It was build with the vcpkg environment mixxx-deps-2.4-arm64-osx-min11.0-85f2803 you can find here: https://github.com/daschuer/vcpkg/actions/runs/1698271584

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2022-01-29T22:09:21Z


macOS ARM builds with Qt5 are not and will not be supported. Only cross compiling x86-64 builds from ARM.

mixxxbot commented 2 years ago

Commented by: s00500 Date: 2022-01-31T21:24:58Z


Hey all, thanks for the nice information

I was not sure where else to collect dependencies other than brew. The build env script worked fine on my intel mac but not on the arm one.

I did a build on intel today and everything worked perfectly fine, so the guide is up to date and working :-)

After plaing a little with the build I did on arm I found that the gui was acting weird, as I could not move fx knobs, they would stutter, not entirely sure if it was the guis fault or the effects that did cause the hangs... mixer seemed to work better than adjusting fx... did also try the --qml flag, everything there worked a lot better...

Never mind the broken build though...

@Daniel: the build you linked reports "this application is damaged" on macOS.. so no luck either

@Be: can you elaborate a little more in your last comment ? what are the reasons for this ? is the gui visible using --qml the future ?

Thanks all for the responses! Great work! Consider this question fully resolved

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2022-02-01T06:53:01Z


this application is damaged

This is expected, because of the missing signing on my private repository.

You need to xattr -cr mixxx.app to get around the message.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2022-02-01T06:53:52Z


Please report if thus works for you.

mixxxbot commented 2 years ago

Commented by: s00500 Date: 2022-02-01T07:29:52Z


Yes, perfect, this works great! I will try to run a build with your suggested build env sometime this week.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2022-02-01T07:40:54Z


The linked build environment works only for crosscompileing on an Intel device. However you can build it yourself using my branch and the commands found in .github/workflows/build Please ping me on Zulip for further discussion.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2022-02-01T08:52:17Z


ARM builds will not be supported with Qt5 because we do not have the capacity to maintain even more technical debt on macOS. We are stuck with an old version of Qt5, 5.12.4 which is not supported upstream, neither by Qt nor vcpkg. We have had to backport various fixes and hacks just to keep Mixxx working on macOS at all which has taken many months of work on its own. Qt is not supporting ARM macOS builds for Qt5. We can't support even more hacks that upstream is not supporting.

It is very good to hear that the experimental QML GUI is working much better on macOS. This is required so we can move to Qt6 and drop the technical debt holding us to an old version of Qt5.

https://github.com/mixxxdj/mixxx/pull/4432 is already working to cross compile x86-64 builds from ARM macOS. Refer to the BUILDING.md in that branch for instructions.

mixxxbot commented 2 years ago

Commented by: s00500 Date: 2022-02-02T12:47:23Z


Ok good to know, thanks for the details :-)

mixxxbot commented 2 years ago

Issue closed with status Invalid.