Re: [PATCH] gnu: Add vim-full.
Marius Bakkewrites: > ng0 writes: > >> Hi, >> >> thanks for reviewing. >> >> Marius Bakke writes: >> >>> ng0 writes: >>> * gnu/packages/vim.scm (vim-full): New variable. * gnu/packages/patches/vim-8.0.0003.patch: New file. * gnu/packages/patches/vim-8.0.0004.patch: New file. * gnu/packages/patches/vim-8.0.0005.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patches. --- gnu/local.mk| 3 ++ gnu/packages/patches/vim-8.0.0003.patch | 87 + gnu/packages/patches/vim-8.0.0004.patch | 60 +++ gnu/packages/patches/vim-8.0.0005.patch | 45 + gnu/packages/vim.scm| 81 ++ 5 files changed, 276 insertions(+) create mode 100644 gnu/packages/patches/vim-8.0.0003.patch create mode 100644 gnu/packages/patches/vim-8.0.0004.patch create mode 100644 gnu/packages/patches/vim-8.0.0005.patch >>> >>> [...] >>> + +(define-public vim-full + (package +(inherit vim) +(name "vim-full") +(version (package-version vim)) +(source + (origin + (method url-fetch) + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; + version ".tar.bz2")) + (sha256 +(base32 + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) + ;; Patches need to be applied sequentially. 8.0 is the release of + ;; vim version 8.0.0002 so we start at 8.0.0003 + (patches (search-patches "vim-8.0.0003.patch" +"vim-8.0.0004.patch" +"vim-8.0.0005.patch" >>> >>> Shouldn't these patches be applied on the base vim package? Then >>> "vim-full" can just inherit the source from there. I also think >>> "version" should be adjusted to match the patch level. >> >> No (for explanation see the other emails I've sent in the earlier >> thread). >> I agree on the version, I will update that. > > Upstream recommends using the Github releases [0] Where? Do you have any link for that quote so I can link it? for 8.0 which are at > 8.0.0042 already. Do you think it makes sense to switch to that source > for both packages? Then we might avoid carrying the patches entirely. > > 0: https://github.com/vim/vim/releases >
Re: [PATCH] gnu: Add vim-full.
ng0writes: > Hi, > > thanks for reviewing. > > Marius Bakke writes: > >> ng0 writes: >> >>> * gnu/packages/vim.scm (vim-full): New variable. >>> * gnu/packages/patches/vim-8.0.0003.patch: New file. >>> * gnu/packages/patches/vim-8.0.0004.patch: New file. >>> * gnu/packages/patches/vim-8.0.0005.patch: New file. >>> * gnu/local.mk (dist_patch_DATA): Add patches. >>> --- >>> gnu/local.mk| 3 ++ >>> gnu/packages/patches/vim-8.0.0003.patch | 87 >>> + >>> gnu/packages/patches/vim-8.0.0004.patch | 60 +++ >>> gnu/packages/patches/vim-8.0.0005.patch | 45 + >>> gnu/packages/vim.scm| 81 ++ >>> 5 files changed, 276 insertions(+) >>> create mode 100644 gnu/packages/patches/vim-8.0.0003.patch >>> create mode 100644 gnu/packages/patches/vim-8.0.0004.patch >>> create mode 100644 gnu/packages/patches/vim-8.0.0005.patch >> >> [...] >> >>> + >>> +(define-public vim-full >>> + (package >>> +(inherit vim) >>> +(name "vim-full") >>> +(version (package-version vim)) >>> +(source >>> + (origin >>> + (method url-fetch) >>> + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; >>> + version ".tar.bz2")) >>> + (sha256 >>> +(base32 >>> + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) >>> + ;; Patches need to be applied sequentially. 8.0 is the release of >>> + ;; vim version 8.0.0002 so we start at 8.0.0003 >>> + (patches (search-patches "vim-8.0.0003.patch" >>> +"vim-8.0.0004.patch" >>> +"vim-8.0.0005.patch" >> >> Shouldn't these patches be applied on the base vim package? Then >> "vim-full" can just inherit the source from there. I also think >> "version" should be adjusted to match the patch level. > > No (for explanation see the other emails I've sent in the earlier > thread). > I agree on the version, I will update that. Upstream recommends using the Github releases [0] for 8.0 which are at 8.0.0042 already. Do you think it makes sense to switch to that source for both packages? Then we might avoid carrying the patches entirely. 0: https://github.com/vim/vim/releases
Re: [PATCH] gnu: Add vim-full.
Hi, thanks for reviewing. Marius Bakkewrites: > ng0 writes: > >> * gnu/packages/vim.scm (vim-full): New variable. >> * gnu/packages/patches/vim-8.0.0003.patch: New file. >> * gnu/packages/patches/vim-8.0.0004.patch: New file. >> * gnu/packages/patches/vim-8.0.0005.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Add patches. >> --- >> gnu/local.mk| 3 ++ >> gnu/packages/patches/vim-8.0.0003.patch | 87 >> + >> gnu/packages/patches/vim-8.0.0004.patch | 60 +++ >> gnu/packages/patches/vim-8.0.0005.patch | 45 + >> gnu/packages/vim.scm| 81 ++ >> 5 files changed, 276 insertions(+) >> create mode 100644 gnu/packages/patches/vim-8.0.0003.patch >> create mode 100644 gnu/packages/patches/vim-8.0.0004.patch >> create mode 100644 gnu/packages/patches/vim-8.0.0005.patch > > [...] > >> + >> +(define-public vim-full >> + (package >> +(inherit vim) >> +(name "vim-full") >> +(version (package-version vim)) >> +(source >> + (origin >> + (method url-fetch) >> + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; >> + version ".tar.bz2")) >> + (sha256 >> +(base32 >> + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) >> + ;; Patches need to be applied sequentially. 8.0 is the release of >> + ;; vim version 8.0.0002 so we start at 8.0.0003 >> + (patches (search-patches "vim-8.0.0003.patch" >> +"vim-8.0.0004.patch" >> +"vim-8.0.0005.patch" > > Shouldn't these patches be applied on the base vim package? Then > "vim-full" can just inherit the source from there. I also think > "version" should be adjusted to match the patch level. No (for explanation see the other emails I've sent in the earlier thread). I agree on the version, I will update that. > Other than that this package works for me. Perhaps the description could > be updated to mention that this also includes the graphical "gvim" if > anyone is searching for that. Okay, I will include that. > Could you separate this out to two patches, one that updates "vim" and > one that adds "vim-full"? See above. But I think hardly anyone will search for it, so here's the reason: The patches are only needed for what vim-full does and for that only to make the tests succeed. I don't see any rational point in including patches which will make a testsuite succeed which is not run by the package you suggest I apply them to. If this is extended in the future (say vim fixes some serious bug where we need to sequentially apply the patches up to that), feel free to change it to vim. I just need to make the testsuite succeed, which the patches even comment afaik. If it would extend any functionality our standard (minimal) vim has, I would apply them, but as far as I see it this is not the case. Correct me if I'm wrong. > Thanks! >
Re: [PATCH] gnu: Add vim-full.
ng0writes: > * gnu/packages/vim.scm (vim-full): New variable. > * gnu/packages/patches/vim-8.0.0003.patch: New file. > * gnu/packages/patches/vim-8.0.0004.patch: New file. > * gnu/packages/patches/vim-8.0.0005.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add patches. > --- > gnu/local.mk| 3 ++ > gnu/packages/patches/vim-8.0.0003.patch | 87 > + > gnu/packages/patches/vim-8.0.0004.patch | 60 +++ > gnu/packages/patches/vim-8.0.0005.patch | 45 + > gnu/packages/vim.scm| 81 ++ > 5 files changed, 276 insertions(+) > create mode 100644 gnu/packages/patches/vim-8.0.0003.patch > create mode 100644 gnu/packages/patches/vim-8.0.0004.patch > create mode 100644 gnu/packages/patches/vim-8.0.0005.patch [...] > + > +(define-public vim-full > + (package > +(inherit vim) > +(name "vim-full") > +(version (package-version vim)) > +(source > + (origin > + (method url-fetch) > + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; > + version ".tar.bz2")) > + (sha256 > +(base32 > + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) > + ;; Patches need to be applied sequentially. 8.0 is the release of > + ;; vim version 8.0.0002 so we start at 8.0.0003 > + (patches (search-patches "vim-8.0.0003.patch" > +"vim-8.0.0004.patch" > +"vim-8.0.0005.patch" Shouldn't these patches be applied on the base vim package? Then "vim-full" can just inherit the source from there. I also think "version" should be adjusted to match the patch level. Other than that this package works for me. Perhaps the description could be updated to mention that this also includes the graphical "gvim" if anyone is searching for that. Could you separate this out to two patches, one that updates "vim" and one that adds "vim-full"? Thanks!
Re: [PATCH] gnu: Add vim-full.
ng0writes: > * gnu/packages/vim.scm (vim-full): New variable. > * gnu/packages/patches/vim-8.0.0003.patch: New file. > * gnu/packages/patches/vim-8.0.0004.patch: New file. > * gnu/packages/patches/vim-8.0.0005.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add patches. > --- > gnu/local.mk| 3 ++ > gnu/packages/patches/vim-8.0.0003.patch | 87 > + > gnu/packages/patches/vim-8.0.0004.patch | 60 +++ > gnu/packages/patches/vim-8.0.0005.patch | 45 + > gnu/packages/vim.scm| 81 ++ > 5 files changed, 276 insertions(+) > create mode 100644 gnu/packages/patches/vim-8.0.0003.patch > create mode 100644 gnu/packages/patches/vim-8.0.0004.patch > create mode 100644 gnu/packages/patches/vim-8.0.0005.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index 526756f..79c1326 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -874,6 +874,9 @@ dist_patch_DATA = > \ >%D%/packages/patches/util-linux-tests.patch\ >%D%/packages/patches/upower-builddir.patch \ >%D%/packages/patches/valgrind-enable-arm.patch \ > + %D%/packages/patches/vim-8.0.0003.patch \ > + %D%/packages/patches/vim-8.0.0004.patch \ > + %D%/packages/patches/vim-8.0.0005.patch \ >%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch > \ >%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ >%D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ > diff --git a/gnu/packages/patches/vim-8.0.0003.patch > b/gnu/packages/patches/vim-8.0.0003.patch > new file mode 100644 > index 000..11e9c91 > --- /dev/null > +++ b/gnu/packages/patches/vim-8.0.0003.patch > @@ -0,0 +1,87 @@ > +To: vim_...@googlegroups.com > +Subject: Patch 8.0.0003 > +Fcc: outbox > +From: Bram Moolenaar > +Mime-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > + > +Patch 8.0.0003 > +Problem:getwinvar() returns wrong Value of boolean and number options, > +especially non big endian systems. (James McCoy) > +Solution: Cast the pointer to long or int. (closes #1060) > +Files: src/option.c, src/testdir/test_bufwintabinfo.vim > + > + > +*** vim80/src/option.c 2016-09-02 19:26:03.0 +0200 > +--- vim80/src/option.c 2016-09-12 19:20:38.051099762 +0200 > +*** > +*** 12363,12370 > + { > + if (opt->flags & P_STRING) > + dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp); > + else > +!dict_add_nr_str(d, opt->fullname, *varp, NULL); > + } > + } > + } > +--- 12363,12372 > + { > + if (opt->flags & P_STRING) > + dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp); > ++else if (opt->flags & P_NUM) > ++dict_add_nr_str(d, opt->fullname, *(long *)varp, NULL); > + else > +!dict_add_nr_str(d, opt->fullname, *(int *)varp, NULL); > + } > + } > + } > +*** vim80/src/testdir/test_bufwintabinfo.vim 2016-08-27 21:14:58.0 > +0200 > +--- vim80/src/testdir/test_bufwintabinfo.vim 2016-09-12 19:31:06.346360420 > +0200 > +*** > +*** 87,95 > +--- 87,103 > + endfunc > + > + function Test_get_win_options() > ++ if has('folding') > ++ set foldlevel=999 > ++ endif > ++ set list > +let opts = getwinvar(1, '&') > +call assert_equal(v:t_dict, type(opts)) > +call assert_equal(0, opts.linebreak) > ++ call assert_equal(1, opts.list) > ++ if has('folding') > ++ call assert_equal(999, opts.foldlevel) > ++ endif > +if has('signs') > + call assert_equal('auto', opts.signcolumn) > +endif > +*** > +*** 97,103 > +--- 105,116 > +let opts = gettabwinvar(1, 1, '&') > +call assert_equal(v:t_dict, type(opts)) > +call assert_equal(0, opts.linebreak) > ++ call assert_equal(1, opts.list) > +if has('signs') > + call assert_equal('auto', opts.signcolumn) > +endif > ++ set list& > ++ if has('folding') > ++ set foldlevel=0 > ++ endif > + endfunc > +*** vim80/src/version.c 2016-09-12 16:30:42.348454179 +0200 > +--- vim80/src/version.c 2016-09-12 19:24:10.184148642 +0200 > +*** > +*** 766,767 > +--- 766,769 > + { /* Add new patch number below this line */ > ++ /**/ > ++ 3, > + /**/ > + > +-- > diff --git a/gnu/packages/patches/vim-8.0.0004.patch > b/gnu/packages/patches/vim-8.0.0004.patch > new file mode 100644 > index 000..5d4071b > --- /dev/null > +++ b/gnu/packages/patches/vim-8.0.0004.patch > @@ -0,0 +1,60 @@ >
Re: [PATCH] gnu: Add vim-full.
Efraim Flashnerwrites: > [ Unknown signature status ] > On Fri, Oct 14, 2016 at 09:16:15PM +, ng0 wrote: >> * gnu/packages/vim.scm (vim-full): New variable. >> * gnu/packages/patches/vim-8.0.0003.patch: New file. >> * gnu/packages/patches/vim-8.0.0004.patch: New file. >> * gnu/packages/patches/vim-8.0.0005.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Add patches. >> --- >> gnu/local.mk | 3 ++ >> gnu/packages/vim.scm | 82 >> >> 2 files changed, 85 insertions(+) >> >> diff --git a/gnu/local.mk b/gnu/local.mk >> index 526756f..79c1326 100644 >> --- a/gnu/local.mk >> +++ b/gnu/local.mk >> @@ -874,6 +874,9 @@ dist_patch_DATA = >> \ >>%D%/packages/patches/util-linux-tests.patch \ >>%D%/packages/patches/upower-builddir.patch\ >>%D%/packages/patches/valgrind-enable-arm.patch\ >> + %D%/packages/patches/vim-8.0.0003.patch \ >> + %D%/packages/patches/vim-8.0.0004.patch \ >> + %D%/packages/patches/vim-8.0.0005.patch \ >>%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch >> \ >>%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ >>%D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ >> diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm >> index b1ee527..58ea3e1 100644 >> --- a/gnu/packages/vim.scm >> +++ b/gnu/packages/vim.scm >> @@ -1,6 +1,7 @@ >> ;;; GNU Guix --- Functional package management for GNU >> ;;; Copyright © 2013 Cyril Roelandt >> ;;; Copyright © 2016 Efraim Flashner >> +;;; Copyright © 2016 ng0 >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -26,6 +27,21 @@ >>#:use-module (gnu packages gawk) >>#:use-module (gnu packages ncurses) >>#:use-module (gnu packages perl) >> + #:use-module (gnu packages ruby) >> + #:use-module (gnu packages acl) >> + #:use-module (gnu packages attr) >> + #:use-module (gnu packages fontutils) >> + #:use-module (gnu packages gettext) >> + #:use-module (gnu packages glib) >> + #:use-module (gnu packages gtk) >> + #:use-module (gnu packages image) >> + #:use-module (gnu packages linux) >> + #:use-module (gnu packages lua) >> + #:use-module (gnu packages pkg-config) >> + #:use-module (gnu packages python) >> + #:use-module (gnu packages tcl) >> + #:use-module (gnu packages xdisorg) >> + #:use-module (gnu packages xorg) >>#:use-module (gnu packages admin) ; For GNU hostname >>#:use-module (gnu packages shells)) >> >> @@ -79,3 +95,69 @@ that many consider it an entire IDE. It's not just for >> programmers, though. >> Vim is perfect for all kinds of text editing, from composing email to >> editing >> configuration files.") >> (license license:vim))) >> + >> +(define-public vim-full >> + (package >> +(inherit vim) >> +(name "vim-full") >> +(version (package-version vim)) >> +(source >> + (origin >> + (method url-fetch) >> + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; >> + version ".tar.bz2")) >> + (sha256 >> +(base32 >> + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) >> + ;; Patches need to be applied sequentially. 8.0 is the release of >> + ;; vim version 8.0.0002 so we start at 8.0.0003 >> + (patches (search-patches "vim-8.0.0003.patch" >> +"vim-8.0.0004.patch" >> +"vim-8.0.0005.patch" > > vim-7.4 went to over 2000 patches. If we do start applying patches to > our vim package then we should apply them to both versions, and it would > probably be better to use the bash patch method. I'vre just send in a new patch of this, I forgot the patches. I only included the patches which are needed to make the testsuite to succeed. This is not needed at all in the current vim we have. I did what I can, I do not understand the bash method. Someone who does can apply the method used in bash.scm, I won't. >> +(arguments >> + `(#:configure-flags >> + (list (string-append "--with-lua-prefix=" >> +(assoc-ref %build-inputs "lua")) >> + "--with-features=huge" >> + "--enable-python3interp=yes" >> + "--enable-perlinterp=yes" >> + "--enable-rubyinterp=yes" >> + "--enable-tclinterp=yes" >> + "--enable-luainterp=yes" >> + "--enable-cscope" >> + "--enable-sniff" >> + "--enable-multibyte" >> + "--enable-xim" >> + "--disable-selinux" >> + "--enable-gui") >> + ,@(package-arguments vim))) >> +(native-inputs >> + `(("pkg-config"
Re: [PATCH] gnu: Add vim-full.
On Fri, Oct 14, 2016 at 09:16:15PM +, ng0 wrote: > * gnu/packages/vim.scm (vim-full): New variable. > * gnu/packages/patches/vim-8.0.0003.patch: New file. > * gnu/packages/patches/vim-8.0.0004.patch: New file. > * gnu/packages/patches/vim-8.0.0005.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add patches. > --- > gnu/local.mk | 3 ++ > gnu/packages/vim.scm | 82 > > 2 files changed, 85 insertions(+) > > diff --git a/gnu/local.mk b/gnu/local.mk > index 526756f..79c1326 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -874,6 +874,9 @@ dist_patch_DATA = > \ >%D%/packages/patches/util-linux-tests.patch\ >%D%/packages/patches/upower-builddir.patch \ >%D%/packages/patches/valgrind-enable-arm.patch \ > + %D%/packages/patches/vim-8.0.0003.patch \ > + %D%/packages/patches/vim-8.0.0004.patch \ > + %D%/packages/patches/vim-8.0.0005.patch \ >%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch > \ >%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ >%D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ > diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm > index b1ee527..58ea3e1 100644 > --- a/gnu/packages/vim.scm > +++ b/gnu/packages/vim.scm > @@ -1,6 +1,7 @@ > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright © 2013 Cyril Roelandt> ;;; Copyright © 2016 Efraim Flashner > +;;; Copyright © 2016 ng0 > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -26,6 +27,21 @@ >#:use-module (gnu packages gawk) >#:use-module (gnu packages ncurses) >#:use-module (gnu packages perl) > + #:use-module (gnu packages ruby) > + #:use-module (gnu packages acl) > + #:use-module (gnu packages attr) > + #:use-module (gnu packages fontutils) > + #:use-module (gnu packages gettext) > + #:use-module (gnu packages glib) > + #:use-module (gnu packages gtk) > + #:use-module (gnu packages image) > + #:use-module (gnu packages linux) > + #:use-module (gnu packages lua) > + #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages python) > + #:use-module (gnu packages tcl) > + #:use-module (gnu packages xdisorg) > + #:use-module (gnu packages xorg) >#:use-module (gnu packages admin) ; For GNU hostname >#:use-module (gnu packages shells)) > > @@ -79,3 +95,69 @@ that many consider it an entire IDE. It's not just for > programmers, though. > Vim is perfect for all kinds of text editing, from composing email to editing > configuration files.") > (license license:vim))) > + > +(define-public vim-full > + (package > +(inherit vim) > +(name "vim-full") > +(version (package-version vim)) > +(source > + (origin > + (method url-fetch) > + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-; > + version ".tar.bz2")) > + (sha256 > +(base32 > + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) > + ;; Patches need to be applied sequentially. 8.0 is the release of > + ;; vim version 8.0.0002 so we start at 8.0.0003 > + (patches (search-patches "vim-8.0.0003.patch" > +"vim-8.0.0004.patch" > +"vim-8.0.0005.patch" vim-7.4 went to over 2000 patches. If we do start applying patches to our vim package then we should apply them to both versions, and it would probably be better to use the bash patch method. > +(arguments > + `(#:configure-flags > + (list (string-append "--with-lua-prefix=" > +(assoc-ref %build-inputs "lua")) > + "--with-features=huge" > + "--enable-python3interp=yes" > + "--enable-perlinterp=yes" > + "--enable-rubyinterp=yes" > + "--enable-tclinterp=yes" > + "--enable-luainterp=yes" > + "--enable-cscope" > + "--enable-sniff" > + "--enable-multibyte" > + "--enable-xim" > + "--disable-selinux" > + "--enable-gui") > + ,@(package-arguments vim))) > +(native-inputs > + `(("pkg-config" ,pkg-config))) > +(inputs > + `(("acl" ,acl) > + ("atk" ,atk) > + ("attr" ,attr) > + ("cairo" ,cairo) > + ("fontconfig" ,fontconfig) > + ("freetype" ,freetype) > + ("gdk-pixbuf" ,gdk-pixbuf) > + ("gettext" ,gnu-gettext) > + ("glib" ,glib) > + ("gpm" ,gpm) > + ("gtk" ,gtk+-2) > + ("harfbuzz" ,harfbuzz) > + ("libice" ,libice) > + ("libpng" ,libpng) > + ("libsm" ,libsm) > + ("libx11" ,libx11) > + ("libxdmcp" ,libxdmcp)