Skip to content
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

Closed
gnolooo opened this issue Apr 17, 2024 · 17 comments
Closed

Cannot build on Arch [BUILD] #2319

gnolooo opened this issue Apr 17, 2024 · 17 comments
Labels
Building/Packaging Compile or install issues (excluding CI)

Comments

@gnolooo
Copy link

gnolooo commented Apr 17, 2024

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

@Simran-B
Copy link
Collaborator

Simran-B commented May 6, 2024

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.

@Simran-B Simran-B removed the Triage This issue is yet to be triaged label May 6, 2024
@gnolooo
Copy link
Author

gnolooo commented May 6, 2024

How do I build using Qt 5.15.2 then? Do I need to specify some particular flags while compiling, or some other thing?

@Simran-B
Copy link
Collaborator

Simran-B commented May 7, 2024

IIRC, -DQt5_DIR=/path/to/qt when configuring CMake for Olive. It seems that the path needs to point to the folder that contains Qt5Config.cmake but I'm not sure.

@gnolooo
Copy link
Author

gnolooo commented May 8, 2024

I tried various options but they didn't work. I found online that setting -DQt5_DIR=/path/to/qt should be correct, but it doesn't seem to work in this case.

@Simran-B
Copy link
Collaborator

Simran-B commented May 8, 2024

It does get picked up for me with cmake .. -G Ninja -DQt5_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5.
That folder contains Qt5Config.cmake.

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 CMAKE_PREFIX_PATH.


A couple of things I had to do in addition: Qt configure with -no-webp because of unresolved symbols (potentially a problem with CentOS 7), change qt_add_translation in app/CMakeLists.txt to qt5_add_translation, and manually point to the X11 Extras module: -DQt5X11Extras_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5X11Extras

@Simran-B
Copy link
Collaborator

Simran-B commented May 9, 2024

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:

cmake .. -G Ninja -DQt5_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5 -DQt5X11Extras_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5X11Extras
cmake .. -G Ninja -DQT_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5 -DQt5X11Extras_DIR=/root/olive/custom_qt_install/lib/cmake/Qt5X11Extras

The order of these commands doesn't appear to matter but neither works on its own with a new build directory. Odd.

@gnolooo
Copy link
Author

gnolooo commented May 9, 2024

It still fails with the following log: olive.log

@Simran-B
Copy link
Collaborator

What compiler do you use and what version of arch, the compiler and Qt exactly?

@gnolooo
Copy link
Author

gnolooo commented May 11, 2024

image

@Simran-B
Copy link
Collaborator

Using the latest arch Docker image, after some back and forth I was stuck with an error "Python is required to build QtQml.".
I also hit the following error when compiling Qt:

/usr/sbin/ld:QtCore.version:0: syntax error in VERSION script
collect2: error: ld returned 1 exit status
pacman -Q
acl 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

./configure -no-feature-sql -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtlottie -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtwinextras -opensource -confirm-license -release -nomake examples -nomake tests -no-use-gold-linker

The file ./qtbase/src/corelib/QtCore.version was empty.

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 g_once_init_leave_pointer), but the problem disappeared after running pacman -Syu. Olive compiled successfully (master branch, 0.2.0-10ce5fbd):

image

I can't create an AppImage out of it though. linuxdeployqt requires -unsupported-allow-new-glibc but terminates without providing an error message. appimagetool can copy the libs (-s deploy) but requires a hack to skip looking for the non-existent libgdk PNG loader shared library. It ignores Wayland it seems, and it fails to create an AppImage from the appdir because of a segfault in appstreamcli, even though I can run it manually with appstreamcli validate and fixed all reported errors in the metainfo file.

@gnolooo
Copy link
Author

gnolooo commented May 14, 2024

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).
In other words, I'm sorry but I don't see how the last message could help me.

@Simran-B
Copy link
Collaborator

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.

@gnolooo
Copy link
Author

gnolooo commented May 15, 2024

There's another thing I didn't specify that came on my mind.
When cloning the repo, the directories core and KDDockWidgets in olive/ext are empty; what I used to do is remove them and re-cloning both directories (olive-editor/core and KDAB/KDDockWidgets), to build them with olive.
From the logs I shared, did you see if the issues I had were related to this? Or is it irrelevant?

@Simran-B
Copy link
Collaborator

When you clone the repo, you need to specify that you also want the submodules to be cloned:
git clone --recurse-submodules https://github.com/olive-editor/olive

Or you can do it later by running: git submodule update --init --recursive

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 2.1, but KDDockWidgets does not support Qt 5 since version 1.6.

