From 78387926358d9da188b9eae6cff5e8427e970fe9 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Tue, 25 Apr 2023 14:07:21 +0000 Subject: [PATCH 01/11] Installation: unbreak Meson steps - ninja doesn't support `--tags` unlike meson - `--skip-subprojects` is more clear than `--tags runtime,man` --- pages/Getting Started/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index d6a300c3..bff11bb9 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -372,8 +372,8 @@ installed._ ```plain meson subprojects update --reset meson setup build -ninja -C build -ninja -C build install --tags runtime,man +meson compile -C build +meson install -C build --skip-subprojects ``` Refer to [Debugging](../../Contributing-and-Debugging) to see how to build & From 26871841d037f7a334cb7666435787deb6296ce9 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Tue, 25 Apr 2023 14:34:10 +0000 Subject: [PATCH 02/11] Installation: invoke Git when using Meson like with CMake Trying to build in a random directory like HOME may fail or build something else. So, provide the context for a user who skipped reading CMake section. --- pages/Getting Started/Installation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index bff11bb9..50074d93 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -370,7 +370,8 @@ installed._ ### Meson ```plain -meson subprojects update --reset +git clone --recursive https://github.com/hyprwm/Hyprland +cd Hyprland meson setup build meson compile -C build meson install -C build --skip-subprojects From 55b2498fe7d0f62b879f30fc6eb604a7ab166c90 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 5 Jan 2024 17:15:54 +0100 Subject: [PATCH 03/11] Installation: deduplicate FreeBSD dependencies https://github.com/freebsd/freebsd-ports/commit/1b744b687e87 --- pages/Getting Started/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 50074d93..91fa3040 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -327,7 +327,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig ```plain pkg install git pkgconf gmake gcc evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman libxcb -pkg install meson jq hwdata libdisplay-info libliftoff +pkg install meson jq hwdata export CC=gcc CXX=g++ LDFLAGS="-static-libstdc++ -static-libgcc" ``` From 13395a2b9e115841de2763f8193d7e39428afb2e Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 5 Jan 2024 17:20:05 +0100 Subject: [PATCH 04/11] Installation: add tomlplusplus on FreeBSD https://github.com/hyprwm/Hyprland/commit/d36055054651 https://github.com/freebsd/freebsd-ports/commit/57bb94121dc2 --- pages/Getting Started/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 91fa3040..15369ea0 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,7 +326,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake gcc evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman libxcb +pkg install git pkgconf gmake gcc evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb pkg install meson jq hwdata export CC=gcc CXX=g++ LDFLAGS="-static-libstdc++ -static-libgcc" ``` From 4b257f56613a2fee4ce46ad685aa9209378af346 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 5 Jan 2024 17:40:57 +0100 Subject: [PATCH 05/11] Installation: temporarily pin GCC version on FreeBSD Until GCC_DEFAULT is bumped to 14 or later in https://github.com/freebsd/freebsd-ports/blob/main/Mk/bsd.default-versions.mk --- pages/Getting Started/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 15369ea0..2ae9be48 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,9 +326,9 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake gcc evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb +pkg install git pkgconf gmake gcc14 evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb pkg install meson jq hwdata -export CC=gcc CXX=g++ LDFLAGS="-static-libstdc++ -static-libgcc" +export CC=gcc14 CXX=g++14 LDFLAGS="-static-libstdc++ -static-libgcc" ``` {{% /details %}} From 6084a2bea7799776f36869f2d611e07501e5022d Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 5 Jan 2024 17:54:14 +0100 Subject: [PATCH 06/11] Installation: drop GCC dependency on FreeBSD System tomlplusplus is built against libc++ which conflicts with libstdc++ used by GCC. While tomlplusplus can be bundled it's only easy to do via Meson (--force-fallback-for). /usr/local/bin/ld: hyprpm/CMakeFiles/hyprpm.dir/src/core/DataState.cpp.o: in function `DataState::addNewPluginRepo(SPluginRepository const&)': DataState.cpp:(.text+0x16b4): undefined reference to `toml::v3::table::get_lower_bound(std::basic_string_view >)' /usr/local/bin/ld: DataState.cpp:(.text+0x1793): undefined reference to `toml::v3::table::insert_with_hint(toml::v3::impl::table_iterator, toml::v3::key&&, std::unique_ptr >&&)' /usr/local/bin/ld: DataState.cpp:(.text+0x2c59): undefined reference to `toml::v3::impl::print_to_stream(std::ostream&, toml::v3::table const&)' /usr/local/bin/ld: hyprpm/CMakeFiles/hyprpm.dir/src/core/DataState.cpp.o: in function `DataState::pluginRepoExists(std::__cxx11::basic_string, std::allocator > const&)': DataState.cpp:(.text+0x3739): undefined reference to `toml::v3::ex::parse_file(std::basic_string_view >)' /usr/local/bin/ld: DataState.cpp:(.text+0x3783): undefined reference to `toml::v3::table::get(std::basic_string_view >)' /usr/local/bin/ld: DataState.cpp:(.text+0x37ab): undefined reference to `toml::v3::table::get(std::basic_string_view >)' [...] --- pages/Getting Started/Installation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 2ae9be48..633d1f4b 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,9 +326,8 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake gcc14 evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb +pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb pkg install meson jq hwdata -export CC=gcc14 CXX=g++14 LDFLAGS="-static-libstdc++ -static-libgcc" ``` {{% /details %}} From ad5329a597127c2582dd4c18daff85ef7bbaf85b Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 21 Sep 2024 16:31:57 +0200 Subject: [PATCH 07/11] Installation: add xcb-icccm and xcb-errors on FreeBSD --- pages/Getting Started/Installation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 633d1f4b..8fd8368e 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,7 +326,8 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus libxcb +pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus +pkg install libxcb xcb-util-errors xcb-util-wm pkg install meson jq hwdata ``` From f7cac0200758c0e5e210c29c2a7b9ec70c4ba528 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Mon, 15 Apr 2024 12:13:06 +0200 Subject: [PATCH 08/11] Installation: add hypr* dependencies on FreeBSD https://github.com/hyprwm/Hyprland/commit/13f6f0b923ff https://github.com/hyprwm/Hyprland/commit/c3882bb83240 https://github.com/hyprwm/Hyprland/commit/ea954494024c https://github.com/hyprwm/Hyprland/commit/8c64a4bad710 --- pages/Getting Started/Installation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 8fd8368e..bd01b732 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -329,6 +329,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus pkg install libxcb xcb-util-errors xcb-util-wm pkg install meson jq hwdata +pkg install hyprcursor hyprlang hyprutils hyprwayland-scanner ``` {{% /details %}} From 2bfd293904c56dc78ca2ae2002bd4c55ea8af27e Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 21 Sep 2024 16:09:13 +0200 Subject: [PATCH 09/11] Installation: drop wlroots leftovers on FreeBSD https://github.com/hyprwm/Hyprland/commit/016da234d0e8 --- pages/Getting Started/Installation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index bd01b732..ab2da7ae 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -327,9 +327,8 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig ```plain pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus +pkg install aquamarine hyprcursor hyprlang hyprutils hyprwayland-scanner pkg install libxcb xcb-util-errors xcb-util-wm -pkg install meson jq hwdata -pkg install hyprcursor hyprlang hyprutils hyprwayland-scanner ``` {{% /details %}} From f6b087873488162a9667cdec52d4413f10dfb328 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 21 Sep 2024 16:20:51 +0200 Subject: [PATCH 10/11] Installation: add libuuid on FreeBSD FreeBSD uuid(3) has slightly different API than Linux and doesn't support random UUIDs unlike NetBSD. Instead use external implementation. https://github.com/hyprwm/Hyprland/commit/7778f01194d8 --- pages/Getting Started/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index ab2da7ae..2f014b50 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,7 +326,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus +pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus e2fsprogs-libuuid pkg install aquamarine hyprcursor hyprlang hyprutils hyprwayland-scanner pkg install libxcb xcb-util-errors xcb-util-wm ``` From b914a77e7029fa9fa120299004a7154c6b336937 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 21 Sep 2024 16:41:05 +0200 Subject: [PATCH 11/11] Installation: drop GNU make on FreeBSD https://github.com/hyprwm/Hyprland/commit/c03dc47124ca --- pages/Getting Started/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index 2f014b50..4ee23596 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -326,7 +326,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig {{% details title="FreeBSD" closed="true" %}} ```plain -pkg install git pkgconf gmake evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus e2fsprogs-libuuid +pkg install git pkgconf evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman tomlplusplus e2fsprogs-libuuid pkg install aquamarine hyprcursor hyprlang hyprutils hyprwayland-scanner pkg install libxcb xcb-util-errors xcb-util-wm ```