Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

include common tools in Windows build #1811

Closed
8 tasks done
justinmk opened this issue Jan 13, 2015 · 13 comments
Closed
8 tasks done

include common tools in Windows build #1811

justinmk opened this issue Jan 13, 2015 · 13 comments
Labels
distribution packaging and distributing Nvim to users platform:windows
Milestone

Comments

@justinmk
Copy link
Member

justinmk commented Jan 13, 2015

By including common tools such as curl and xxd, we can build things on top of those tools and know that they will work on all platforms. Here's a list (subject to modification and suggestions):

The vim-single-drop project may have some useful techniques to look at.

If we cannot include these tools as part of the Windows deliverable, for legal or technical reasons, then they should be available by a single post-installation step.


Note: I mention vim-single-drop only as a reference. I think bundling entire runtimes such as python, ruby, etc. with a text editor is not a good idea and adds a huge support burden.

@justinmk justinmk added platform:windows install distribution packaging and distributing Nvim to users labels Jan 13, 2015
@tarruda
Copy link
Member

tarruda commented Jan 13, 2015

How about distributing it with msys? This is already done by projects such as git for windows.

@ghost
Copy link

ghost commented Jan 13, 2015

That would increase the size of the software greatly.
Just some components of GnuWin32 (like grep, unix2dos, ctags, indent, etc.) might be ok. If needed, the users could install msys by themselves, and that would be more flexible.

@tarruda
Copy link
Member

tarruda commented Jan 13, 2015

That would increase the size of the software greatly.
Just some components of GnuWin32 (like grep, unix2dos, ctags, indent, etc.) might be ok. If needed, the users could install msys by themselves, and that would be more flexible.

Agreed. Maybe we should just include the tools required by vim commands(bourne shell, diff..)

@ghost
Copy link

ghost commented Jan 13, 2015

I'm not sure whether bourne shell is necessary on windows or not.
As a vim user on windows for many years, I use shell only in vimrc to have a shortcut of invoking indent, ctags or pdflatex. Besides, there is also windows shell.
just personal opinion :)

@tarruda
Copy link
Member

tarruda commented Jan 13, 2015

@zj-1 at least on unix, vim makes a lot of use of bourne shell features:

  • Redirection is used by system() function and by commands such as :diff*
  • Command completion is implemented by globbing the shell
  • Bang commands are passed directly to the shell

I'm not sure how these are implemented by vim on windows, but if it uses cmd.exe the result could be inconsistent. By shipping a lightweight bourne shell we eliminate many of these inconsistencies.

@justinmk
Copy link
Member Author

MSYS (and cygwin) have major problems, but MSYS2 could be worth looking at. It's a big liability/support risk though.

Redirection is used by system() function and by commands such as :diff*

cmd.exe actually has redirection and piping (and Vim uses it). I'm not sure about how Vim for Windows handles advanced globbing though, if at all.

Also keep in mind that the MSYS shell is still hosted by cmd.exe, so it won't avoid encoding or terminal-related issues.

My goal for this issue, at least, is a minimum, low-risk, high-impact set of tools. E.g., having curl gives plugins (and Neovim itself) a reliable option for making HTTP requests, at very little risk. We can save Windows Neovim users the annoyance of having to hunt for a few basic tools, and this small gesture has a disproportionately large impact on plugins and editor abilities.

@justinmk justinmk added this to the 0.3 milestone Aug 19, 2015
@equalsraf
Copy link
Contributor

Also something that can be used for clipboard.vim, @fmoralesc pointed out gclip and winclip

equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 19, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 20, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 24, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 24, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 24, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 27, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 29, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Dec 29, 2015
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Jan 3, 2016
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Jan 4, 2016
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Jan 7, 2016
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue Jan 9, 2016
For neovim#1811. Download diff (from GnuWin32) and winclip and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 1, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 3, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 6, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 7, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 11, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 16, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank and install them
along with nvim.exe. diff required additional dependencies libiconv2.dll
and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 16, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank. diff required additional
dependencies libiconv2.dll and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 23, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank. diff required additional
dependencies libiconv2.dll and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 27, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank. diff required additional
dependencies libiconv2.dll and libintl3.dll.
equalsraf added a commit to equalsraf/neovim that referenced this issue May 27, 2016
For neovim#1811. Download diff (from GnuWin32) and win32yank. diff required additional
dependencies libiconv2.dll and libintl3.dll.
justinmk added a commit to justinmk/neovim that referenced this issue Feb 9, 2017
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
Closes neovim#1811

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
Closes neovim#1811

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
Closes neovim#1811

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
Closes neovim#1811
References neovim#1507

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss

http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy.exe version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.
@justinmk justinmk modified the milestones: 0.2, 0.3 Feb 10, 2017
justinmk added a commit to justinmk/neovim that referenced this issue Feb 10, 2017
Closes neovim#1811
References neovim#1507

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss

http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy.exe version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.
justinmk added a commit to justinmk/neovim that referenced this issue Feb 12, 2017
Closes neovim#1811
References neovim#1507

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss

http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy.exe version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.
justinmk added a commit to justinmk/neovim that referenced this issue Feb 12, 2017
Closes neovim#1811
References neovim#1507

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss
    cat, diff, tee

http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy.exe version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.
justinmk added a commit to justinmk/neovim that referenced this issue Feb 13, 2017
Closes neovim#1811
References neovim#1507

curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

swiss POSIX utils: https://github.com/minoca/swiss
    cat, diff, tee

http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy.exe version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.
justinmk added a commit to justinmk/neovim that referenced this issue Feb 16, 2017
References neovim#1507
Closes neovim#1811

curl.exe curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

tidy.exe http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.

7za.exe http://www.7-zip.org
    7-Zip 16.04 (2016-10-04)

cat.exe http://unxutils.sourceforge.net

from gVim:
    diff.exe GNU diffutils version 2.7
    xxd.exe V1.10 27oct98 by Juergen Weigert (Win32)
    ye olde hacked-up tee.exe
justinmk added a commit to justinmk/neovim that referenced this issue Feb 16, 2017
References neovim#1507
Closes neovim#1811

curl.exe curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

tidy.exe http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.

7za.exe http://www.7-zip.org
    7-Zip 16.04 (2016-10-04)

cat.exe http://unxutils.sourceforge.net

from gVim:
    diff.exe GNU diffutils version 2.7
    xxd.exe V1.10 27oct98 by Juergen Weigert (Win32)
    ye olde hacked-up tee.exe
justinmk added a commit to justinmk/neovim that referenced this issue Feb 16, 2017
References neovim#1507
Closes neovim#1811

curl.exe curl_7_52_1_openssl_nghttp2_x86.7z from https://winampplugins.co.uk/curl/
    curl 7.52.1 (x86_64-pc-win32) libcurl/7.52.1 OpenSSL/1.0.2k zlib/1.2.8 nghttp2/1.19.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IPv6 Largefile NTLM SSL libz HTTP2 HTTPS-proxy

tidy.exe http://tidybatchfiles.info
    HTML Tidy for Windows
    tidy version 5.3.14 date 2017.01.09 compiled for Windows win32 x86.

7za.exe http://www.7-zip.org
    7-Zip 16.04 (2016-10-04)

cat.exe http://unxutils.sourceforge.net

from gVim:
    diff.exe GNU diffutils version 2.7
    xxd.exe V1.10 27oct98 by Juergen Weigert (Win32)
    ye olde hacked-up tee.exe
@paulburlumi
Copy link
Contributor

If I download the nightly win64 build I still don't see xxd.exe.
Is this just some difference between release and nightly builds or an omission from 2fbc42a?

@justinmk
Copy link
Member Author

justinmk commented Apr 6, 2018

@paulburlumi That was an oversight, #8241 should fix it. Thanks for mentioning it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
distribution packaging and distributing Nvim to users platform:windows
Projects
None yet
Development

No branches or pull requests

5 participants