summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2022-06-23 16:17:23 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2022-07-27 18:50:15 +0200
commit3b1bac3b97da98111e409e0544967c0514b3de53 (patch)
treed8b4bd540521b3d126d58ba42a6146111aff2ff5 /gnu
parentecb91c993dcce7e6c3faa0d156013dac42380cc6 (diff)
gnu: Add cambalache.
* gnu/packages/gnome.scm (cambalache): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnome.scm92
1 files changed, 92 insertions, 0 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 55fbe583ef..f4a4744633 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3204,6 +3204,98 @@ the GNOME desktop environment.")
(variable "GLADE_MODULE_SEARCH_PATH")
(files '("lib/glade/modules")))))))
+(define-public cambalache
+ (package
+ (name "cambalache")
+ (version "0.10.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.gnome.org/jpu/cambalache")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mw5gk98zx03yal3p8slaqwhwkc9p2vnh0cssnmg6ivxsjscqhgz"))))
+ (build-system meson-build-system)
+ (arguments
+ (list
+ #:glib-or-gtk? #t
+ #:imported-modules `((guix build python-build-system)
+ ,@%meson-build-system-modules)
+ #:modules '((guix build meson-build-system)
+ ((guix build python-build-system) #:prefix python:)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cambalache/cmb_view.py"
+ (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
+ (string-append "'"
+ (search-input-file inputs
+ (string-append "/bin/" cmd))
+ "'")))))
+ (add-after 'unpack 'patch-build
+ (lambda _
+ (substitute* "postinstall.py"
+ (("update-desktop-database") "true"))))
+ (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
+ (delete 'check)
+ (add-after 'install 'add-install-to-pythonpath
+ (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
+ (add-after 'add-install-to-pythonpath 'pre-check
+ (lambda _
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")))
+ (add-after 'pre-check 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion ".."
+ (invoke "python3" "-m" "pytest")))))
+ (add-after 'glib-or-gtk-wrap 'wrap-typelib
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (prog)
+ (unless (wrapped-program? prog)
+ (wrap-program prog
+ `("GI_TYPELIB_PATH" suffix
+ (,(string-append out "/lib/girepository-1.0")
+ ,(getenv "GI_TYPELIB_PATH")))
+ ;; icons and schemas
+ `("XDG_DATA_DIRS" suffix
+ #$(map
+ (lambda (input)
+ (file-append (this-package-input input) "/share"))
+ '("adwaita-icon-theme" "hicolor-icon-theme"
+ "gsettings-desktop-schemas")))
+ ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
+ ;; load its own icons in pure environments.
+ `("GDK_PIXBUF_MODULE_FILE" =
+ (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
+ (find-files (string-append out "/bin")))))))))
+ (inputs (list bash-minimal
+ adwaita-icon-theme hicolor-icon-theme
+ gsettings-desktop-schemas
+ gtk
+ `(,gtk+ "bin") ; broadwayd
+ `(,gtk "bin")
+ libadwaita
+ libhandy
+ (librsvg-for-system)
+ python python-pygobject python-lxml
+ webkitgtk-with-libsoup2))
+ (native-inputs (list `(,glib "bin") gobject-introspection
+ gettext-minimal pkg-config
+ python-pytest xorg-server-for-tests))
+ (home-page "https://gitlab.gnome.org/jpu/cambalache")
+ (synopsis "Rapid application development tool")
+ (description "Cambalache is a rapid application development (RAD) tool for
+Gtk 4 and 3 with a clear model-view-controller (MVC) design and
+data model first philosophy.")
+ (license (list license:lgpl2.1
+ license:gpl2)))) ; tools
+
(define-public libcroco
(package
(name "libcroco")