scenefx icon indicating copy to clipboard operation
scenefx copied to clipboard

[BUG] SceneFX won't recognise that wlroots is installed on Chimera linux

Open Bikoil opened this issue 1 year ago • 10 comments

What I'm Doing

I'm attempting to compiling SwayFX, But since SwayFX requires SceneFX, I am currently trying to compile SceneFX.

Main Issue

I installed all dependencies (including wlroots and wlroots-devel), and when attempting to do meson setup build the following output is recieved

The Meson build system
Version: 1.5.1
Source dir: /home/bik/GIT/scenefx
Build dir: /home/bik/GIT/scenefx/build
Build type: native build
Project name: scenefx
Project version: 0.1
C compiler for the host machine: cc (clang 18.1.8 "clang version 18.1.8")
C linker for the host machine: cc ld.lld 18.1.8
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Winit-self: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: NO 
Compiler for C supports arguments -Wendif-labels: YES 
Compiler for C supports arguments -Wstrict-aliasing=2: YES 
Compiler for C supports arguments -Woverflow: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Walloca: YES 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES 
Found pkg-config: YES (/usr/bin/pkg-config) 2.3.0
Run-time dependency wayland-server found: YES 1.23.1
Found CMake: /usr/bin/cmake (3.30.3)
Run-time dependency wlroots found: NO (tried pkgconfig and cmake)

meson.build:103:16: ERROR: Neither a subproject directory nor a wlroots.wrap file was found.

A full log can be found at /home/bik/GIT/scenefx/build/meson-logs/meson-log.txt

Here is the meson-log.txt

OS info:

OS: Chimera Linux x86_64 Kernel: Linux 6.6.48-0-generic Meson version: 1.5.1 Clang version: 18.1.18

Bikoil avatar Sep 11 '24 10:09 Bikoil

Which wlroots version do you have installed?

ErikReider avatar Sep 11 '24 16:09 ErikReider

Not sure why this case would come up but for now you can clone wlroots 0.17.4 into a subprojects directory in scenefx, which should allow you to compile it.

WillPower3309 avatar Sep 11 '24 16:09 WillPower3309

Not sure why this case would come up but for now you can clone wlroots 0.17.4 into a subprojects directory in scenefx, which should allow you to compile it.

This did infact compile scenefx with no issues, the only problem right now is that SwayFX cannot recognise the scenefx dependency?!

The Meson build system
Version: 1.5.1
Source dir: /home/bik/GIT/swayfx
Build dir: /home/bik/GIT/swayfx/build
Build type: native build
Project name: sway
Project version: 0.4
C compiler for the host machine: cc (clang 18.1.8 "clang version 18.1.8")
C linker for the host machine: cc ld.lld 18.1.8
Host machine cpu family: x86_64
Host machine cpu: x86_64
Neither a subproject directory nor a scenefx.wrap file was found.
Subproject  scenefx is buildable: NO (disabling)
Found pkg-config: YES (/usr/bin/pkg-config) 2.3.0
Found CMake: /usr/bin/cmake (3.30.3)
Run-time dependency scenefx found: NO (tried pkgconfig and cmake)

meson.build:44:10: ERROR: Dependency "scenefx" not found, tried pkgconfig and cmake

A full log can be found at /home/bik/GIT/swayfx/build/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

Here is the meson-log.txt again Idk why this would happen.

Bikoil avatar Sep 11 '24 18:09 Bikoil

Fixed it! I cloned scenefx to subprojects (with wlroots 0.17) In the swayfx folder, Now works just fine!

Bikoil avatar Sep 11 '24 18:09 Bikoil

I will be re-opening this issue, this time it's because neither scenefx or swayfx recognise wlroots 0.17 installed on the system, I'm trying to package both swayfx and scenefx in chimera linux, and that means that building wlroots from source wont be a viable option for this proedure for this.

