olive-editor / olive

Free open-source non-linear video editor
https://olivevideoeditor.org/
GNU General Public License v3.0
8.27k stars 559 forks source link

[BUILD] Cannot build on Arch #2 #2162

Closed gnolooo closed 1 year ago

gnolooo commented 1 year ago

Commit Hash bf049f9

Platform Arch Linux

Summary When i try building Olive, it fails with a class QGridLayout error. Full output below.

Additional Information / Output

/home/gnolooo/olive/app/dialog/export/codec/av1section.cpp: In constructor ‘olive::AV1Section::AV1Section(int, QWidget*)’:
/home/gnolooo/olive/app/dialog/export/codec/av1section.cpp:42:11: error: ‘class QGridLayout’ has no member named ‘setMargin’
   42 |   layout->setMargin(0);
      |           ^~~~~~~~~
/home/gnolooo/olive/app/dialog/export/codec/av1section.cpp: In constructor ‘olive::AV1CRFSection::AV1CRFSection(int, QWidget*)’:
/home/gnolooo/olive/app/dialog/export/codec/av1section.cpp:107:11: error: ‘class QHBoxLayout’ has no member named ‘setMargin’
  107 |   layout->setMargin(0);
      |           ^~~~~~~~~
make[2]: *** [app/CMakeFiles/libolive-editor.dir/build.make:2099: app/CMakeFiles/libolive- 
editor.dir/dialog/export/codec/av1section.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3577: app/CMakeFiles/libolive-editor.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Lehmeiers commented 1 year ago

I have the same problem. Hopefully it will be solved in a timely manner.

[62/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/actionsearch/actionsearch.cpp.o
[63/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/autorecovery/autorecoverydialog.cpp.o
[64/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/color/colordialog.cpp.o
[65/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/configbase/configdialogbasetab.cpp.o
[66/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/configbase/configdialogbase.cpp.o
[67/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/diskcache/diskcachedialog.cpp.o
[68/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o
FAILED: app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o 
/usr/bin/c++ -DPA_HAS_JACK -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGLWIDGETS_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DUSE_OTIO -I/var/tmp/pamac-build-ralf/olive-git/src/olive/build/app -I/var/tmp/pamac-build-ralf/olive-git/src/olive/app -I/var/tmp/pamac-build-ralf/olive-git/src/olive/build/app/libolive-editor_autogen/include -I/usr/include/opentimelineio -I/var/tmp/pamac-build-ralf/olive-git/src/olive/ext -isystem /usr/include/ffmpeg4.4 -isystem /usr/include/OpenEXR -isystem /usr/include/Imath -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtOpenGL -isystem /usr/include/qt6/QtConcurrent -isystem /usr/include/qt6/QtOpenGLWidgets -isystem /usr/include/qt6/QtDBus -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -O2 -g -DNDEBUG -Wuninitialized -pedantic-errors -Wall -Wextra -Wno-unused-parameter -Wshadow -fPIC -std=c++17 -MD -MT app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o -MF app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o.d -o app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o -c /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp
/var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp: In Konstruktor »olive::AV1Section::AV1Section(int, QWidget*)«:
/var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp:42:11: Fehler: »class QGridLayout« hat kein Element namens »setMargin«
   42 |   layout->setMargin(0);
      |           ^~~~~~~~~
/var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp: In Konstruktor »olive::AV1CRFSection::AV1CRFSection(int, QWidget*)«:
/var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp:107:11: Fehler: »class QHBoxLayout« hat kein Element namens »setMargin«
  107 |   layout->setMargin(0);
      |           ^~~~~~~~~
[69/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/export/codec/cineformsection.cpp.o
[70/402] Building CXX object app/CMakeFiles/libolive-editor.dir/libolive-editor_autogen/mocs_compilation.cpp.o
ninja: build stopped: subcommand failed.
==> FEHLER: Ein Fehler geschah in build().
    Breche ab...

Mein System:

[sudo] Passwort für ralf: 
System:
  Kernel: 5.10.166-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
    v: 4.18.0 dm: LightDM v: 1.32.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop System: Dell product: OptiPlex 360 v: N/A serial: <filter>
    Chassis: type: 6 serial: <filter>
  Mobo: Dell model: 0T656F v: A01 serial: <filter> BIOS: Dell v: A07
    date: 06/18/2012
CPU:
  Info: dual core model: Pentium E5200 bits: 64 type: MCP smt: <unsupported>
    arch: Penryn rev: 6 cache: L1: 128 KiB L2: 2 MiB
  Speed (MHz): avg: 1664 high: 1711 min/max: N/A volts: 1.2 V
    ext-clock: 800 MHz cores: 1: 1711 2: 1618 bogomips: 9977
  Flags: ht lm nx pae sse sse2 sse3 ssse3
Graphics:
  Device-1: NVIDIA GT218 [GeForce 210] driver: nouveau v: kernel arch: Tesla
    pcie: speed: 2.5 GT/s lanes: 16 ports: active: DVI-I-1 empty: HDMI-A-1,VGA-1
    bus-ID: 01:00.0 chip-ID: 10de:0a65 class-ID: 0300 temp: 39.0 C
  Device-2: Microsoft LifeCam HD-5000 type: USB
    driver: snd-usb-audio,uvcvideo bus-ID: 2-1:2 chip-ID: 045e:076d
    class-ID: 0102
  Display: x11 server: X.Org v: 21.1.6 compositor: xfwm v: 4.18.0 driver: X:
    loaded: modesetting alternate: fbdev,vesa dri: nouveau gpu: nouveau
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1680x1050 s-dpi: 96 s-size: 444x277mm (17.48x10.91")
    s-diag: 523mm (20.6")
  Monitor-1: DVI-I-1 model: LG (GoldStar) E2210 serial: <filter>
    res: 1680x1050 hz: 60 dpi: 90 size: 474x296mm (18.66x11.65")
    diag: 552mm (21.7") modes: max: 1680x1050 min: 720x400
  API: OpenGL v: 3.3 Mesa 22.3.4 renderer: NVA8 direct-render: Yes
Audio:
  Device-1: Intel NM10/ICH7 Family High Definition Audio vendor: Dell
    driver: snd_hda_intel bus-ID: 2-1:2 v: kernel chip-ID: 045e:076d
    bus-ID: 00:1b.0 class-ID: 0102 chip-ID: 8086:27d8 class-ID: 0403
  Device-2: NVIDIA High Definition Audio driver: snd_hda_intel v: kernel
    pcie: speed: 2.5 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:0be3
    class-ID: 0403
  Device-3: Microsoft LifeCam HD-5000 type: USB
    driver: snd-usb-audio,uvcvideo
  Sound API: ALSA v: k5.10.166-1-MANJARO running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.65 running: yes
Network:
  Device-1: Broadcom NetLink BCM5784M Gigabit Ethernet PCIe vendor: Dell
    driver: tg3 v: kernel pcie: speed: 2.5 GT/s lanes: 1 port: N/A
    bus-ID: 02:00.0 chip-ID: 14e4:1698 class-ID: 0200
  IF: enp2s0 state: down mac: <filter>
  Device-2: Realtek RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
    driver: 8139too v: 0.9.28 port: cc00 bus-ID: 03:00.0 chip-ID: 10ec:8139
    class-ID: 0200
  IF: enp3s0 state: unknown speed: 100 Mbps duplex: full mac: <filter>
Drives:
  Local Storage: total: 931.51 GiB used: 758.2 GiB (81.4%)
  ID-1: /dev/sda vendor: Samsung model: SSD 860 QVO 1TB size: 931.51 GiB
    speed: <unknown> type: SSD serial: <filter> rev: 2B6Q scheme: GPT
Partition:
  ID-1: / size: 105.18 GiB used: 82.65 GiB (78.6%) fs: ext4 dev: /dev/sda2
  ID-2: /boot size: 973.4 MiB used: 150.8 MiB (15.5%) fs: ext4
    dev: /dev/sda1
  ID-3: /home size: 779.45 GiB used: 670.34 GiB (86.0%) fs: ext4
    dev: /dev/sda3
Swap:
  ID-1: swap-1 type: partition size: 30.12 GiB used: 5.07 GiB (16.8%)
    priority: -2 dev: /dev/sda4
Unmounted:
  Message: No unmounted partitions found.
Sensors:
  System Temperatures: cpu: 42.0 C mobo: N/A gpu: nouveau temp: 39.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 196 Uptime: 2h 32m wakeups: 0 Memory: 3.77 GiB
  used: 3.38 GiB (89.5%) Init: systemd v: 252 default: graphical Compilers:
  gcc: 12.2.1 clang: 15.0.7 Packages: 2449 pm: pacman pkgs: 2437 pm: flatpak
  pkgs: 12 Shell: Bash (sudo) v: 5.1.16 running-in: yakuake inxi: 3.3.25
Lehmeiers commented 1 year ago

I have the same problem. Hopefully it will be solved in a timely manner.

[62/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/actionsearch/actionsearch.cpp.o [63/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/autorecovery/autorecoverydialog.cpp.o [64/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/color/colordialog.cpp.o [65/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/configbase/configdialogbasetab.cpp.o [66/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/configbase/configdialogbase.cpp.o [67/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/diskcache/diskcachedialog.cpp.o [68/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o FAILED: app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o /usr/bin/c++ -DPA_HAS_JACK -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGLWIDGETS_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DUSE_OTIO -I/var/tmp/pamac-build-ralf/olive-git/src/olive/build/app -I/var/tmp/pamac-build-ralf/olive-git/src/olive/app -I/var/tmp/pamac-build-ralf/olive-git/src/olive/build/app/libolive-editor_autogen/include -I/usr/include/opentimelineio -I/var/tmp/pamac-build-ralf/olive-git/src/olive/ext -isystem /usr/include/ffmpeg4.4 -isystem /usr/include/OpenEXR -isystem /usr/include/Imath -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtWidgets -isystem /usr/include/qt6/QtOpenGL -isystem /usr/include/qt6/QtConcurrent -isystem /usr/include/qt6/QtOpenGLWidgets -isystem /usr/include/qt6/QtDBus -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -O2 -g -DNDEBUG -Wuninitialized -pedantic-errors -Wall -Wextra -Wno-unused-parameter -Wshadow -fPIC -std=c++17 -MD -MT app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o -MF app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o.d -o app/CMakeFiles/libolive-editor.dir/dialog/export/codec/av1section.cpp.o -c /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp: In Konstruktor »olive::AV1Section::AV1Section(int, QWidget)«: /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp:42:11: Fehler: »class QGridLayout« hat kein Element namens »setMargin« 42 | layout->setMargin(0); | ^~~~~ /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp: In Konstruktor »olive::AV1CRFSection::AV1CRFSection(int, QWidget)«: /var/tmp/pamac-build-ralf/olive-git/src/olive/app/dialog/export/codec/av1section.cpp:107:11: Fehler: »class QHBoxLayout« hat kein Element namens »setMargin« 107 | layout->setMargin(0); | ^~~~~ [69/402] Building CXX object app/CMakeFiles/libolive-editor.dir/dialog/export/codec/cineformsection.cpp.o [70/402] Building CXX object app/CMakeFiles/libolive-editor.dir/libolive-editor_autogen/mocs_compilation.cpp.o ninja: build stopped: subcommand failed. ==> FEHLER: Ein Fehler geschah in build(). Breche ab...

ThomasWilshaw commented 1 year ago

What version of QT are you using?

itsmattkc commented 1 year ago

Looks like you're using Qt 6. We still don't fully support that, stick to Qt 5 for now.

gnolooo commented 1 year ago

Oh ok, thanks. Should I build olive with some flags to force it to use Qt5?

ThomasWilshaw commented 1 year ago

I've not built on Linux myself before but it should just he a case of pointing CMake to QT 5 rather than QT 6. @elsandosgrande are you able to advise?

elsandosgrande commented 1 year ago

I can't really, sorry 😅. I don't recall whether or not Olive could build successfully with Qt6 a month or two ago when I was still using Ubuntu and Gentoo hasn't finished packaging Qt6 yet, so yeah… I'll look into it sometime later, since it should be doable, but I can't make any promises on account of Gentoo not having Qt6 available by default (and me not having tried to build Olive in over a month 😅).

ThomasWilshaw commented 1 year ago

I can't really, sorry 😅. I don't recall whether or not Olive could build successfully with Qt6 a month or two ago when I was still using Ubuntu and Gentoo hasn't finished packaging Qt6 yet, so yeah… I'll look into it sometime later, since it should be doable, but I can't make any promises on account of Gentoo not having Qt6 available by default (and me not having tried to build Olive in over a month 😅).

I was wondering if you new which CMake flag you needed to pass to point Olive to a particular version of QT (5 rather than 6)

elsandosgrande commented 1 year ago

I know. I've never tried it and, whilst I can look through documentation and such online, I can't test it myself until the Qt maintainers finish packaging Qt6, which will possibly only be once there are no build failures in the whole repository caused by Qt6.

Edit

I could try building Qt6 locally, but, after not getting anywhere with Qt5 last year, I don't feel inclined to do so.

parona-source commented 1 year ago

Afaik with how its setup in olive CMakeLists.txt there isnt any way to configure it. Other than of course removing Qt6 so that the check fails and it falls back on Qt5. It would need to be patched to be an explicit choice instead.

itsmattkc commented 1 year ago

This is now an option in our CMake. It will default to Qt 5 unless configured with -DBUILD_QT6=ON.