Message ID | 086db0822919d2c43b93dccd3f88be8588685b2f.1629619162.git.efraim@flashner.co.il |
---|---|
State | Accepted |
Headers | show |
Series | [bug#50162] gnu: global: Add ctags support. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hello! Efraim Flashner <efraim@flashner.co.il> writes: > * gnu/packages/code.scm (global)[inputs]: Add bash-minimal, > universal-ctags, python-pygments. > [arguments]: Add configure-flags to find ctags. Add phases to install > plugins and to wrap python script with PYTHONPATH. > --- > > I've been using this variant of global for a couple of weeks now to get > global to work with Guix. > > --- > > gnu/packages/code.scm | 34 +++++++++++++++++++++++++++++----- > 1 file changed, 29 insertions(+), 5 deletions(-) > > diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm > index a414cde3de..04b354b71e 100644 > --- a/gnu/packages/code.scm > +++ b/gnu/packages/code.scm > @@ -64,6 +64,7 @@ > #:use-module (gnu packages perl-compression) > #:use-module (gnu packages pkg-config) > #:use-module (gnu packages python) > + #:use-module (gnu packages python-xyz) > #:use-module (gnu packages serialization) > #:use-module (gnu packages sqlite) > #:use-module (gnu packages texinfo) > @@ -137,17 +138,26 @@ highlighting your own code that seemed comprehensible when you wrote it.") > (base32 > "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839")))) > (build-system gnu-build-system) > - (inputs `(("coreutils" ,coreutils) > - ("ncurses" ,ncurses) > - ("libltdl" ,libltdl) > - ("sqlite" ,sqlite) > - ("python-wrapper" ,python-wrapper))) > + (inputs > + `(("bash" ,bash-minimal) ; for wrap-program This is news to me; must we now provide bash-minimal every time wrap-program is used? > + ("coreutils" ,coreutils) > + ("ctags" ,universal-ctags) > + ("libltdl" ,libltdl) > + ("ncurses" ,ncurses) > + ("python-pygments" ,python-pygments) > + ("python-wrapper" ,python-wrapper) > + ("sqlite" ,sqlite))) > (arguments > `(#:configure-flags > (list (string-append "--with-ncurses=" > (assoc-ref %build-inputs "ncurses")) > (string-append "--with-sqlite3=" > (assoc-ref %build-inputs "sqlite")) > + (string-append "--with-universal-ctags=" > + (assoc-ref %build-inputs "ctags") "/bin/ctags") > + (string-append "--sysconfdir=" > + (assoc-ref %outputs "out") "/share/gtags") > + "--localstatedir=/var" ; This needs to be a writable location. > "--disable-static") > > #:phases > @@ -158,6 +168,20 @@ highlighting your own code that seemed comprehensible when you wrote it.") > (assoc-ref inputs "coreutils") "/bin/echo"))) > (substitute* "globash/globash.in" > (("/bin/echo") echo))))) > + (add-after 'post-install 'install-plugins > + (lambda _ > + (with-directory-excursion "plugin-factory" > + (invoke "make" "install")))) > + (add-before 'install 'dont-install-to-/var > + (lambda _ > + (substitute* "gozilla/Makefile" > + (("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)")))) > + (add-after 'install-plugins 'wrap-program > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (wrap-program > + (string-append (assoc-ref outputs "out") > + "/share/gtags/script/pygments_parser.py") > + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))) > (add-after 'install 'post-install > (lambda* (#:key outputs #:allow-other-keys) > ;; Install the plugin files in the right place. I have built it (but not tested it), but the rest this LGTM! Feel free to push. Thank you, Maxim
On Mon, Aug 30, 2021 at 03:57:39PM -0400, Maxim Cournoyer wrote: > Hello! > > Efraim Flashner <efraim@flashner.co.il> writes: > > > * gnu/packages/code.scm (global)[inputs]: Add bash-minimal, > > universal-ctags, python-pygments. > > [arguments]: Add configure-flags to find ctags. Add phases to install > > plugins and to wrap python script with PYTHONPATH. > > --- > > > > I've been using this variant of global for a couple of weeks now to get > > global to work with Guix. > > > > --- > > > > gnu/packages/code.scm | 34 +++++++++++++++++++++++++++++----- > > 1 file changed, 29 insertions(+), 5 deletions(-) > > > > diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm > > index a414cde3de..04b354b71e 100644 > > --- a/gnu/packages/code.scm > > +++ b/gnu/packages/code.scm > > @@ -64,6 +64,7 @@ > > #:use-module (gnu packages perl-compression) > > #:use-module (gnu packages pkg-config) > > #:use-module (gnu packages python) > > + #:use-module (gnu packages python-xyz) > > #:use-module (gnu packages serialization) > > #:use-module (gnu packages sqlite) > > #:use-module (gnu packages texinfo) > > @@ -137,17 +138,26 @@ highlighting your own code that seemed comprehensible when you wrote it.") > > (base32 > > "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839")))) > > (build-system gnu-build-system) > > - (inputs `(("coreutils" ,coreutils) > > - ("ncurses" ,ncurses) > > - ("libltdl" ,libltdl) > > - ("sqlite" ,sqlite) > > - ("python-wrapper" ,python-wrapper))) > > + (inputs > > + `(("bash" ,bash-minimal) ; for wrap-program > > This is news to me; must we now provide bash-minimal every time > wrap-program is used? Its new, I think the aim was to make sure that even if a package is cross compiled it uses the correct bash when wrapping the program/script. > > + ("coreutils" ,coreutils) > > + ("ctags" ,universal-ctags) > > + ("libltdl" ,libltdl) > > + ("ncurses" ,ncurses) > > + ("python-pygments" ,python-pygments) > > + ("python-wrapper" ,python-wrapper) > > + ("sqlite" ,sqlite))) > > (arguments > > `(#:configure-flags > > (list (string-append "--with-ncurses=" > > (assoc-ref %build-inputs "ncurses")) > > (string-append "--with-sqlite3=" > > (assoc-ref %build-inputs "sqlite")) > > + (string-append "--with-universal-ctags=" > > + (assoc-ref %build-inputs "ctags") "/bin/ctags") > > + (string-append "--sysconfdir=" > > + (assoc-ref %outputs "out") "/share/gtags") > > + "--localstatedir=/var" ; This needs to be a writable location. > > "--disable-static") > > > > #:phases > > @@ -158,6 +168,20 @@ highlighting your own code that seemed comprehensible when you wrote it.") > > (assoc-ref inputs "coreutils") "/bin/echo"))) > > (substitute* "globash/globash.in" > > (("/bin/echo") echo))))) > > + (add-after 'post-install 'install-plugins > > + (lambda _ > > + (with-directory-excursion "plugin-factory" > > + (invoke "make" "install")))) > > + (add-before 'install 'dont-install-to-/var > > + (lambda _ > > + (substitute* "gozilla/Makefile" > > + (("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)")))) > > + (add-after 'install-plugins 'wrap-program > > + (lambda* (#:key inputs outputs #:allow-other-keys) > > + (wrap-program > > + (string-append (assoc-ref outputs "out") > > + "/share/gtags/script/pygments_parser.py") > > + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))) > > (add-after 'install 'post-install > > (lambda* (#:key outputs #:allow-other-keys) > > ;; Install the plugin files in the right place. > > I have built it (but not tested it), but the rest this LGTM! Feel free > to push. > > Thank you, > > Maxim Thanks! Patch pushed.
Hello Efraim, Efraim Flashner <efraim@flashner.co.il> writes: > On Mon, Aug 30, 2021 at 03:57:39PM -0400, Maxim Cournoyer wrote: >> Hello! >> >> Efraim Flashner <efraim@flashner.co.il> writes: >> >> > * gnu/packages/code.scm (global)[inputs]: Add bash-minimal, >> > universal-ctags, python-pygments. >> > [arguments]: Add configure-flags to find ctags. Add phases to install >> > plugins and to wrap python script with PYTHONPATH. >> > --- >> > >> > I've been using this variant of global for a couple of weeks now to get >> > global to work with Guix. >> > >> > --- >> > >> > gnu/packages/code.scm | 34 +++++++++++++++++++++++++++++----- >> > 1 file changed, 29 insertions(+), 5 deletions(-) >> > >> > diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm >> > index a414cde3de..04b354b71e 100644 >> > --- a/gnu/packages/code.scm >> > +++ b/gnu/packages/code.scm >> > @@ -64,6 +64,7 @@ >> > #:use-module (gnu packages perl-compression) >> > #:use-module (gnu packages pkg-config) >> > #:use-module (gnu packages python) >> > + #:use-module (gnu packages python-xyz) >> > #:use-module (gnu packages serialization) >> > #:use-module (gnu packages sqlite) >> > #:use-module (gnu packages texinfo) >> > @@ -137,17 +138,26 @@ highlighting your own code that seemed comprehensible when you wrote it.") >> > (base32 >> > "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839")))) >> > (build-system gnu-build-system) >> > - (inputs `(("coreutils" ,coreutils) >> > - ("ncurses" ,ncurses) >> > - ("libltdl" ,libltdl) >> > - ("sqlite" ,sqlite) >> > - ("python-wrapper" ,python-wrapper))) >> > + (inputs >> > + `(("bash" ,bash-minimal) ; for wrap-program >> >> This is news to me; must we now provide bash-minimal every time >> wrap-program is used? > > Its new, I think the aim was to make sure that even if a package is > cross compiled it uses the correct bash when wrapping the > program/script. I see. It's good that it's explicit, but on the other hand, it's a bit tedious or error prone to have to remember to do so everywhere. I'll give it some time! Thank you, Maxim
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index a414cde3de..04b354b71e 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -64,6 +64,7 @@ #:use-module (gnu packages perl-compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) @@ -137,17 +138,26 @@ highlighting your own code that seemed comprehensible when you wrote it.") (base32 "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839")))) (build-system gnu-build-system) - (inputs `(("coreutils" ,coreutils) - ("ncurses" ,ncurses) - ("libltdl" ,libltdl) - ("sqlite" ,sqlite) - ("python-wrapper" ,python-wrapper))) + (inputs + `(("bash" ,bash-minimal) ; for wrap-program + ("coreutils" ,coreutils) + ("ctags" ,universal-ctags) + ("libltdl" ,libltdl) + ("ncurses" ,ncurses) + ("python-pygments" ,python-pygments) + ("python-wrapper" ,python-wrapper) + ("sqlite" ,sqlite))) (arguments `(#:configure-flags (list (string-append "--with-ncurses=" (assoc-ref %build-inputs "ncurses")) (string-append "--with-sqlite3=" (assoc-ref %build-inputs "sqlite")) + (string-append "--with-universal-ctags=" + (assoc-ref %build-inputs "ctags") "/bin/ctags") + (string-append "--sysconfdir=" + (assoc-ref %outputs "out") "/share/gtags") + "--localstatedir=/var" ; This needs to be a writable location. "--disable-static") #:phases @@ -158,6 +168,20 @@ highlighting your own code that seemed comprehensible when you wrote it.") (assoc-ref inputs "coreutils") "/bin/echo"))) (substitute* "globash/globash.in" (("/bin/echo") echo))))) + (add-after 'post-install 'install-plugins + (lambda _ + (with-directory-excursion "plugin-factory" + (invoke "make" "install")))) + (add-before 'install 'dont-install-to-/var + (lambda _ + (substitute* "gozilla/Makefile" + (("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)")))) + (add-after 'install-plugins 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program + (string-append (assoc-ref outputs "out") + "/share/gtags/script/pygments_parser.py") + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Install the plugin files in the right place.