AhoyISki / Firedecor

An advanced window decoration plugin for the wayfire window manager.
76 stars 7 forks source link

build failed because wayfire dependency not found... #27

Open LOLZSICKA opened 11 months ago

LOLZSICKA commented 11 months ago

im literally running these commands via konsole on wayfire and its not finding wayfire :skull:

Main binary: /usr/bin/python3
Build Options: 
Python system: Linux
The Meson build system
Version: 1.2.0
Source dir: /home/lolzsicka/Firedecor
Build dir: /home/lolzsicka/Firedecor/build
Build type: native build
Project name: firedecor
Project version: 0.1
-----------
Detecting compiler via: `cc --version` -> 0
stdout:
cc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: cc -E -dM -
-----
-----------
Detecting linker via: `cc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/cc45vjWF.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
-----------
Detecting linker via: `gcc-ar --version` -> 0
stdout:
GNU ar (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
-----------
Detecting compiler via: `c++ --version` -> 0
stdout:
c++ (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: c++ -E -dM -
-----
-----------
Detecting linker via: `c++ -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQ11JaE.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckcpp.exe
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39
-----------
Detecting compiler via: `cc --version` -> 0
stdout:
cc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: cc -E -dM -
-----
-----------
Detecting linker via: `cc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccYCjFBx.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the build machine: cc ld.bfd 2.39
-----------
Detecting linker via: `gcc-ar --version` -> 0
stdout:
GNU ar (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
-----------
Detecting compiler via: `c++ --version` -> 0
stdout:
c++ (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: c++ -E -dM -
-----
-----------
Detecting linker via: `c++ -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKYYwjb.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckcpp.exe
C++ compiler for the build machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the build machine: c++ ld.bfd 2.39
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Pkg-config binary for 1 is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Determining dependency 'wayfire' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
-----------
Called: `/usr/bin/pkg-config --modversion wayfire` -> 1
stderr:
Package wayfire was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayfire.pc'
to the PKG_CONFIG_PATH environment variable
No package 'wayfire' found
-----------
CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /usr/bin/cmake (3.27.6)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['/usr/bin/cmake']) in /home/lolzsicka/Firedecor/build/meson-private/__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/lolzsicka/Firedecor/build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /home/lolzsicka/Firedecor/build/meson-private/cmake_wayfire with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/lolzsicka/Firedecor/build/meson-private/cmake_wayfire/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['/', '/usr', '/usr/local']
  -- CMake root:             /usr/share/cmake-3.27
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share']
Preliminary CMake check failed. Aborting.
Run-time dependency wayfire found: NO (tried pkgconfig and cmake)

meson.build:16:13: ERROR: Dependency "wayfire" not found, tried pkgconfig and cmake
LOLZSICKA commented 11 months ago

wayfire is there... but it just looks over it? weird error that shouldnt be occuring

ItsTerm1n4l commented 11 months ago

So the problem is probably not having a wayfire.pc file at /usr/share/pkgconfig/, I had a similar issue on my Pi 4, this is the way to fix it. export PKG_CONFIG_PATH=/usr/lib/x86_x64-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH before building

cd wayfire-plugins-extra
meson build --prefix=/usr --buildtype=release
ninja -C build && sudo ninja -C build install

(I think :)

LOLZSICKA commented 10 months ago

So the problem is probably not having a wayfire.pc file at /usr/share/pkgconfig/, I had a similar issue on my Pi 4, this is the way to fix it. export PKG_CONFIG_PATH=/usr/lib/x86_x64-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH before building

cd wayfire-plugins-extra
meson build --prefix=/usr --buildtype=release
ninja -C build && sudo ninja -C build install

(I think :)

i checked my files for a wayfire.pc and there is none, how do i make one in the directory the builder checks in? imma go ahead and try to build wayfire from the source see if that gives me the needed .pc file update: wayfire wont build from source because of even more "missing" dependencies, why must meson be like this.

probonopd commented 10 months ago

On the Raspberry Pi 5 (with Raspberry Pi OS, which uses Wayfire by default), the file is in /usr/lib/aarch64-linux-gnu/pkgconfig/wayfire.pc after installing sudo apt install wayfire-dev (installs 0.7.5-1~bpo11+1~rpt28).

But even with export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH

I still get

Run-time dependency wayfire found: NO (tried pkgconfig and cmake)
meson.build:16:0: ERROR: Dependency "wayfire" not found, tried pkgconfig and cmake

when trying to

git clone https://github.com/AhoyISki/Firedecor
cd Firedecor
meson build # Fails here
meson compile -C build
sudo meson install -C build
ItsTerm1n4l commented 10 months ago

@probonopd try sudo cp /usr/lib/aarch64-linux-gnu/pkgconfig/wayfire.pc /usr/share/ to copy the wayfire.pc file directly into the path.

probonopd commented 10 months ago

Thanks, but I am still getting

Run-time dependency wayfire found: NO (tried pkgconfig and cmake)

meson.build:16:0: ERROR: Dependency "wayfire" not found, tried pkgconfig and cmake
ItsTerm1n4l commented 10 months ago

This is my wayfire.pc file:

prefix=/usr
includedir=${prefix}/include
libdir=${prefix}/lib/aarch64-linux-gnu

metadatadir=${prefix}/share/wayfire/metadata
sysconfdir=/etc
plugindir=${libdir}/wayfire
icondir=${prefix}/share/wayfire/icons
pkgdatadir=/usr/share/wayfire/protocols

Name: wayfire
Description: A Wayland Compositor
Version: 0.7.5
Requires: cairo, pango, pangocairo, wayland-server, pixman-1, wlroots, wf-config
Cflags: -I${includedir}

If you are on a different arch you will need to change line 3, libdir=${prefix}/lib/aarch64-linux-gnu probably to libdir=${prefix}/lib/x86_x64-linux-gnu. Hope this helps!

probonopd commented 10 months ago

Hm, strange. Mine looks identical.

LOLZSICKA commented 8 months ago

attempting the void build again... will give report on results when i give up for the night found i needed the 32bit and/or devels of some dependencies to make wayfire build work... firedecor still failed to find wayfire after built (before launching wayfire) still no pc after launching wayfire, might have to manually make a pc for wayfire. ill try figuring that out when and if i remember and feel like doing this again.

cjstoddard commented 7 months ago

I had to install libboost-all-dev and libglm-dev to get past the Dependency "wayfire" not found error message.

Of course now "meson compile -C build" is failing with a error: ‘render_target_t’ message, so there is that.

ItsTerm1n4l commented 7 months ago

I would be helpful if you pasted your entire error message with the command you used. :)

LOLZSICKA commented 6 months ago

ok it might help to use some kinda different setup for the build

also i figured out i can basically make dummy .pc files and it'll accept them, dunno if that causes issues or not...

ItsTerm1n4l commented 6 months ago

It should be fine so long as your .pc files are configured correctly I think ;)

ItsTerm1n4l commented 6 months ago

Maybe try this fix, I had a similar issue when it tried to build wayfire-plugins-extra, on my Raspberry Pi. https://github.com/WayfireWM/wayfire-plugins-extra/wiki/Raspberry-Pi