guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 34c1d3ddba80acbb48b042ff12edc6a6e2a58731
Author: Lilah Tascheter <[email protected]>
AuthorDate: Wed Feb 25 11:59:34 2026 -0600

    gnu: graphics: Add GodSVG.
    
    * gnu/packages/graphics.scm (godsvg): New variable.
    
    Change-Id: Iac2af0dded92f8c11848cc5213784f569d1b1b8f
    Signed-off-by: Liliana Marie Prikler <[email protected]>
---
 gnu/packages/graphics.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 452a0f2cfa..75cbba556e 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -500,6 +500,61 @@ Motion graphics has a wide variety of uses, including:
 ")
     (license license:gpl3+)))
 
+(define-public godsvg
+  (package
+    (name "godsvg")
+    (version "1.0-alpha13")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/MewPurPur/GodSVG";)
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+                (base32
+                  "0p9vhvvgmydhpy7yl8hlzrjif2246ais8cv3ji093m4ggc5hnsxa"))))
+    (build-system gnu-build-system)
+    (arguments
+      (list #:tests? #f ; No tests exist.
+            #:phases
+            #~(modify-phases %standard-phases
+                ;; FPS is uncapped by default, resulting in the editor 
consuming
+                ;; all available resources while idling. Set a more reasonable
+                ;; default.
+                (add-after 'unpack 'cap-fps
+                  (lambda _
+                    (substitute* "src/config_classes/SaveData.gd"
+                      (("(\"max_fps\": return |var max_fps := )0" _ pre)
+                       (string-append pre "30")))))
+                (delete 'configure)
+                (replace 'build
+                  (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                    (let ((native (or native-inputs inputs)))
+                      (invoke (search-input-file native "bin/godot")
+                              "--headless" "--export-pack" "Linux"
+                              "godsvg.pck" "project.godot"))))
+                (replace 'install
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    (let ((bin (string-append #$output "/bin"))
+                          (share (string-append #$output "/share/godot")))
+                      (mkdir-p bin)
+                      (install-file "godsvg.pck" share)
+                      (call-with-output-file (string-append bin "/godsvg")
+                        (lambda (port)
+                          (format port "#!~a~%exec ~a --main-pack ~a~%"
+                            (search-input-file inputs "bin/bash")
+                            (search-input-file inputs "bin/godot")
+                            (string-append share "/godsvg.pck"))))
+                      (chmod (string-append bin "/godsvg") #o755)))))))
+    (supported-systems (filter target-linux? %supported-systems))
+    (inputs (list bash godot))
+    (native-inputs (list godot))
+    (home-page "https://www.godsvg.com/";)
+    (synopsis "Real-time SVG design tool")
+    (description "GodSVG is a structured WYSIWYG SVG editor allowing image
+editing and source editing simultaneously.")
+    (license license:expat)))
+
 (define-public autotrace
   (package
     (name "autotrace")

Reply via email to