From 3e6d8c6a18231ea2cf9ed85020261c4e08e3a9cc Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Wed, 29 Oct 2025 21:34:22 +0800 Subject: [PATCH 1/8] feat: allow to build using Guix --- mangowc.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mangowc.scm diff --git a/mangowc.scm b/mangowc.scm new file mode 100644 index 000000000..94e80c022 --- /dev/null +++ b/mangowc.scm @@ -0,0 +1,52 @@ +(define-module (mangowc) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (gnu packages wm) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages pciutils) + #:use-module (gnu packages admin) + #:use-module (gnu packages pcre) + #:use-module (gnu packages xorg) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages ninja) + #:use-module (gnu packages pkg-config) + #:use-module (guix build-system meson) + #:use-module (guix licenses)) + + +(define-public mangowc + (package + (name "mangowc") + (version "0.10.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DreamMaoMao/mangowc") + (commit "0.10.4"))) + (sha256 + (base32 "0cayb2r69zcp5q810bqhq27xi0b5dlk81qwl6zj6aqjphh6yzpv9")))) + (build-system meson-build-system) + (inputs (list wayland + wayland-protocols + libinput + libdrm + libxkbcommon + pixman + libdisplay-info + libliftoff + hwdata + seatd + pcre2 + libxcb + xcb-util-wm + wlroots + scenefx)) + (native-inputs (list meson ninja pkg-config)) + (home-page "https://github.com/DreamMaoMao/mangowc") + (synopsis "Wayland compositor based on wlroots and scenefx") + (description "A Wayland compositor based on wlroots and scenefx, +inspired by dwl but aiming to be more feature-rich.") + (license gpl3))) From e749573e51e0a87cde5f5cc55933072c87fe9c17 Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Sun, 30 Nov 2025 23:19:55 +0800 Subject: [PATCH 2/8] change: guix package definition use local-file --- mangowc.scm | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/mangowc.scm b/mangowc.scm index 94e80c022..786579ebc 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -16,18 +16,14 @@ #:use-module (guix licenses)) -(define-public mangowc +(define-public mangowc-git (package (name "mangowc") (version "0.10.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DreamMaoMao/mangowc") - (commit "0.10.4"))) - (sha256 - (base32 "0cayb2r69zcp5q810bqhq27xi0b5dlk81qwl6zj6aqjphh6yzpv9")))) + (source (local-file "." "mangowc-checkout" + #:recursive? #t + #:select? (or (git-predicate (current-source-directory)) + (const #t)))) (build-system meson-build-system) (inputs (list wayland wayland-protocols From 0a31199baa48635ba14da997fabbb20e236b4e71 Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Sun, 30 Nov 2025 23:54:37 +0800 Subject: [PATCH 3/8] change: guix package definition return its own package object --- mangowc.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mangowc.scm b/mangowc.scm index 786579ebc..e68a204f0 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -46,3 +46,5 @@ (description "A Wayland compositor based on wlroots and scenefx, inspired by dwl but aiming to be more feature-rich.") (license gpl3))) + +mangowc-git From 7a328da62d699de12f807e52ddbfd80677f8a9a3 Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Sun, 30 Nov 2025 23:58:13 +0800 Subject: [PATCH 4/8] fix: guix package definition imports --- mangowc.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mangowc.scm b/mangowc.scm index e68a204f0..9ea6d2389 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -1,7 +1,8 @@ (define-module (mangowc) - #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages wm) #:use-module (gnu packages freedesktop) #:use-module (gnu packages xdisorg) From 99944ec85b2b0f19d8a1801041b9359cafa69ae5 Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Mon, 1 Dec 2025 00:01:45 +0800 Subject: [PATCH 5/8] fix: guix package definition imports for git-predicate --- mangowc.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/mangowc.scm b/mangowc.scm index 9ea6d2389..a25d92119 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -1,5 +1,6 @@ (define-module (mangowc) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix utils) From b0400adfee6afdf1380fb25e69fe83f960e3dbc7 Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Mon, 1 Dec 2025 00:07:21 +0800 Subject: [PATCH 6/8] change: guix package definition version --- mangowc.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mangowc.scm b/mangowc.scm index a25d92119..0213df5eb 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -21,7 +21,7 @@ (define-public mangowc-git (package (name "mangowc") - (version "0.10.4") + (version "git") (source (local-file "." "mangowc-checkout" #:recursive? #t #:select? (or (git-predicate (current-source-directory)) From 09e461f51df660066783505d16695a07fd3efc21 Mon Sep 17 00:00:00 2001 From: Nikita Mitasov Date: Sun, 30 Nov 2025 22:06:17 +0300 Subject: [PATCH 7/8] guix: override default config path --- mangowc.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mangowc.scm b/mangowc.scm index 0213df5eb..5f4ce115e 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -27,6 +27,20 @@ #:select? (or (git-predicate (current-source-directory)) (const #t)))) (build-system meson-build-system) + (arguments + (list + #:configure-flags + #~(list (string-append "-Dsysconfdir=" #$output "/etc")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'patch-meson + (lambda _ + (substitute* "meson.build" + (("'-DSYSCONFDIR=\\\"@0@\\\"'.format\\('/etc'\\)") + "'-DSYSCONFDIR=\"@0@\"'.format(sysconfdir)") + + (("sysconfdir = sysconfdir.substring\\(prefix.length\\(\\)\\)") + ""))))))) (inputs (list wayland wayland-protocols libinput From 4d1f9d4724cfc0dbb5b8f102736534e41371028e Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Wed, 3 Dec 2025 09:16:40 +0800 Subject: [PATCH 8/8] change: move wayland-protocols to native input and remove meson/ninja as dup in native input --- mangowc.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mangowc.scm b/mangowc.scm index 5f4ce115e..9c55d43e3 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -38,11 +38,9 @@ (substitute* "meson.build" (("'-DSYSCONFDIR=\\\"@0@\\\"'.format\\('/etc'\\)") "'-DSYSCONFDIR=\"@0@\"'.format(sysconfdir)") - (("sysconfdir = sysconfdir.substring\\(prefix.length\\(\\)\\)") ""))))))) (inputs (list wayland - wayland-protocols libinput libdrm libxkbcommon @@ -56,7 +54,7 @@ xcb-util-wm wlroots scenefx)) - (native-inputs (list meson ninja pkg-config)) + (native-inputs (list pkg-config wayland-protocols)) (home-page "https://github.com/DreamMaoMao/mangowc") (synopsis "Wayland compositor based on wlroots and scenefx") (description "A Wayland compositor based on wlroots and scenefx,