The Meson build system
Version: 1.5.2
Source dir: /builddir/scenefx-0.1
Build dir: /builddir/scenefx-0.1/build
Build type: native build
Project name: scenefx
Project version: 0.1
C compiler for the host machine: clang (clang 18.1.8 "clang version 18.1.8")
C linker for the host machine: clang ld.lld 18.1.8
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Winit-self: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: NO 
Compiler for C supports arguments -Wendif-labels: YES 
Compiler for C supports arguments -Wstrict-aliasing=2: YES 
Compiler for C supports arguments -Woverflow: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Walloca: YES 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES 
Found pkg-config: YES (/usr/bin/pkg-config) 2.3.0
Run-time dependency wayland-server found: YES 1.23.1
Neither a subproject directory nor a wlroots.wrap file was found.
Subproject  wlroots is buildable: NO (disabling)
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency wlroots found: NO (tried pkgconfig)

meson.build:103:10: ERROR: Dependency "wlroots" not found, tried pkgconfig

A full log can be found at /builddir/scenefx-0.1/build/meson-logs/meson-log.txt
0:00:06.403 => A failure has occurred!
0:00:06.403 => Stack trace:
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/build.py:504: in function 'build'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/build.py:689: in function '_build'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/build.py:278: in function 'invoke_configure'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/build.py:150: in function 'run_pkg_func'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/build_style/meson.py:5: in function 'configure'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/util/meson.py:81: in function 'configure'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/template.py:1819: in function 'do'
0:00:06.408 =>   /home/bik/GIT/cports/src/cbuild/core/chroot.py:829: in function 'enter'
0:00:06.408 => Raised exception:
0:00:06.408 =>   CalledProcessError: command '/usr/bin/bwrap --unshare-all --hostname cbuild --ro-bind /home/bik/GIT/cports/bldroot / --bind /home/bik/GIT/cports/bldroot/builddir /builddir --ro-bind /home/bik/GIT/cports/bldroot/destdir /destdir --ro-bind /home/bik/GIT/cports/sources /sources --dev /dev --proc /proc --tmpfs /run --tmpfs /tmp --tmpfs /var/tmp --new-session --die-with-parent --bind /home/bik/GIT/cports/cbuild_cache /cbuild_cache --uid 1337 --gid 1337 --chdir /builddir/scenefx-0.1 --ro-bind-data 5 /tmp/cbuild-lld-args linux64 -- meson setup --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/bin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --buildtype=plain --auto-features=auto --wrap-mode=nodownload -Ddefault_library=both -Dwerror=false -Db_staticpic=true -Dpython.bytecompile=0 -Db_lto=true -Db_lto_mode=thin . build' failed with exit code 1
0:00:06.408 => Phase 'configure' failed for package 'scenefx'.

Bikoil avatar Sep 24 '24 21:09 Bikoil

What's the output when you run this pkgconf --list-all | grep -i wlroots?

ErikReider avatar Sep 24 '24 23:09 ErikReider

What's the output when you run this pkgconf --list-all | grep -i wlroots?

In the build env, i got this output: wlroots-0.17 wlroots-0.17 - Wayland compositor library

Bikoil avatar Sep 25 '24 12:09 Bikoil

Found the issue! apparently... its in the naming?!? at this line of the meson.build

wlroots = dependency('wlroots',

renaming wlroots to wlroots-0.17 seems to have fixed it

wlroots = dependency('wlroots-0.17',

I can probably fork both scenefx and swayfx with this specific line fix, or you could make releases/branches with that line fix, so for example 0.4-chimera, let me know what you'd prefer :)

Bikoil avatar Sep 25 '24 12:09 Bikoil

Interesting! I hope you don't mind if I take a day or two to validate this! Just want to ensure it doesn't break things for other distros

WillPower3309 avatar Sep 27 '24 02:09 WillPower3309

Absolutely no problem :p take ya time

Bikoil avatar Sep 27 '24 07:09 Bikoil

closed as discussed in https://github.com/wlrfx/scenefx/pull/64

WillPower3309 avatar Oct 15 '24 19:10 WillPower3309

Oh yea i forgot to close it lol ty will

Bikoil avatar Oct 16 '24 18:10 Bikoil