├── .gitignore ├── luv ├── NOTE.txt └── luv.cygport ├── luajit-mpack └── luajit-mpack.cygport ├── neovim └── neovim.cygport ├── msgpack-c └── msgpack-c.cygport ├── libuv └── libuv.cygport ├── unibilium └── unibilium.cygport ├── libtermkey └── libtermkey.cygport ├── luajit-lpeg └── luajit-lpeg.cygport ├── libvterm └── libvterm.cygport └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /*/*.x86_64/ 2 | -------------------------------------------------------------------------------- /luv/NOTE.txt: -------------------------------------------------------------------------------- 1 | hacked at build time: manually edited build.ninja to use -lluajit-5.1 instead of -L/usr/lib/libluajit-5.1.dll.a 2 | -------------------------------------------------------------------------------- /luajit-mpack/luajit-mpack.cygport: -------------------------------------------------------------------------------- 1 | 2 | NAME="luajit-mpack" 3 | VERSION=1.0.8 4 | RELEASE=0 5 | CATEGORY="Lua" 6 | SUMMARY="libmpack lua binding (for LuaJIT)" 7 | DESCRIPTION="libmpack lua binding" 8 | HOMEPAGE="https://github.com/libmpack/libmpack-lua" 9 | SRC_URI="https://github.com/libmpack/libmpack-lua/releases/download/${VERSION}/libmpack-lua-${VERSION}.tar.gz" 10 | SRC_DIR="libmpack-lua-${VERSION}" 11 | 12 | DEPEND="luajit-devel" 13 | 14 | src_compile() { 15 | #lndirs 16 | cd ${B} 17 | ${CC} ${CFLAGS} $(pkg-config --cflags luajit) -shared -o mpack.dll ${S}/*.c $(pkg-config --libs luajit) 18 | } 19 | 20 | src_install() { 21 | LUAJIT_LIBDIR=$(pkg-config --variable=INSTALL_CMOD luajit) 22 | dodir $LUAJIT_LIBDIR 23 | __doinstall 0755 ${B}/mpack.dll $LUAJIT_LIBDIR 24 | } 25 | -------------------------------------------------------------------------------- /neovim/neovim.cygport: -------------------------------------------------------------------------------- 1 | inherit cmake 2 | 3 | NAME="neovim" 4 | VERSION="0.4.2" 5 | RELEASE=1 6 | CATEGORY="Editors" 7 | SUMMARY="Vim-fork focused on extensibility and usability" 8 | DESCRIPTION="Neovim is a project that seeks to aggressively refactor Vim in order to: 9 | 10 | * Simplify maintenance and encourage contributions 11 | * Split the work between multiple developers 12 | * Enable advanced UIs without modifications to the core 13 | * Maximize extensibility" 14 | HOMEPAGE="https://neovim.io/" 15 | SRC_URI="https://github.com/neovim/${NAME}/archive/v${VERSION}.tar.gz#/${PN}-${PV}.tar.gz" 16 | 17 | DEPEND="pkgconfig(libuv) 18 | pkgconfig(msgpack) 19 | pkgconfig(unibilium) 20 | pkgconfig(vterm) 21 | pkgconfig(termkey) 22 | gperf 23 | luajit-lpeg 24 | luajit-mpack 25 | libiconv-devel 26 | libssp0" 27 | 28 | CYGCMAKE_ARGS="-DENABLE_JEMALLOC=off -DNVIM_LINK_LIBRARIES=-lssp" 29 | -------------------------------------------------------------------------------- /msgpack-c/msgpack-c.cygport: -------------------------------------------------------------------------------- 1 | inherit cmake 2 | 3 | NAME="msgpack-c" 4 | VERSION="3.2.0" 5 | RELEASE=0 6 | CATEGORY="Libs" 7 | SUMMARY="MessagePack implementation for C and C++" 8 | DESCRIPTION="MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller. Small integers are encoded into a single byte while typical short strings require only one extra byte in addition to the strings themselves." 9 | HOMEPAGE="https://github.com/msgpack/msgpack-c" 10 | SRC_URI="https://github.com/msgpack/${NAME}/releases/download/cpp-${VERSION}/msgpack-${VERSION}.tar.gz" 11 | 12 | SRC_DIR="msgpack-${VERSION}" 13 | 14 | PKG_NAMES="libmsgpackc2 libmsgpackc-devel" 15 | 16 | libmsgpackc2_CONTENTS="usr/bin/ usr/share/doc/" 17 | libmsgpackc2_SUMMARY="${SUMMARY}" 18 | 19 | libmsgpackc_devel_CONTENTS="usr/include/ usr/lib/*.a usr/lib/pkgconfig usr/lib/cmake" 20 | libmsgpackc_devel_SUMMARY="${SUMMARY} (development)" 21 | 22 | # makes fdopen visible for example/cpp03/stream.cpp 23 | CPPFLAGS="-D_GNU_SOURCE" 24 | -------------------------------------------------------------------------------- /libuv/libuv.cygport: -------------------------------------------------------------------------------- 1 | NAME="libuv" 2 | VERSION="1.32.0" 3 | RELEASE=0 4 | 5 | CATEGORY="Libs" 6 | DESCRIPTION="multi-platform support library with a focus on asynchronous I/O" 7 | SUMMARY="multi-platform support library with a focus on asynchronous I/O" 8 | 9 | HOMEPAGE="https://github.com/libuv/libuv" 10 | SRC_URI="https://github.com/libuv/libuv/archive/v${PV}.tar.gz" 11 | SRC_DIR="${P}" 12 | 13 | PKG_NAMES="libuv-devel libuv1" 14 | 15 | libuv1_CONTENTS="usr/bin/cyguv-1.dll" 16 | libuv1_SUMMARY="${SUMMARY} - runtime" 17 | 18 | libuv_devel_CONTENTS="usr/lib usr/include usr/share" 19 | libuv_devel_SUMMARY="${SUMMARY} - devel" 20 | 21 | DIFF_EXCLUDES="libuv-extra-automake-flags.m4" 22 | 23 | src_compile() 24 | { 25 | cd ${S} 26 | # autogen.sh creates files in m4 and run autoconf 27 | # We run also cygautoreconf to make cygport aware 28 | # of autoconf usage 29 | ./autogen.sh 30 | cygautoreconf 31 | cd ${B} 32 | cygconf 33 | cygmake 34 | } 35 | 36 | src_install() 37 | { 38 | cd ${B} 39 | cyginstall 40 | } 41 | 42 | 43 | src_test() { 44 | cd ${B} 45 | cygmake -i check 46 | } 47 | -------------------------------------------------------------------------------- /unibilium/unibilium.cygport: -------------------------------------------------------------------------------- 1 | NAME="unibilium" 2 | VERSION="2.0.0" 3 | RELEASE=0 4 | 5 | CATEGORY="Libs" 6 | SUMMARY="a terminfo parsing library" 7 | DESCRIPTION="Unibilium is a very basic terminfo library. It can read and write ncurses-style terminfo files. It doesn't depend on curses or any other library. It also doesn't use global variables, so it should be thread-safe." 8 | 9 | HOMEPAGE="https://github.com/mauke/${NAME}" 10 | SRC_URI="https://github.com/mauke/${NAME}/archive/v${VERSION}.tar.gz#/${PN}-${PV}.tar.gz" 11 | 12 | PKG_NAMES="lib${NAME}4 lib${NAME}-devel lib${NAME}-doc" 13 | 14 | libunibilium4_CONTENTS="usr/bin/ usr/share/doc/" 15 | libunibilium4_SUMMARY="${SUMMARY}" 16 | 17 | libunibilium_devel_CONTENTS="usr/include/ usr/lib/*.a usr/lib/pkgconfig" 18 | libunibilium_devel_SUMMARY="${SUMMARY} (development)" 19 | 20 | libunibilium_doc_CONTENTS="usr/share/man" 21 | libunibilium_doc_SUMMARY="${SUMMARY} (API documentation)" 22 | 23 | LDFLAGS="-no-undefined" 24 | 25 | src_compile() { 26 | cd ${B} 27 | lndirs 28 | cygmake PREFIX=/usr 29 | } 30 | 31 | src_install() { 32 | cd ${B} 33 | cyginstall PREFIX=/usr 34 | } 35 | -------------------------------------------------------------------------------- /libtermkey/libtermkey.cygport: -------------------------------------------------------------------------------- 1 | NAME="libtermkey" 2 | VERSION="0.22" 3 | RELEASE=0 4 | 5 | CATEGORY="Libs" 6 | SUMMARY="easy processing of keyboard entry from terminal-based programs" 7 | DESCRIPTION="This library allows easy processing of keyboard entry from terminal-based programs. It handles all the necessary logic to recognise special keys, UTF-8 combining, and so on, with a simple interface." 8 | HOMEPAGE="http://www.leonerd.org.uk/code/${NAME}/" 9 | SRC_URI="http://www.leonerd.org.uk/code/${NAME}/${NAME}-${VERSION}.tar.gz" 10 | 11 | DEPEND="pkgconfig(unibilium)" 12 | 13 | LDFLAGS="-no-undefined" 14 | 15 | PKG_NAMES="${NAME}1 ${NAME}-devel ${NAME}-doc" 16 | 17 | libtermkey1_CONTENTS="usr/bin/ usr/share/doc/" 18 | libtermkey1_SUMMARY="${SUMMARY}" 19 | 20 | libtermkey_devel_CONTENTS="usr/include/ usr/lib/*.a usr/lib/pkgconfig" 21 | libtermkey_devel_SUMMARY="${SUMMARY} (development)" 22 | 23 | libtermkey_doc_CONTENTS="usr/share/man" 24 | libtermkey_doc_SUMMARY="${SUMMARY} (API documentation)" 25 | 26 | src_compile() { 27 | cd ${B} 28 | lndirs 29 | cygmake PREFIX=/usr 30 | } 31 | 32 | src_install() { 33 | cd ${B} 34 | cyginstall PREFIX=/usr 35 | } 36 | -------------------------------------------------------------------------------- /luajit-lpeg/luajit-lpeg.cygport: -------------------------------------------------------------------------------- 1 | 2 | NAME="luajit-lpeg" 3 | VERSION=1.0.2 4 | RELEASE=0 5 | CATEGORY="Lua" 6 | SUMMARY="Lua Parsing Expression Grammars extension (for luajit)" 7 | DESCRIPTION="LPeg is a pattern-matching library for Lua, based on Parsing 8 | Expression Grammars (PEGs)." 9 | HOMEPAGE="http://www.inf.puc-rio.br/~roberto/lpeg/" 10 | SRC_URI="http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-${VERSION}.tar.gz" 11 | SRC_DIR="lpeg-${VERSION}" 12 | 13 | DEPEND="luajit" 14 | 15 | LUA_CFLAGS=$(pkg-config --cflags luajit) 16 | LUA_LIBS=$(pkg-config --libs luajit) 17 | LUA=/usr/bin/luajit 18 | LUA_LIBDIR=$(pkg-config --variable=INSTALL_CMOD luajit) 19 | LUA_SCRIPTDIR=$(pkg-config --variable=INSTALL_LMOD luajit) 20 | 21 | src_compile() { 22 | lndirs 23 | cd ${B} 24 | inform "compiling lpeg.dll" 25 | ${CC} ${CFLAGS} ${LUA_CFLAGS} -shared -o lpeg.dll *.c ${LUA_LIBS} 26 | } 27 | 28 | src_test() { 29 | cd ${B} 30 | ${LUA} ./test.lua 31 | } 32 | 33 | src_install() { 34 | cd ${B} 35 | dodir $LUA_LIBDIR 36 | __doinstall 0755 lpeg.dll $LUA_LIBDIR 37 | dodir $LUA_SCRIPTDIR 38 | __doinstall 0644 re.lua $LUA_SCRIPTDIR 39 | dodoc *.html 40 | } 41 | -------------------------------------------------------------------------------- /libvterm/libvterm.cygport: -------------------------------------------------------------------------------- 1 | NAME="libvterm" 2 | VERSION="0.1.1" 3 | RELEASE=0 4 | 5 | CATEGORY="Libs" 6 | SUMMARY="abstract library implementation of a VT220/xterm/ECMA-48 terminal emulator" 7 | DESCRIPTION="An abstract C99 library which implements a VT220 or xterm-like terminal emulator. It doesn't use any particular graphics toolkit or output system, instead it invokes callback function pointers that its embedding program should provide it to draw on its behalf. It avoids calling malloc() during normal running state, allowing it to be used in embedded kernel situations." 8 | HOMEPAGE="http://www.leonerd.org.uk/code/${NAME}/" 9 | SRC_URI="http://www.leonerd.org.uk/code/${NAME}/${NAME}-${VERSION}.tar.gz" 10 | 11 | LDFLAGS="-no-undefined" 12 | 13 | PKG_NAMES="${NAME}0 ${NAME}-bin ${NAME}-devel" 14 | 15 | libvterm0_CONTENTS="usr/bin/*.dll usr/share/doc/" 16 | libvterm0_SUMMARY="${SUMMARY}" 17 | 18 | libvterm_bin_CONTENTS="usr/bin/*.exe" 19 | libvterm_bin_SUMMARY="${SUMMARY} (demo programs)" 20 | 21 | libvterm_devel_CONTENTS="usr/include/ usr/lib/*.a usr/lib/pkgconfig" 22 | libvterm_devel_SUMMARY="${SUMMARY} (development)" 23 | 24 | src_compile() { 25 | cd ${B} 26 | lndirs 27 | cygmake PREFIX=/usr 28 | } 29 | 30 | src_install() { 31 | cd ${B} 32 | cyginstall PREFIX=/usr 33 | } 34 | -------------------------------------------------------------------------------- /luv/luv.cygport: -------------------------------------------------------------------------------- 1 | inherit cmake 2 | 3 | # TODO rename to lua-luv?? 4 | NAME="luv" 5 | SRC_VERSION="1.30.1-1" 6 | VERSION="1.30.1.1" 7 | RELEASE=0 8 | 9 | CATEGORY="Libs" 10 | DESCRIPTION="Bare libuv bindings for lua" 11 | SUMMARY="Bare libuv bindings for lua" 12 | 13 | HOMEPAGE="https://github.com/luvit/luv" 14 | SRC_URI="https://github.com/luvit/luv/releases/download/${SRC_VERSION}/${NAME}-${SRC_VERSION}.tar.gz" 15 | SRC_DIR="${PN}-${SRC_VERSION}" 16 | 17 | PKG_NAMES="libluv1 libluv-devel" 18 | 19 | CYGCMAKE_ARGS="-DLUA_BUILD_TYPE=System -DWITH_SHARED_LIBUV=ON -DBUILD_MODULE=OFF -DBUILD_SHARED_LIBS=ON" 20 | 21 | libluv1_CONTENTS="usr/bin/*.dll" 22 | libluv1_SUMMARY="${SUMMARY} - runtime" 23 | 24 | libluv_devel_CONTENTS="usr/lib usr/include usr/share" 25 | libluv_devel_SUMMARY="${SUMMARY} - devel" 26 | 27 | #DIFF_EXCLUDES="libuv-extra-automake-flags.m4" 28 | 29 | #src_compile() 30 | #{ 31 | # cd ${S} 32 | # autogen.sh creates files in m4 and run autoconf 33 | # We run also cygautoreconf to make cygport aware 34 | # of autoconf usage 35 | # ./autogen.sh 36 | # cygautoreconf 37 | # cd ${B} 38 | # cygconf 39 | # cygmake 40 | #} 41 | 42 | src_install() 43 | { 44 | cd ${B} 45 | ninja_install 46 | dobin cygluv-1.dll 47 | } 48 | 49 | 50 | #src_test() { 51 | # cd ${B} 52 | # cygmake -i check 53 | #} 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # neovim-cygport 2 | Contains cygport files to build [neovim](https://neovim.io/), currently 0.4.2, for Cygwin. I've used neovim on Cygwin for two years. 3 | 4 | [Could these packages be included in Cygwin someday? Would they be, if submitted appropriately?](https://github.com/cascent/neovim-cygwin/issues/3) I don't like mailing lists so I haven't tried. 5 | 6 | ## Binary packages 7 | There is an ancient x86_64 build of neovim 0.2.2, from December 2017, available as a [tagged release](https://github.com/cascent/neovim-cygwin/releases). I do not know if this will work with a recent Cygwin installation and do not recommend trying it. 8 | 9 | ## Building 10 | Use [cygport](https://github.com/cygwinports/cygport) to build these. 11 | 12 | If you'd like better instructions, or an easier process to use these cygport definitions, please create an issue. If you've already made an improvement, please submit a pull request. 13 | 14 | ### Build order 15 | luv depends on libuv, libtermkey has an optional dependency on unibilium, and neovim depends on all the other packages (though luajit-mpack and luajit-lpeg are build time dependencies). 16 | 17 | 1. libuv libvterm luajit-lpeg luajit-mpack msgpack-c unibilium 18 | 1. libtermkey luv 19 | 1. neovim 20 | 21 | ## Installing 22 | To use generated packages with Cygwin's installer, move the dist/ dirs into a directory called x86\_64 (or x86 if building 32-bit packagess), use [mksetupini](https://cygwin.com/git/?p=cygwin-apps/calm.git;a=blob;f=calm/mksetupini.py;h=e7337fe18e77003be43559f1c8a686882d11ded1;hb=bcf17529eb9ca8ae85f1df7d0f39ea9a277fd378) from [calm](https://cygwin.com/git/?p=cygwin-apps/calm.git) to generate a setup.ini file, then run setup and specify the parent directory as a site. The commands I use (including signing, which is not necessary) are: 23 | 24 | mksetupini --arch x86_64 --inifile x86_64/setup.ini --releasearea=. --okmissing required-package; and gpg --local-user=cygwin@host --detach-sign x86_64/setup.ini 25 | ~/Downloads/setup-x86_64.exe --no-shortcuts --root=(cygpath -w /) --site= --site=(cygpath -w (pwd)) --pubkey=(cygpath -w ~/cygwin-dsa.key) 26 | --------------------------------------------------------------------------------