@gnolooo
Copy link
Author

gnolooo commented May 15, 2024

Damn, I didn't kow about that. Now, build still fails, but at around 66%, with an error related to OpenColorIO:

OCIO error log
[ 66%] Building CXX object app/CMakeFiles/libolive-editor.dir/task/conform/conform.cpp.o
/home/gnolooo/olive/app/render/renderer.cpp: In member function ‘bool olive::Renderer::GetColorContext(const olive::ColorTransformJob&, ColorContext*)’:
/home/gnolooo/olive/app/render/renderer.cpp:245:30: error: no matching function for call to ‘OpenColorIO_v2_3::GpuShaderDesc::getTexture(unsigned int&, const char*&, const char*&, unsigned int&, unsigned int&, OpenColorIO_v2_3::GpuShaderCreator::TextureType&, OpenColorIO_v2_3::Interpolation&)’
  245 |       shader_desc->getTexture(i, tex_name, sampler_name, width, height, channel, interpolation);
      |       ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gnolooo/olive/app/common/ocioutils.h:24,
                 from /home/gnolooo/olive/app/render/colorprocessor.h:25,
                 from /home/gnolooo/olive/app/render/renderer.h:30,
                 from /home/gnolooo/olive/app/render/renderer.cpp:21:
/usr/include/OpenColorIO/OpenColorIO.h:3538:18: note: candidate: ‘virtual void OpenColorIO_v2_3::GpuShaderDesc::getTexture(unsigned int, const char*&, const char*&, unsigned int&, unsigned int&, OpenColorIO_v2_3::GpuShaderCreator::TextureType&, OpenColorIO_v2_3::GpuShaderCreator::TextureDimensions&, OpenColorIO_v2_3::Interpolation&) const’
 3538 |     virtual void getTexture(unsigned index,
      |                  ^~~~~~~~~~
/usr/include/OpenColorIO/OpenColorIO.h:3538:18: note:   candidate expects 8 arguments, 7 provided
[ 66%] Building CXX object app/CMakeFiles/libolive-editor.dir/task/customcache/customcachetask.cpp.o
[ 66%] Building CXX object app/CMakeFiles/libolive-editor.dir/task/export/export.cpp.o
make[2]: *** [app/CMakeFiles/libolive-editor.dir/build.make:4312: app/CMakeFiles/libolive-editor.dir/render/renderer.cpp.o] Error 1
make[2]: *** Attesa per i processi non terminati....
make[1]: *** [CMakeFiles/Makefile2:3810: app/CMakeFiles/libolive-editor.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

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?

You mentioned you specifically rebuilt these 2 packages. Is there a way to rebuild them just for this project? Keeping the newer versions in the system, and using the old ones to build olive? Or should I downgrade them globally?

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 CMakeLists.txt.
All this almost did the trick; I managed to reach 100%, but then the linking process failed:

Linking error log
[100%] Linking CXX executable olive-editor
/usr/bin/ld: warning: libyaml-cpp.so.0.7, needed by /usr/lib/libOpenColorIO.so.2.1, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libOpenEXR-3_2.so.31, needed by /usr/lib/libOpenImageIO.so, may conflict with libOpenEXR-3_2.so.29
/usr/bin/ld: warning: libOpenColorIO.so.2.3, needed by /usr/lib/libOpenImageIO.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libIex-3_2.so.31, needed by /usr/lib/libOpenImageIO.so, may conflict with libIex-3_2.so.29
/usr/bin/ld: warning: libIlmThread-3_2.so.31, needed by /usr/lib/libOpenEXR-3_2.so.31, may conflict with libIlmThread-3_2.so.29
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getColorSpace(char const*) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::ostream_wrapper::write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getDefaultView(char const*) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::LookTransform::setSrc(char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::GetDoublePrecision() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::PackedImageDesc::PackedImageDesc(void*, long, long, long, OpenColorIO_v2_3::BitDepth, long, long, long)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::Write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `vtable for YAML::InvalidNode'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::DisplayViewTransform::setDisplay(char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::Write(YAML::_Tag const&)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::PackedImageDesc::PackedImageDesc(void*, long, long, long)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::size() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getNumDisplays() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::begin()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getNumColorSpaces() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getName() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::FileTransform::setInterpolation(OpenColorIO_v2_3::Interpolation)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::GetLoggingLevel()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getNumRoles() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getNumAliases() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getDisplay(int) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getDefaultDisplay() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getRoleName(int) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getTransform(OpenColorIO_v2_3::ColorSpaceDirection) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::set_null()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Processor::getDefaultCPUProcessor() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::end()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getView(char const*, int) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::~Emitter()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::FileTransform::setSrc(char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `typeinfo for YAML::BadConversion'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getNumLooks() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Context::setStringVar(char const*, char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::LookTransform::setDst(char const*)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `typeinfo for OpenColorIO_v2_3::Transform'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getCurrentContext() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getProcessor(std::shared_ptr<OpenColorIO_v2_3::Context const> const&, char const*, char const*) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::convert<bool>::decode(YAML::Node const&, bool&)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getColorSpaceFromFilepath(char const*) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::CreateFromFile(char const*)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::SetLoggingLevel(OpenColorIO_v2_3::LoggingLevel)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::DisplayViewTransform::setSrc(char const*)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::DisplayViewTransform::setView(char const*)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getNumViews(char const*) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::PrepareNode(YAML::EmitterNodeType::value)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::GetFloatPrecision() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getDisplayViewLooks(char const*, char const*) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getDisplayViewColorSpaceName(char const*, char const*) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::DisplayViewTransform::Create()'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::Write(bool)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::CPUProcessor::apply(OpenColorIO_v2_3::ImageDesc const&) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Load(std::istream&)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Context::createEditableCopy() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getColorSpaceNameByIndex(int) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::SetDoublePrecision(unsigned long)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::FileTransform::Create()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getFamily() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getAlias(unsigned long) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::Emitter()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getProcessor(std::shared_ptr<OpenColorIO_v2_3::Context const> const&, std::shared_ptr<OpenColorIO_v2_3::Transform const> const&, OpenColorIO_v2_3::TransformDirection) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `vtable for YAML::Exception'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::SetLocalValue(YAML::EMITTER_MANIP)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::IdentifyBuiltinColorSpace(std::shared_ptr<OpenColorIO_v2_3::Config const> const&, std::shared_ptr<OpenColorIO_v2_3::Config const> const&, char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::StartedScalar()'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `vtable for YAML::BadConversion'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::SetFloatPrecision(unsigned long)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::isColorSpaceLinear(char const*, OpenColorIO_v2_3::ReferenceSpaceType) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::getLookNameByIndex(int) const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::LookTransform::Create()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::GetProcessorToBuiltinColorSpace(std::shared_ptr<OpenColorIO_v2_3::Config const>, char const*, char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::good() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::LookTransform::setLooks(char const*)'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::Write(char)'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::PackedImageDesc::~PackedImageDesc()'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::Emitter::c_str() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::ColorSpace::getBitDepth() const'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `typeinfo for OpenColorIO_v2_3::Exception'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Processor::hasChannelCrosstalk() const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Config::filepathOnlyMatchesDefaultRule(char const*) const'
/usr/bin/ld: /usr/lib/libOpenColorIO.so.2.1: undefined reference to `YAML::detail::node_data::mark_defined()'
/usr/bin/ld: /usr/lib/libOpenImageIO.so: undefined reference to `OpenColorIO_v2_3::Processor::isNoOp() const'
collect2: error: ld returned 1 exit status
make[2]: *** [app/CMakeFiles/olive-editor.dir/build.make:886: app/olive-editor] Error 1
make[1]: *** [CMakeFiles/Makefile2:3787: app/CMakeFiles/olive-editor.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Could this be related to the fact that I downgraded OCIO? Once again, could rebuilding OCIO solve this issue?

@Simran-B
Copy link
Collaborator

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:

cmake \
    -DCMAKE_INSTALL_PREFIX="/usr/local" \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DOCIO_BUILD_APPS=OFF \
    -DOCIO_BUILD_NUKE=OFF \
    -DOCIO_BUILD_DOCS=OFF \
    -DOCIO_BUILD_TESTS=OFF \
    -DOCIO_BUILD_GPU_TESTS=OFF \
    -DOCIO_USE_HEADLESS=OFF \
    -DOCIO_BUILD_PYTHON=OFF \
    -DOCIO_BUILD_JAVA=OFF \
    -DOCIO_WARNING_AS_ERROR=OFF \
    -DOCIO_INSTALL_EXT_PACKAGES=ALL \
    ..

Note the last option which makes it fetch and build its own dependencies.

@gnolooo
Copy link
Author

gnolooo commented May 15, 2024

It worked!
I managed to successfully build and install olive. It now opens under Wayland without relying on XWayland, which was my main concern. Thank you very much.
Will test if export works.

@gnolooo gnolooo closed this as completed May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Building/Packaging Compile or install issues (excluding CI)
Projects
None yet
Development

No branches or pull requests

2 participants