-
-
Notifications
You must be signed in to change notification settings - Fork 563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot build on Arch [BUILD] #2319
Comments
Most errors appear to originate from breaking changes in Qt 6. Please use Qt 5.15.2, as that is the version the code was written for and also the version used for the CI builds. Some of the errors could also be caused by the compiler you use, which might be stricter in more recent versions than the one used in CI. Warnings are promoted to errors as well, so newly added warnings can cause problems, too. The "official" compilers are GCC 9.3.1 and Clang 10.0.1. |
How do I build using Qt 5.15.2 then? Do I need to specify some particular flags while compiling, or some other thing? |
IIRC, |
I tried various options but they didn't work. I found online that setting |
It does get picked up for me with Does it pick a wrong Qt that is installed? It's possible that Qt5_DIR doesn't have the highest precedence, although should come right after checking A couple of things I had to do in addition: Qt configure with |
Huh, I think it actually selected the wrong Qt I installed earlier (5.9). Interestingly, I have to run CMake twice to make it pick up the Qt directory for some reason:
The order of these commands doesn't appear to matter but neither works on its own with a new build directory. Odd. |
It still fails with the following log: olive.log |
What compiler do you use and what version of arch, the compiler and Qt exactly? |
Using the latest arch Docker image, after some back and forth I was stuck with an error "Python is required to build QtQml.".
pacman -Qacl 2.3.1-3 alsa-lib 1.2.11-1 alsa-topology-conf 1.2.5.1-3 alsa-ucm-conf 1.2.11-1 archlinux-keyring 20231222-1 argon2 20190702-5 attr 2.5.1-3 audit 3.1.2-1 avahi 1:0.8+r194+g3f79789-2 base 3-2 bash 5.2.021-1 binutils 2.42+r91+g6224493e457-1 brotli 1.1.0-1 bzip2 1.0.8-5 ca-certificates 20220905-1 ca-certificates-mozilla 3.96.1-1 ca-certificates-utils 20220905-1 cairo 1.18.0-2 coreutils 9.4-2 cryptsetup 2.6.1-3 curl 8.5.0-1 db5.3 5.3.28-5 dbus 1.14.10-1 default-cursors 2-1 device-mapper 2.03.22-2 double-conversion 3.3.0-1 e2fsprogs 1.47.0-1 egl-wayland 2:1.1.13-1 eglexternalplatform 1.1-2 expat 2.5.0-1 file 5.45-1 filesystem 2023.09.18-1 findutils 4.9.0-3 fontconfig 2:2.15.0-2 freetype2 2.13.2-1 fribidi 1.0.14-1 gawk 5.3.0-1 gc 8.2.6-1 gcc 14.1.1+r1+g43b730b9134-1 gcc-libs 14.1.1+r1+g43b730b9134-1 gdbm 1.23-2 gettext 0.22.4-1 glib2 2.78.3-1 glibc 2.38-7 gmp 6.3.0-1 gnupg 2.4.3-2 gnutls 3.8.2-1 gpgme 1.23.2-1 graphite 1:1.3.14-3 grep 3.11-1 guile 3.0.9-1 gzip 1.13-2 harfbuzz 8.4.0-2 hwdata 0.377-1 iana-etc 20231117-1 icu 74.2-1 iproute2 6.6.0-2 iptables 1:1.8.10-1 iputils 20231222-2 jansson 2.14-4 json-c 0.17-1 kbd 2.6.4-1 keyutils 1.6.3-2 kmod 31-1 krb5 1.21.2-2 libarchive 3.7.2-1 libassuan 2.5.6-1 libbpf 1.3.0-1 libcap 2.69-3 libcap-ng 0.8.4-1 libcups 1:2.4.8-1 libdaemon 0.14-5 libdatrie 0.2.13-4 libdecor 0.2.2-1 libdrm 2.4.120-1 libedit 20230828_3.1-1 libelf 0.190-1 libevdev 1.13.1-1 libevent 2.1.12-4 libffi 3.4.4-1 libgcrypt 1.10.3-1 libglvnd 1.7.0-1 libgpg-error 1.47-1 libgudev 238-1 libice 1.1.1-2 libidn2 2.3.4-3 libinput 1.25.0-1 libisl 0.26-2 libksba 1.6.5-1 libldap 2.6.6-2 libmnl 1.0.5-1 libmpc 1.3.1-1 libnetfilter_conntrack 1.0.9-1 libnfnetlink 1.0.2-1 libnftnl 1.2.6-1 libnghttp2 1.58.0-1 libnl 3.9.0-1 libnsl 2.0.1-1 libomxil-bellagio 0.9.3-4 libp11-kit 0.25.3-1 libpcap 1.10.4-1 libpciaccess 0.18.1-2 libpng 1.6.43-1 libpsl 0.21.2-1 libsasl 2.1.28-4 libseccomp 2.5.5-1 libsecret 0.21.2-1 libsm 1.2.4-1 libssh2 1.11.0-1 libsysprof-capture 45.1-1 libtasn1 4.19.0-1 libthai 0.1.29-3 libtirpc 1.3.4-1 libunistring 1.1-2 libusb 1.0.26-2 libutempter 1.2.1-4 libverto 0.3.2-4 libwacom 2.11.0-1 libx11 1.8.9-1 libxau 1.0.11-2 libxcb 1.17.0-1 libxcomposite 0.4.6-1 libxcrypt 4.4.36-1 libxdmcp 1.1.5-1 libxext 1.3.6-1 libxfixes 6.0.1-1 libxft 2.3.8-1 libxi 1.8.1-1 libxkbcommon 1.7.0-2 libxkbcommon-x11 1.7.0-2 libxml2 2.12.3-1 libxmu 1.2.1-1 libxrender 0.9.11-1 libxshmfence 1.3.2-1 libxt 1.3.0-1 libxxf86vm 1.1.5-1 licenses 20231215-1 linux-api-headers 6.4-1 llvm-libs 17.0.6-4 lm_sensors 1:3.6.0.r41.g31d1f125-2 lz4 1:1.9.4-1 lzo 2.10-5 make 4.4.1-2 md4c 0.5.2-1 mesa 1:24.0.6-2 mesa-utils 9.0.0-4 mpdecimal 4.0.0-2 mpfr 4.2.1-1 mtdev 1.1.6-2 ncurses 6.4_20230520-1 nettle 3.9.1-1 npth 1.6-4 openssl 3.2.0-1 p11-kit 0.25.3-1 pacman 6.0.2-8 pacman-mirrorlist 20231001-1 pam 1.5.3-3 pambase 20230918-1 pango 1:1.52.2-1 pciutils 3.10.0-1 pcre2 10.42-2 perl 5.38.2-1 pinentry 1.2.1-3 pixman 0.43.4-1 popt 1.19-1 procps-ng 4.0.4-2 psmisc 23.6-1 python 3.12.3-1 readline 8.2.007-1 sed 4.9-3 shadow 4.14.2-1 shared-mime-info 2.4-1 sqlite 3.44.2-2 systemd 255.2-1 systemd-libs 255.2-1 systemd-sysvcompat 255.2-1 tar 1.35-2 tpm2-tss 4.0.1-1 tslib 1.23-1 tzdata 2023d-1 util-linux 2.39.3-1 util-linux-libs 2.39.3-1 vi 1:070224-6 vulkan-headers 1:1.3.279-1 vulkan-icd-loader 1.3.279-1 wayland 1.22.0-1 wget 1.24.5-2 which 2.21-6 xcb-proto 1.17.0-2 xcb-util 0.4.1-1 xcb-util-image 0.4.1-2 xcb-util-keysyms 0.4.1-4 xcb-util-renderutil 0.3.10-1 xcb-util-wm 0.4.2-1 xdg-utils 1.2.1-1 xkeyboard-config 2.41-1 xorg-xprop 1.2.7-1 xorg-xset 1.2.5-1 xorgproto 2024.1-2 xz 5.4.5-1 zlib 1:1.3-2 zstd 1.5.5-1
The file Starting with a fresh Qt source folder fixed both problems, presumably because it got rid of the build artifacts and the configuration cache. I manually built some of the dependencies (OCIO, OIIO) and installed others via pacman (e.g. Boost, FFmpeg). gdk-pixbuf, an FFmpeg dep, logged some issue that also prevented Olive from building (something about an unresolved symbol I can't create an AppImage out of it though. linuxdeployqt requires |
I've followed what you did but some steps are different than mine. I rely on the guide on the website to build it, and that doesn't work. What you did, to me seems something slightly different but not abysmal (building a couple dependency from source, running a system update etc). |
I tried to reproduce your compile error by using the same OS and compiler but aside from a few annoyances I can successfully build Olive on Arch. I don't know why it fails on your machine. Can you delete the CMake cache, configure and build Olive again, and share the full log? Maybe CMake is picking the wrong Qt? Because there seem to be breaking changes that cause the compiler to complain about the visibility of class members for a Qt object but I don't see such errors on my end with Qt 5. |
There's another thing I didn't specify that came on my mind. |
When you clone the repo, you need to specify that you also want the submodules to be cloned: Or you can do it later by running: It is important that you leave the handling of submodules to Git because it will check out the correct versions for any version of Olive. If you simply clone the KDDockWidgets repo, it will pick the default branch which is currently |
Damn, I didn't kow about that. Now, build still fails, but at around 66%, with an error related to OCIO error log
Now, in my system I have OCIO version 2.3.2 (required 2.1.1) and OIIO version 2.5.10.1 (required 2.1.12). Could it be that these newer version cause problems because the recommended ones are older?
EDIT: there was no need to downgrade OIIO because it didn't give me any trouble. Downgrading only OCIO did the trick. I had an issue with OTIO, it's an issue I had in the past, and since I don't need it, I simply excluded it from Linking error log
Could this be related to the fact that I downgraded OCIO? Once again, could rebuilding OCIO solve this issue? |
You can try this patch to use OCIO 2.3: #2294 Downgrading OCIO and then continuing a build might not work. You should probably configure with CMake again, maybe even delete the entire Olive build folder, and start from scratch to avoid any issues caused by stale files. In case you want to compile OCIO yourself, this is the CMake configure command used in CI:
Note the last option which makes it fetch and build its own dependencies. |
It worked! |
Commit Hash
10ce5fb, but also many previous versions (I've not managed to build succesfully in months).
Platform
Arch Linux
Summary
Build stops at around ~35%, with a really long output. I can't figure out the issue and I can't build it.
I need to build it because I'm on Wayland with fractional scaling, and AppImage doesn't support Wayland (check #2320).
In my system right now I have an old version, the last one I managed to build successfully, but it no longer opens because it needs older dependencies. If there is a way to get the version of a manually installed binary, please tell me and I will provide you the latest commit that worked for me, so you can track back to what changed after it.
Additional Information / Output
olive.log
The text was updated successfully, but these errors were encountered: