Message ID | a20507bdaba341e147c631d527249f40e5d2f9d1.1706984229.git.vivien@planete-kraus.eu |
---|---|
State | New |
Headers | show |
Series | Wrap the extensions with (guix build utils) tools | expand |
Am Freitag, dem 19.01.2024 um 23:36 +0100 schrieb Vivien Kraus: > The top-level modules that are wrapped are the /extension.js and > /prefs.js of > every extension sub-directory. The GI_TYPELIB_PATH used contains glib > for > every extension, and gnome-menus for Applications Menu. > > * gnu/packages/gnome.scm (gnome-shell-extensions) [#:phases]: Add > 'wrap-extensions. > [native-inputs]: Add gobject-introspection. > [inputs]: Add gnome-menus and glib. > [propagated-imputs]: Remove glib. > > Change-Id: I58b79ca92fbceebb9bbb150102fa428022e3eb63 > --- > gnu/packages/gnome.scm | 32 +++++++++++++++++++++++++++++--- > 1 file changed, 29 insertions(+), 3 deletions(-) > > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm > index 6919576eae..b92cea6b17 100644 > --- a/gnu/packages/gnome.scm > +++ b/gnu/packages/gnome.scm > @@ -10726,13 +10726,39 @@ (define-public gnome-shell-extensions > > "1aq1n75m1svsv0ppg66n9qch26rhjxcv3q33a3skf7hsydr5wd4c")))) > (build-system meson-build-system) > (arguments > - '(#:configure-flags '("-Dextension_set=all"))) > + (list > + #:configure-flags #~'("-Dextension_set=all") > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'wrap-extensions > + (lambda _ > + (use-modules (ice-9 textual-ports) > + (guix build utils)) > + (for-each > + (lambda (file-to-wrap) > + (with-atomic-file-replacement file-to-wrap > + (lambda (source wrapped) > + (format wrapped "'~a'.split(':').forEach(" > + (getenv "GI_TYPELIB_PATH")) > + (display > + (string-append "path => > imports.gi.GIRepository.Repository" > + > ".prepend_search_path(path));\n") > + wrapped) > + (let ((input-size > + (begin > + (seek source 0 SEEK_END) > + (ftell source)))) > + (seek source 0 SEEK_SET) > + (sendfile wrapped source input-size))))) Why send-file instead of dump-port? > + (find-files "extensions" > "(extension|prefs)\\.js"))))))) > (native-inputs > (list `(,glib "bin") > gettext-minimal > + gobject-introspection ; to set GI_TYPELIB_PATH > pkg-config)) > - (propagated-inputs > - (list glib)) > + (inputs > + (list glib > + gnome-menus)) ; for Applications Menu > (synopsis "Extensions for GNOME Shell") > (description "GNOME Shell extensions modify and extend GNOME > Shell > functionality and behavior.") Cheers
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6919576eae..b92cea6b17 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -10726,13 +10726,39 @@ (define-public gnome-shell-extensions "1aq1n75m1svsv0ppg66n9qch26rhjxcv3q33a3skf7hsydr5wd4c")))) (build-system meson-build-system) (arguments - '(#:configure-flags '("-Dextension_set=all"))) + (list + #:configure-flags #~'("-Dextension_set=all") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'wrap-extensions + (lambda _ + (use-modules (ice-9 textual-ports) + (guix build utils)) + (for-each + (lambda (file-to-wrap) + (with-atomic-file-replacement file-to-wrap + (lambda (source wrapped) + (format wrapped "'~a'.split(':').forEach(" + (getenv "GI_TYPELIB_PATH")) + (display + (string-append "path => imports.gi.GIRepository.Repository" + ".prepend_search_path(path));\n") + wrapped) + (let ((input-size + (begin + (seek source 0 SEEK_END) + (ftell source)))) + (seek source 0 SEEK_SET) + (sendfile wrapped source input-size))))) + (find-files "extensions" "(extension|prefs)\\.js"))))))) (native-inputs (list `(,glib "bin") gettext-minimal + gobject-introspection ; to set GI_TYPELIB_PATH pkg-config)) - (propagated-inputs - (list glib)) + (inputs + (list glib + gnome-menus)) ; for Applications Menu (synopsis "Extensions for GNOME Shell") (description "GNOME Shell extensions modify and extend GNOME Shell functionality and behavior.")