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/2] 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 0000000..94e80c0 --- /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 2c893c3345b4715f2d34eb23df41738267a9d99c Mon Sep 17 00:00:00 2001 From: 4zv4l <4zv4l@protonmail.com> Date: Sun, 30 Nov 2025 23:19:55 +0800 Subject: [PATCH 2/2] guix: not pin hash in repo --- mangowc.scm | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/mangowc.scm b/mangowc.scm index 94e80c0..9c55d43 100644 --- a/mangowc.scm +++ b/mangowc.scm @@ -1,7 +1,9 @@ (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) @@ -16,21 +18,29 @@ #: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")))) + (version "git") + (source (local-file "." "mangowc-checkout" + #:recursive? #t + #: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 libdrm libxkbcommon @@ -44,9 +54,11 @@ 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, inspired by dwl but aiming to be more feature-rich.") (license gpl3))) + +mangowc-git