├── legacy-icon.ico ├── archive ├── build.sh └── build.bat ├── Dockerfile ├── Dockerfile.mingw-x64 ├── Dockerfile.mingw-x86 ├── README.md ├── .github └── workflows │ ├── cron.yml │ └── manually.yml └── LICENSE /legacy-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lxhillwind/vim-bin/HEAD/legacy-icon.ico -------------------------------------------------------------------------------- /archive/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run -i --rm -v "$PWD":/out -w /root alpine /bin/sh < /out/vim/AppRun && chmod +x /out/vim/AppRun 45 | 46 | RUN strip /out/vim/bin/vim 47 | RUN chown -R $(id -u):$(id -g) /out/vim 48 | 49 | RUN tar -acf /out/vim-${VIM_VERSION}.tar.xz -C /out vim 50 | 51 | RUN echo 'run `docker run --rm -i NAME-OF-THIS-IMAGE cat /out/vim-${VIM_VERSION}.tar.xz > OUTPUT-FILENAME.tar.xz` to get result file.' 52 | -------------------------------------------------------------------------------- /Dockerfile.mingw-x64: -------------------------------------------------------------------------------- 1 | # vim:ft=dockerfile 2 | 3 | # specify architecture. 4 | FROM fedora:41 5 | ARG ARCH=x86_64 6 | ARG MINGW_PREFIX=mingw64 7 | 8 | WORKDIR /root 9 | RUN dnf install -y gcc make ${MINGW_PREFIX}-gcc ${MINGW_PREFIX}-gcc-c++ ${MINGW_PREFIX}-winpthreads 10 | RUN dnf install -y p7zip p7zip-plugins curl 11 | 12 | ARG VIM_VERSION=v7.2 13 | RUN curl -L -o ./${VIM_VERSION}.tar.gz https://github.com/vim/vim/archive/${VIM_VERSION}.tar.gz 14 | RUN tar xf ${VIM_VERSION}.tar.gz 15 | 16 | RUN mkdir -p /out/vim 17 | 18 | # windres tweak 19 | RUN printf '%s\n%s\n' '#!/bin/sh' 'exec /usr/bin/'$ARCH'-w64-mingw32-windres "$@"' > /usr/local/bin/windres && chmod +x /usr/local/bin/windres 20 | 21 | # `echo $ARCH | tr _ -`: x86_64 -> x86-64. 22 | RUN cd vim-*/src && \ 23 | sed -i -E 's/^CROSS=.+/CROSS=yes/' Make_cyg_ming.mak && \ 24 | sed -i -E 's/^CSCOPE=.+/CSCOPE=no/' Make_cyg_ming.mak && \ 25 | sed -i -E 's/^NETBEANS=.+/NETBEANS=no/' Make_cyg_ming.mak && \ 26 | sed -i -E 's/^GETTEXT=.+/GETTEXT=no/' Make_cyg_ming.mak && \ 27 | { if [ "$ARCH" = i686 ]; then \ 28 | cp /tmp/vim.ico ../runtime/bitmaps/ && \ 29 | cp /tmp/vim.ico ./ && \ 30 | sed -i '1 i#define GetFinalPathNameByHandleW(a, b, c, d) 0' os_mswin.c && \ 31 | sed -i '1 i#define GetConsoleScreenBufferInfoEx(a, b) ;' os_win32.c && \ 32 | sed -i '1 i#define SetConsoleScreenBufferInfoEx(a, b) ;' os_win32.c && \ 33 | sed -i '1 i#define MOUSE_HWHEELED 0x8 /* only defined for NT6.0+ */' os_win32.c && \ 34 | printf '%s\n%s\n%s\n%s\n' '#ifdef _WIN32' 'int is_cygpty(int fd) { return 0; }' 'int is_cygpty_used(void) { return 0; }' '#endif' > iscygpty.c && \ 35 | sed -i '1 i#define wcscpy_s(a, b, c) ;' os_mswin.c && \ 36 | sed -i -E 's/^.*-lstdc.*/LIB += -static-libstdc++ -static-libgcc/' Make_cyg_ming.mak; \ 37 | fi; } && \ 38 | env VIMDLL=yes WINVER=$(if [ "$ARCH" = i686 ]; then echo 0x0501; else echo 0x0601; fi) ARCH=$(echo $ARCH | tr _ -) CROSS_COMPILE=$ARCH-w64-mingw32- STATIC_STDCPLUS=yes STATIC_WINPTHREAD=yes \ 39 | make -f Make_ming.mak gvim.exe vim.exe tee/tee.exe xxd/xxd.exe vimrun.exe && \ 40 | mv vim*.dll gvim.exe vim.exe tee/tee.exe xxd/xxd.exe vimrun.exe /out/vim/ 41 | 42 | RUN cp -r vim-*/runtime /out/vim 43 | 44 | RUN cd /out && 7z a vim-${VIM_VERSION}.7z vim 45 | RUN cd /out && 7z a vim-${VIM_VERSION}.zip vim 46 | 47 | RUN echo 'run `docker run --rm -i NAME-OF-THIS-IMAGE cat /out/vim-${VIM_VERSION}.7z > OUTPUT-FILENAME.7z` to get result file.' 48 | RUN echo 'run `docker run --rm -i NAME-OF-THIS-IMAGE cat /out/vim-${VIM_VERSION}.zip > OUTPUT-FILENAME.zip` to get result file.' 49 | -------------------------------------------------------------------------------- /Dockerfile.mingw-x86: -------------------------------------------------------------------------------- 1 | # vim:ft=dockerfile 2 | 3 | # specify architecture. 4 | FROM fedora:41 5 | ARG ARCH=i686 6 | ARG MINGW_PREFIX=mingw32 7 | 8 | WORKDIR /root 9 | RUN dnf install -y gcc make ${MINGW_PREFIX}-gcc ${MINGW_PREFIX}-gcc-c++ ${MINGW_PREFIX}-winpthreads 10 | RUN dnf install -y p7zip p7zip-plugins curl 11 | 12 | COPY legacy-icon.ico /tmp/vim.ico 13 | 14 | ARG VIM_VERSION=v7.2 15 | RUN curl -L -o ./${VIM_VERSION}.tar.gz https://github.com/vim/vim/archive/${VIM_VERSION}.tar.gz 16 | RUN tar xf ${VIM_VERSION}.tar.gz 17 | 18 | RUN mkdir -p /out/vim 19 | 20 | # windres tweak 21 | RUN printf '%s\n%s\n' '#!/bin/sh' 'exec /usr/bin/'$ARCH'-w64-mingw32-windres "$@"' > /usr/local/bin/windres && chmod +x /usr/local/bin/windres 22 | 23 | # `echo $ARCH | tr _ -`: x86_64 -> x86-64. 24 | RUN cd vim-*/src && \ 25 | sed -i -E 's/^CROSS=.+/CROSS=yes/' Make_cyg_ming.mak && \ 26 | sed -i -E 's/^CSCOPE=.+/CSCOPE=no/' Make_cyg_ming.mak && \ 27 | sed -i -E 's/^NETBEANS=.+/NETBEANS=no/' Make_cyg_ming.mak && \ 28 | sed -i -E 's/^GETTEXT=.+/GETTEXT=no/' Make_cyg_ming.mak && \ 29 | { if [ "$ARCH" = i686 ]; then \ 30 | cp /tmp/vim.ico ../runtime/bitmaps/ && \ 31 | cp /tmp/vim.ico ./ && \ 32 | sed -i '1 i#define GetFinalPathNameByHandleW(a, b, c, d) 0' os_mswin.c && \ 33 | sed -i '1 i#define GetConsoleScreenBufferInfoEx(a, b) ;' os_win32.c && \ 34 | sed -i '1 i#define SetConsoleScreenBufferInfoEx(a, b) ;' os_win32.c && \ 35 | sed -i '1 i#define MOUSE_HWHEELED 0x8 /* only defined for NT6.0+ */' os_win32.c && \ 36 | printf '%s\n%s\n%s\n%s\n' '#ifdef _WIN32' 'int is_cygpty(int fd) { return 0; }' 'int is_cygpty_used(void) { return 0; }' '#endif' > iscygpty.c && \ 37 | sed -i '1 i#define wcscpy_s(a, b, c) ;' os_mswin.c && \ 38 | sed -i -E '/^DEFINES \+= -DHAVE_INET_NTOP$/d' Make_cyg_ming.mak && \ 39 | sed -i -E 's/^.*-lstdc.*/LIB += -static-libstdc++ -static-libgcc/' Make_cyg_ming.mak; \ 40 | fi; } && \ 41 | env VIMDLL=yes WINVER=$(if [ "$ARCH" = i686 ]; then echo 0x0501; else echo 0x0601; fi) ARCH=$(echo $ARCH | tr _ -) CROSS_COMPILE=$ARCH-w64-mingw32- STATIC_STDCPLUS=yes STATIC_WINPTHREAD=yes \ 42 | make -f Make_ming.mak gvim.exe vim.exe tee/tee.exe xxd/xxd.exe vimrun.exe && \ 43 | mv vim*.dll gvim.exe vim.exe tee/tee.exe xxd/xxd.exe vimrun.exe /out/vim/ 44 | 45 | RUN cp -r vim-*/runtime /out/vim 46 | 47 | RUN cd /out && 7z a vim-${VIM_VERSION}.7z vim 48 | RUN cd /out && 7z a vim-${VIM_VERSION}.zip vim 49 | 50 | RUN echo 'run `docker run --rm -i NAME-OF-THIS-IMAGE cat /out/vim-${VIM_VERSION}.7z > OUTPUT-FILENAME.7z` to get result file.' 51 | RUN echo 'run `docker run --rm -i NAME-OF-THIS-IMAGE cat /out/vim-${VIM_VERSION}.zip > OUTPUT-FILENAME.zip` to get result file.' 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vim build 2 | 3 | ## feature 4 | 5 | - linux 6 | - x64 build; 7 | - do not depend on system libc; 8 | - provides a `vim/AppRun` script to make the build "portable" (you can put 9 | the directory anywhere, then simply `ln -s path-to-AppRun desired-path`); 10 | 11 | - win32 12 | - x86 / x64 build; 13 | - no OLE (so portable); 14 | - you can create a desktop shortcut to `vim/gvim.exe`; or just add the 15 | directory to `$PATH`; 16 | 17 | directory structure: 18 | 19 | ```console 20 | # win32 build 21 | vim/ 22 | vim/runtime/ 23 | vim/gvim.exe 24 | vim/tee.exe 25 | vim/vim.exe 26 | vim/vim32.dll 27 | vim/vimrun.exe 28 | vim/xxd.exe 29 | 30 | # linux build 31 | vim/ 32 | vim/AppRun 33 | vim/bin/ 34 | vim/bin/xxd 35 | vim/bin/vim 36 | vim/runtime/ 37 | ``` 38 | 39 |
40 | 41 | 42 | about build script 43 | 44 | 45 | For linux, 46 | [archive/build.sh](archive/build.sh) is from , 47 | [modified](Dockerfile) to be used in docker. 48 | 49 | For win32, 50 | [archive/build.bat](archive/build.bat) is from . 51 | 52 | (But now I use [mingw 32bit](Dockerfile.mingw-x86) / [mingw 64bit](Dockerfile.mingw-x64) to compile instead; instruction can be found in 53 | 54 | ) 55 | 56 |
57 | 58 | ## note for Windows 59 | 60 | winpty is not included; download it manually from 61 | . 62 | 63 | ```sh 64 | # example for x86: 65 | curl -L https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msys2-2.7.0-ia32.tar.gz -o winpty.tar.gz 66 | tar --strip-components=1 -xf winpty.tar.gz 67 | cp bin/winpty.dll $VIMRUNTIME/winpty32.dll 68 | cp bin/winpty-agent.exe $VIMRUNTIME/ 69 | ``` 70 | 71 | **winpty32.dll / winpty64.dll** (instead of default filename winpty.dll): 72 | required to make git-for-bash work in vim embedded terminal. 73 | 74 | ## how to build on your own host 75 | 76 | ```sh 77 | # linux build 78 | docker build --build-arg VIM_VERSION=v8.2.2845 -t build-vim-8 . 79 | 80 | # win32 x86 build 81 | docker build --build-arg VIM_VERSION=v8.2.2845 -f Dockerfile.mingw-x86 -t build-vim-win32-x86 . 82 | ``` 83 | 84 | `VIM_VERSION` is tag name in . 85 | 86 | ## about x86 build for Windows XP 87 | 88 | The (officially) newest version running on Windows XP: v9.0.0495; 89 | patch [v9.0.0496](https://github.com/vim/vim/commit/27b53be3a6a340f1858bcd31233fe2efc86f8e15) drops Windows XP support. 90 | 91 | Version after it may work, but the compilation process requires patch (see 92 | [Dockerfile.mingw-x86](Dockerfile.mingw-x86)); otherwise it won't even compile. 93 | 94 | [legacy icon](./legacy-icon.ico) is from 95 | ; it is viewable in 96 | Windows XP, though low resolution. 97 | -------------------------------------------------------------------------------- /archive/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :: Batch file for building/testing Vim on AppVeyor 3 | 4 | setlocal ENABLEDELAYEDEXPANSION 5 | 6 | :: ---------------------------------------------------------------------- 7 | :: Download URLs, local dirs and versions 8 | :: vim 9 | :: TODO 10 | set VIM_URL=https://github.com/vim/vim/archive/%VIM_VERSION%.zip 11 | :: winpty 12 | set WINPTY_URL=https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msys2-2.7.0-ia32.tar.gz 13 | 14 | :: Subsystem version (targeting Windows XP) 15 | set SUBSYSTEM_VER=5.01 16 | :: ---------------------------------------------------------------------- 17 | 18 | if /I "%1"=="" ( 19 | set target=build 20 | ) else ( 21 | set target=%1 22 | ) 23 | 24 | goto %target% 25 | echo Unknown build target. 26 | exit 1 27 | 28 | 29 | :install 30 | :: ---------------------------------------------------------------------- 31 | @echo on 32 | 33 | :: Get Vim source code 34 | call :downloadfile %VIM_URL% vim.zip 35 | 7z x -y vim.zip 36 | move vim-* vim-src 37 | 38 | if not exist downloads mkdir downloads 39 | 40 | :: Install winpty 41 | call :downloadfile %WINPTY_URL% downloads\winpty.tar.gz 42 | md c:\winpty 43 | tar --strip-components=1 -xf downloads\winpty.tar.gz -C c:\winpty || exit 1 44 | :: ignore x64 45 | copy /Y c:\winpty\bin\winpty.dll vim-src\src\winpty32.dll 46 | copy /Y c:\winpty\bin\winpty-agent.exe vim-src\src\ 47 | 48 | :: Show PATH for debugging 49 | path 50 | 51 | @echo off 52 | goto :eof 53 | 54 | 55 | :build 56 | :: ---------------------------------------------------------------------- 57 | @echo on 58 | cd vim-src\src 59 | 60 | :: Setting for targeting Windows XP 61 | set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A 62 | set INCLUDE=%WinSdk71%\Include;%INCLUDE% 63 | set "LIB=%WinSdk71%\Lib;%LIB%" 64 | set CL=/D_USING_V110_SDK71_ 65 | 66 | :: Build GUI version 67 | call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" 68 | nmake -f Make_mvc.mak ^ 69 | GUI=yes OLE=no DIRECTX=yes ^ 70 | FEATURES=HUGE IME=yes MBYTE=yes ICONV=no DEBUG=no ^ 71 | TERMINAL=yes ^ 72 | || exit 1 73 | :: Build CUI version 74 | nmake -f Make_mvc.mak ^ 75 | GUI=no OLE=no DIRECTX=no ^ 76 | FEATURES=HUGE IME=yes MBYTE=yes ICONV=no DEBUG=no ^ 77 | TERMINAL=yes ^ 78 | || exit 1 79 | 80 | :check_executable 81 | :: ---------------------------------------------------------------------- 82 | start /wait .\gvim -u NONE -c "redir @a | ver | 0put a | wq!" ver.txt 83 | type ver.txt 84 | .\vim --version 85 | :: Print interface versions 86 | start /wait .\gvim -u NONE -S ..\..\if_ver.vim -c quit 87 | type if_ver.txt 88 | @echo off 89 | goto :eof 90 | 91 | 92 | :package 93 | :: ---------------------------------------------------------------------- 94 | @echo on 95 | call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" 96 | cd vim-src\src 97 | 98 | :: Create zip packages 99 | copy /Y ..\README.txt ..\runtime 100 | copy /Y ..\vimtutor.bat ..\runtime 101 | copy /Y *.exe ..\runtime\ 102 | copy /Y xxd\*.exe ..\runtime 103 | copy /Y tee\*.exe ..\runtime 104 | copy /Y ..\..\diff.exe ..\runtime\ 105 | copy /Y winpty* ..\runtime\ 106 | copy /Y winpty* ..\..\ 107 | rem vim v8.2.0001 -> v82 108 | set dir=vim%VIM_VERSION:~1,1%%VIM_VERSION:~3,1% 109 | mkdir ..\..\vim\%dir% 110 | xcopy ..\runtime ..\..\vim\%dir% /Y /E /V /I /H /R /Q 111 | 112 | @echo off 113 | goto :eof 114 | 115 | 116 | :downloadfile 117 | :: ---------------------------------------------------------------------- 118 | :: call :downloadfile 119 | if not exist %2 ( 120 | curl -f -L %1 -o %2 121 | ) 122 | if ERRORLEVEL 1 ( 123 | rem Retry once. 124 | curl -f -L %1 -o %2 || exit 1 125 | ) 126 | @goto :eof 127 | -------------------------------------------------------------------------------- /.github/workflows/cron.yml: -------------------------------------------------------------------------------- 1 | name: Build Auto 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 1 * *' 6 | 7 | jobs: 8 | 9 | version-detect: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - name: Detect latest stable version 15 | run: printf '%s\n' "$(curl -Ls https://api.github.com/repos/vim/vim/tags | jq '.[0].name' -r)" > latest.txt 16 | 17 | - name: Gather all tagged version 18 | run: curl -Ls https://api.github.com/repos/lxhillwind/vim-bin/releases | jq -r '.[].tag_name' | sort > tagged.txt 19 | 20 | - name: Detect if tagged 21 | # fail if already exists. 22 | run: test -z "$(comm -12 latest.txt tagged.txt)" 23 | 24 | - name: Share version 25 | uses: actions/upload-artifact@v4 26 | with: 27 | name: ver 28 | path: latest.txt 29 | 30 | build-linux: 31 | 32 | runs-on: ubuntu-latest 33 | needs: version-detect 34 | 35 | steps: 36 | - name: Checkout repo 37 | uses: actions/checkout@v3 38 | 39 | - name: Download version 40 | uses: actions/download-artifact@v4 41 | with: 42 | name: ver 43 | 44 | - name: Build the Docker image 45 | run: docker build . --file Dockerfile --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build:$(cat latest.txt) 46 | 47 | - name: Generate artifacts 48 | run: docker run --rm -i vim-build:$(cat latest.txt) cat /out/vim-$(cat latest.txt).tar.xz > vim-linux-x64.tar.xz 49 | 50 | - name: Upload binary 51 | uses: actions/upload-artifact@v4 52 | with: 53 | name: vim-linux 54 | path: vim-linux-x64.tar.xz 55 | 56 | build-win32-x86: 57 | 58 | runs-on: ubuntu-latest 59 | needs: version-detect 60 | 61 | steps: 62 | - name: Checkout repo 63 | uses: actions/checkout@v3 64 | 65 | - name: Download version 66 | uses: actions/download-artifact@v4 67 | with: 68 | name: ver 69 | 70 | - name: Build the Docker image 71 | run: docker build . --file Dockerfile.mingw-x86 --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build-win32-x86:$(cat latest.txt) 72 | 73 | - name: Generate artifacts 74 | run: | 75 | docker run --rm -i vim-build-win32-x86:$(cat latest.txt) cat /out/vim-$(cat latest.txt).7z > vim-win32-x86.7z; 76 | docker run --rm -i vim-build-win32-x86:$(cat latest.txt) cat /out/vim-$(cat latest.txt).zip > vim-win32-x86.zip; 77 | 78 | - name: Upload binary 79 | uses: actions/upload-artifact@v4 80 | with: 81 | name: vim-win32-x86 82 | path: vim-win32-x86.7z 83 | 84 | - name: Upload binary (zip) 85 | uses: actions/upload-artifact@v4 86 | with: 87 | name: vim-win32-x86-zip 88 | path: vim-win32-x86.zip 89 | 90 | build-win32-x64: 91 | 92 | runs-on: ubuntu-latest 93 | needs: version-detect 94 | 95 | steps: 96 | - name: Checkout repo 97 | uses: actions/checkout@v3 98 | 99 | - name: Download version 100 | uses: actions/download-artifact@v4 101 | with: 102 | name: ver 103 | 104 | - name: Build the Docker image 105 | run: docker build . --file Dockerfile.mingw-x64 --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build-win32-x64:$(cat latest.txt) 106 | 107 | - name: Generate artifacts 108 | run: | 109 | docker run --rm -i vim-build-win32-x64:$(cat latest.txt) cat /out/vim-$(cat latest.txt).7z > vim-win32-x64.7z; 110 | docker run --rm -i vim-build-win32-x64:$(cat latest.txt) cat /out/vim-$(cat latest.txt).zip > vim-win32-x64.zip; 111 | 112 | - name: Upload binary 113 | uses: actions/upload-artifact@v4 114 | with: 115 | name: vim-win32-x64 116 | path: vim-win32-x64.7z 117 | 118 | - name: Upload binary (zip) 119 | uses: actions/upload-artifact@v4 120 | with: 121 | name: vim-win32-x64-zip 122 | path: vim-win32-x64.zip 123 | 124 | release: 125 | 126 | runs-on: ubuntu-latest 127 | needs: [build-linux, build-win32-x86, build-win32-x64] 128 | 129 | steps: 130 | - name: Download version 131 | uses: actions/download-artifact@v4 132 | with: 133 | name: ver 134 | 135 | - name: Download linux 136 | uses: actions/download-artifact@v4 137 | with: 138 | name: vim-linux 139 | 140 | - name: Download win32 (x86) 141 | uses: actions/download-artifact@v4 142 | with: 143 | name: vim-win32-x86 144 | 145 | - name: Download win32 (x64) 146 | uses: actions/download-artifact@v4 147 | with: 148 | name: vim-win32-x64 149 | 150 | - name: Download win32 (x86; zip) 151 | uses: actions/download-artifact@v4 152 | with: 153 | name: vim-win32-x86-zip 154 | 155 | - name: Download win32 (x64; zip) 156 | uses: actions/download-artifact@v4 157 | with: 158 | name: vim-win32-x64-zip 159 | 160 | - name: Set version 161 | id: latest-ver-get 162 | run: printf 'latest=%s\n' $(cat latest.txt) >> $GITHUB_OUTPUT 163 | 164 | - name: Checksum 165 | id: checksum 166 | run: | 167 | printf 'linux-x64=%s\n' $(sha256sum vim-linux-x64.tar.xz | cut -d' ' -f1) >> $GITHUB_OUTPUT; 168 | printf 'win32-x86=%s\n' $([ -f vim-win32-x86.7z ] && { sha256sum vim-win32-x86.7z | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 169 | printf 'win32-x64=%s\n' $([ -f vim-win32-x64.7z ] && { sha256sum vim-win32-x64.7z | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 170 | printf 'win32-x86-zip=%s\n' $([ -f vim-win32-x86.zip ] && { sha256sum vim-win32-x86.zip | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 171 | printf 'win32-x64-zip=%s\n' $([ -f vim-win32-x64.zip ] && { sha256sum vim-win32-x64.zip | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 172 | 173 | - name: Create Release 174 | id: create_release 175 | uses: actions/create-release@v1 176 | env: 177 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 178 | with: 179 | tag_name: ${{ steps.latest-ver-get.outputs.latest }} 180 | release_name: Package ${{ steps.latest-ver-get.outputs.latest }} 181 | draft: false 182 | prerelease: false 183 | body: | 184 | Package ${{ steps.latest-ver-get.outputs.latest }} 185 | 186 | sha256sum: 187 | 188 | - `${{ steps.checksum.outputs.linux-x64 }} vim-${{ steps.latest-ver-get.outputs.latest }}-linux-x64.tar.xz` 189 | - `${{ steps.checksum.outputs.win32-x86 }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.7z` (compiled for Windows XP; **USE AT YOUR OWN RISK!**) 190 | - `${{ steps.checksum.outputs.win32-x64 }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.7z` 191 | - `${{ steps.checksum.outputs.win32-x86-zip }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.zip` (compiled for Windows XP; **USE AT YOUR OWN RISK!**) 192 | - `${{ steps.checksum.outputs.win32-x64-zip }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.zip` 193 | 194 | (`*.7z` and `*.zip` only differ in compression method and archive size.) 195 | 196 | - name: Upload Release Asset linux 197 | uses: actions/upload-release-asset@v1 198 | env: 199 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 200 | with: 201 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 202 | asset_path: ./vim-linux-x64.tar.xz 203 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-linux-x64.tar.xz 204 | asset_content_type: application/x-tar 205 | 206 | - name: Upload Release Asset win32 (x86) 207 | uses: actions/upload-release-asset@v1 208 | env: 209 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 210 | with: 211 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 212 | asset_path: ./vim-win32-x86.7z 213 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.7z 214 | asset_content_type: application/x-7z-compressed 215 | 216 | - name: Upload Release Asset win32 (x64) 217 | uses: actions/upload-release-asset@v1 218 | env: 219 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 220 | with: 221 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 222 | asset_path: ./vim-win32-x64.7z 223 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.7z 224 | asset_content_type: application/x-7z-compressed 225 | 226 | - name: Upload Release Asset win32 (x86; zip) 227 | uses: actions/upload-release-asset@v1 228 | env: 229 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 230 | with: 231 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 232 | asset_path: ./vim-win32-x86.zip 233 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.zip 234 | asset_content_type: application/x-zip-compressed 235 | 236 | - name: Upload Release Asset win32 (x64; zip) 237 | uses: actions/upload-release-asset@v1 238 | env: 239 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 240 | with: 241 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 242 | asset_path: ./vim-win32-x64.zip 243 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.zip 244 | asset_content_type: application/x-zip-compressed 245 | -------------------------------------------------------------------------------- /.github/workflows/manually.yml: -------------------------------------------------------------------------------- 1 | name: Build Manually 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | version: 7 | description: 'vim tagname to build (example: v7.2; leave empty for latest)' 8 | required: false 9 | reason: 10 | description: 'why building this version manually (shown in release note)' 11 | required: false 12 | default: '' 13 | 14 | jobs: 15 | 16 | version-detect: 17 | 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - name: Detect latest stable version 22 | run: |- 23 | latest='${{ github.event.inputs.version }}' 24 | # fix hl ' 25 | if [ -z "$latest" ]; then 26 | latest=$(curl -s 'https://api.github.com/repos/vim/vim/tags' | jq -r '.[0].name') 27 | fi 28 | echo "$latest" > latest.txt 29 | 30 | - name: Gather all tagged version 31 | run: curl -Ls https://api.github.com/repos/lxhillwind/vim-bin/releases | jq -r '.[].tag_name' | sort > tagged.txt 32 | 33 | - name: Detect if tagged 34 | # fail if already exists. 35 | run: test -z "$(comm -12 latest.txt tagged.txt)" 36 | 37 | - name: Share version 38 | uses: actions/upload-artifact@v4 39 | with: 40 | name: ver 41 | path: latest.txt 42 | 43 | build-linux: 44 | 45 | runs-on: ubuntu-latest 46 | needs: version-detect 47 | 48 | steps: 49 | - name: Checkout repo 50 | uses: actions/checkout@v3 51 | 52 | - name: Download version 53 | uses: actions/download-artifact@v4 54 | with: 55 | name: ver 56 | 57 | - name: Build the Docker image 58 | run: docker build . --file Dockerfile --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build:$(cat latest.txt) 59 | 60 | - name: Generate artifacts 61 | run: docker run --rm -i vim-build:$(cat latest.txt) cat /out/vim-$(cat latest.txt).tar.xz > vim-linux-x64.tar.xz 62 | 63 | - name: Upload binary 64 | uses: actions/upload-artifact@v4 65 | with: 66 | name: vim-linux 67 | path: vim-linux-x64.tar.xz 68 | 69 | build-win32-x86: 70 | 71 | runs-on: ubuntu-latest 72 | needs: version-detect 73 | 74 | steps: 75 | - name: Checkout repo 76 | uses: actions/checkout@v3 77 | 78 | - name: Download version 79 | uses: actions/download-artifact@v4 80 | with: 81 | name: ver 82 | 83 | - name: Build the Docker image 84 | run: docker build . --file Dockerfile.mingw-x86 --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build-win32-x86:$(cat latest.txt) 85 | 86 | - name: Generate artifacts 87 | run: | 88 | docker run --rm -i vim-build-win32-x86:$(cat latest.txt) cat /out/vim-$(cat latest.txt).7z > vim-win32-x86.7z; 89 | docker run --rm -i vim-build-win32-x86:$(cat latest.txt) cat /out/vim-$(cat latest.txt).zip > vim-win32-x86.zip; 90 | 91 | - name: Upload binary 92 | uses: actions/upload-artifact@v4 93 | with: 94 | name: vim-win32-x86 95 | path: vim-win32-x86.7z 96 | 97 | - name: Upload binary (zip) 98 | uses: actions/upload-artifact@v4 99 | with: 100 | name: vim-win32-x86-zip 101 | path: vim-win32-x86.zip 102 | 103 | build-win32-x64: 104 | 105 | runs-on: ubuntu-latest 106 | needs: version-detect 107 | 108 | steps: 109 | - name: Checkout repo 110 | uses: actions/checkout@v3 111 | 112 | - name: Download version 113 | uses: actions/download-artifact@v4 114 | with: 115 | name: ver 116 | 117 | - name: Build the Docker image 118 | run: docker build . --file Dockerfile.mingw-x64 --build-arg VIM_VERSION=$(cat latest.txt) --tag vim-build-win32-x64:$(cat latest.txt) 119 | 120 | - name: Generate artifacts 121 | run: | 122 | docker run --rm -i vim-build-win32-x64:$(cat latest.txt) cat /out/vim-$(cat latest.txt).7z > vim-win32-x64.7z; 123 | docker run --rm -i vim-build-win32-x64:$(cat latest.txt) cat /out/vim-$(cat latest.txt).zip > vim-win32-x64.zip; 124 | 125 | - name: Upload binary 126 | uses: actions/upload-artifact@v4 127 | with: 128 | name: vim-win32-x64 129 | path: vim-win32-x64.7z 130 | 131 | - name: Upload binary (zip) 132 | uses: actions/upload-artifact@v4 133 | with: 134 | name: vim-win32-x64-zip 135 | path: vim-win32-x64.zip 136 | 137 | release: 138 | 139 | runs-on: ubuntu-latest 140 | needs: [build-linux, build-win32-x86, build-win32-x64] 141 | 142 | steps: 143 | - name: Download version 144 | uses: actions/download-artifact@v4 145 | with: 146 | name: ver 147 | 148 | - name: Download linux 149 | uses: actions/download-artifact@v4 150 | with: 151 | name: vim-linux 152 | 153 | - name: Download win32 (x86) 154 | uses: actions/download-artifact@v4 155 | with: 156 | name: vim-win32-x86 157 | 158 | - name: Download win32 (x64) 159 | uses: actions/download-artifact@v4 160 | with: 161 | name: vim-win32-x64 162 | 163 | - name: Download win32 (x86; zip) 164 | uses: actions/download-artifact@v4 165 | with: 166 | name: vim-win32-x86-zip 167 | 168 | - name: Download win32 (x64; zip) 169 | uses: actions/download-artifact@v4 170 | with: 171 | name: vim-win32-x64-zip 172 | 173 | - name: Set version 174 | id: latest-ver-get 175 | run: printf 'latest=%s\n' $(cat latest.txt) >> $GITHUB_OUTPUT 176 | 177 | - name: Checksum 178 | id: checksum 179 | run: | 180 | printf 'linux-x64=%s\n' $(sha256sum vim-linux-x64.tar.xz | cut -d' ' -f1) >> $GITHUB_OUTPUT; 181 | printf 'win32-x86=%s\n' $([ -f vim-win32-x86.7z ] && { sha256sum vim-win32-x86.7z | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 182 | printf 'win32-x64=%s\n' $([ -f vim-win32-x64.7z ] && { sha256sum vim-win32-x64.7z | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 183 | printf 'win32-x86-zip=%s\n' $([ -f vim-win32-x86.zip ] && { sha256sum vim-win32-x86.zip | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 184 | printf 'win32-x64-zip=%s\n' $([ -f vim-win32-x64.zip ] && { sha256sum vim-win32-x64.zip | cut -d' ' -f1; } || echo 'empty') >> $GITHUB_OUTPUT; 185 | 186 | - name: Create Release 187 | id: create_release 188 | uses: actions/create-release@v1 189 | env: 190 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 191 | with: 192 | tag_name: ${{ steps.latest-ver-get.outputs.latest }} 193 | release_name: Package ${{ steps.latest-ver-get.outputs.latest }} 194 | draft: false 195 | prerelease: true 196 | body: | 197 | ${{ github.event.inputs.reason }} 198 | 199 | sha256sum: 200 | 201 | - `${{ steps.checksum.outputs.linux-x64 }} vim-${{ steps.latest-ver-get.outputs.latest }}-linux-x64.tar.xz` 202 | - `${{ steps.checksum.outputs.win32-x86 }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.7z` (compiled for Windows XP; **USE AT YOUR OWN RISK!**) 203 | - `${{ steps.checksum.outputs.win32-x64 }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.7z` 204 | - `${{ steps.checksum.outputs.win32-x86-zip }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.zip` (compiled for Windows XP; **USE AT YOUR OWN RISK!**) 205 | - `${{ steps.checksum.outputs.win32-x64-zip }} vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.zip` 206 | 207 | (`*.7z` and `*.zip` only differ in compression method and archive size.) 208 | 209 | - name: Upload Release Asset linux 210 | uses: actions/upload-release-asset@v1 211 | env: 212 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 213 | with: 214 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 215 | asset_path: ./vim-linux-x64.tar.xz 216 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-linux-x64.tar.xz 217 | asset_content_type: application/x-tar 218 | 219 | - name: Upload Release Asset win32 (x86) 220 | uses: actions/upload-release-asset@v1 221 | env: 222 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 223 | with: 224 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 225 | asset_path: ./vim-win32-x86.7z 226 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.7z 227 | asset_content_type: application/x-7z-compressed 228 | 229 | - name: Upload Release Asset win32 (x64) 230 | uses: actions/upload-release-asset@v1 231 | env: 232 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 233 | with: 234 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 235 | asset_path: ./vim-win32-x64.7z 236 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.7z 237 | asset_content_type: application/x-7z-compressed 238 | 239 | - name: Upload Release Asset win32 (x86; zip) 240 | uses: actions/upload-release-asset@v1 241 | env: 242 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 243 | with: 244 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 245 | asset_path: ./vim-win32-x86.zip 246 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x86.zip 247 | asset_content_type: application/x-zip-compressed 248 | 249 | - name: Upload Release Asset win32 (x64; zip) 250 | uses: actions/upload-release-asset@v1 251 | env: 252 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 253 | with: 254 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 255 | asset_path: ./vim-win32-x64.zip 256 | asset_name: vim-${{ steps.latest-ver-get.outputs.latest }}-win32-x64.zip 257 | asset_content_type: application/x-zip-compressed 258 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | *uganda.txt* For Vim version 8.1. Last change: 2018 May 17 2 | 3 | 4 | VIM REFERENCE MANUAL by Bram Moolenaar 5 | 6 | 7 | *uganda* *Uganda* *copying* *copyright* *license* 8 | SUMMARY 9 | *iccf* *ICCF* 10 | Vim is Charityware. You can use and copy it as much as you like, but you are 11 | encouraged to make a donation for needy children in Uganda. Please see |kcc| 12 | below or visit the ICCF web site, available at these URLs: 13 | 14 | http://iccf-holland.org/ 15 | http://www.vim.org/iccf/ 16 | http://www.iccf.nl/ 17 | 18 | You can also sponsor the development of Vim. Vim sponsors can vote for 19 | features. See |sponsor|. The money goes to Uganda anyway. 20 | 21 | The Open Publication License applies to the Vim documentation, see 22 | |manual-copyright|. 23 | 24 | === begin of license === 25 | 26 | VIM LICENSE 27 | 28 | I) There are no restrictions on distributing unmodified copies of Vim except 29 | that they must include this license text. You can also distribute 30 | unmodified parts of Vim, likewise unrestricted except that they must 31 | include this license text. You are also allowed to include executables 32 | that you made from the unmodified Vim sources, plus your own usage 33 | examples and Vim scripts. 34 | 35 | II) It is allowed to distribute a modified (or extended) version of Vim, 36 | including executables and/or source code, when the following four 37 | conditions are met: 38 | 1) This license text must be included unmodified. 39 | 2) The modified Vim must be distributed in one of the following five ways: 40 | a) If you make changes to Vim yourself, you must clearly describe in 41 | the distribution how to contact you. When the maintainer asks you 42 | (in any way) for a copy of the modified Vim you distributed, you 43 | must make your changes, including source code, available to the 44 | maintainer without fee. The maintainer reserves the right to 45 | include your changes in the official version of Vim. What the 46 | maintainer will do with your changes and under what license they 47 | will be distributed is negotiable. If there has been no negotiation 48 | then this license, or a later version, also applies to your changes. 49 | The current maintainer is Bram Moolenaar . If this 50 | changes it will be announced in appropriate places (most likely 51 | vim.sf.net, www.vim.org and/or comp.editors). When it is completely 52 | impossible to contact the maintainer, the obligation to send him 53 | your changes ceases. Once the maintainer has confirmed that he has 54 | received your changes they will not have to be sent again. 55 | b) If you have received a modified Vim that was distributed as 56 | mentioned under a) you are allowed to further distribute it 57 | unmodified, as mentioned at I). If you make additional changes the 58 | text under a) applies to those changes. 59 | c) Provide all the changes, including source code, with every copy of 60 | the modified Vim you distribute. This may be done in the form of a 61 | context diff. You can choose what license to use for new code you 62 | add. The changes and their license must not restrict others from 63 | making their own changes to the official version of Vim. 64 | d) When you have a modified Vim which includes changes as mentioned 65 | under c), you can distribute it without the source code for the 66 | changes if the following three conditions are met: 67 | - The license that applies to the changes permits you to distribute 68 | the changes to the Vim maintainer without fee or restriction, and 69 | permits the Vim maintainer to include the changes in the official 70 | version of Vim without fee or restriction. 71 | - You keep the changes for at least three years after last 72 | distributing the corresponding modified Vim. When the maintainer 73 | or someone who you distributed the modified Vim to asks you (in 74 | any way) for the changes within this period, you must make them 75 | available to him. 76 | - You clearly describe in the distribution how to contact you. This 77 | contact information must remain valid for at least three years 78 | after last distributing the corresponding modified Vim, or as long 79 | as possible. 80 | e) When the GNU General Public License (GPL) applies to the changes, 81 | you can distribute the modified Vim under the GNU GPL version 2 or 82 | any later version. 83 | 3) A message must be added, at least in the output of the ":version" 84 | command and in the intro screen, such that the user of the modified Vim 85 | is able to see that it was modified. When distributing as mentioned 86 | under 2)e) adding the message is only required for as far as this does 87 | not conflict with the license used for the changes. 88 | 4) The contact information as required under 2)a) and 2)d) must not be 89 | removed or changed, except that the person himself can make 90 | corrections. 91 | 92 | III) If you distribute a modified version of Vim, you are encouraged to use 93 | the Vim license for your changes and make them available to the 94 | maintainer, including the source code. The preferred way to do this is 95 | by e-mail or by uploading the files to a server and e-mailing the URL. 96 | If the number of changes is small (e.g., a modified Makefile) e-mailing a 97 | context diff will do. The e-mail address to be used is 98 | 99 | 100 | IV) It is not allowed to remove this license from the distribution of the Vim 101 | sources, parts of it or from a modified version. You may use this 102 | license for previous Vim releases instead of the license that they came 103 | with, at your option. 104 | 105 | === end of license === 106 | 107 | Note: 108 | 109 | - If you are happy with Vim, please express that by reading the rest of this 110 | file and consider helping needy children in Uganda. 111 | 112 | - If you want to support further Vim development consider becoming a 113 | |sponsor|. The money goes to Uganda anyway. 114 | 115 | - According to Richard Stallman the Vim license is GNU GPL compatible. 116 | A few minor changes have been made since he checked it, but that should not 117 | make a difference. 118 | 119 | - If you link Vim with a library that goes under the GNU GPL, this limits 120 | further distribution to the GNU GPL. Also when you didn't actually change 121 | anything in Vim. 122 | 123 | - Once a change is included that goes under the GNU GPL, this forces all 124 | further changes to also be made under the GNU GPL or a compatible license. 125 | 126 | - If you distribute a modified version of Vim, you can include your name and 127 | contact information with the "--with-modified-by" configure argument or the 128 | MODIFIED_BY define. 129 | 130 | ============================================================================== 131 | Kibaale Children's Centre *kcc* *Kibaale* *charity* 132 | 133 | Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the 134 | south of Uganda, near Tanzania, in East Africa. The area is known as Rakai 135 | District. The population is mostly farmers. Although people are poor, there 136 | is enough food. But this district is suffering from AIDS more than any other 137 | part of the world. Some say that it started there. Estimations are that 10 138 | to 30% of the Ugandans are infected with HIV. Because parents die, there are 139 | many orphans. In this district about 60,000 children have lost one or both 140 | parents, out of a population of 350,000. And this is still continuing. 141 | 142 | The children need a lot of help. The KCC is working hard to provide the needy 143 | with food, medical care and education. Food and medical care to keep them 144 | healthy now, and education so that they can take care of themselves in the 145 | future. KCC works on a Christian base, but help is given to children of any 146 | religion. 147 | 148 | The key to solving the problems in this area is education. This has been 149 | neglected in the past years with president Idi Amin and the following civil 150 | wars. Now that the government is stable again, the children and parents have 151 | to learn how to take care of themselves and how to avoid infections. There is 152 | also help for people who are ill and hungry, but the primary goal is to 153 | prevent people from getting ill and to teach them how to grow healthy food. 154 | 155 | Most of the orphans are living in an extended family. An uncle or older 156 | sister is taking care of them. Because these families are big and the income 157 | (if any) is low, a child is lucky if it gets healthy food. Clothes, medical 158 | care and schooling is beyond its reach. To help these needy children, a 159 | sponsorship program was put into place. A child can be financially adopted. 160 | For a few dollars a month KCC sees to it that the child gets indispensable 161 | items, is healthy, goes to school and KCC takes care of anything else that 162 | needs to be done for the child and the family that supports it. 163 | 164 | Besides helping the child directly, the environment where the child grows up 165 | needs to be improved. KCC helps schools to improve their teaching methods. 166 | There is a demonstration school at the centre and teacher trainings are given. 167 | Health workers are being trained, hygiene education is carried out and 168 | households are stimulated to build a proper latrine. I helped setting up a 169 | production site for cement slabs. These are used to build a good latrine. 170 | They are sold below cost price. 171 | 172 | There is a small clinic at the project, which provides children and their 173 | family with medical help. When needed, transport to a hospital is offered. 174 | Immunization programs are carried out and help is provided when an epidemic is 175 | breaking out (measles and cholera have been a problem). 176 | *donate* 177 | Summer 1994 to summer 1995 I spent a whole year at the centre, working as a 178 | volunteer. I have helped to expand the centre and worked in the area of water 179 | and sanitation. I learned that the help that the KCC provides really helps. 180 | When I came back to Holland, I wanted to continue supporting KCC. To do this 181 | I'm raising funds and organizing the sponsorship program. Please consider one 182 | of these possibilities: 183 | 184 | 1. Sponsor a child in primary school: 17 euro a month (or more). 185 | 2. Sponsor a child in secondary school: 25 euro a month (or more). 186 | 3. Sponsor the clinic: Any amount a month or quarter 187 | 4. A one-time donation 188 | 189 | Compared with other organizations that do child sponsorship the amounts are 190 | very low. This is because the money goes directly to the centre. Less than 191 | 5% is used for administration. This is possible because this is a small 192 | organization that works with volunteers. If you would like to sponsor a 193 | child, you should have the intention to do this for at least one year. 194 | 195 | How do you know that the money will be spent right? First of all you have my 196 | personal guarantee as the author of Vim. I trust the people that are working 197 | at the centre, I know them personally. Furthermore, the centre has been 198 | co-sponsored and inspected by World Vision, Save the Children Fund and is now 199 | under the supervision of Pacific Academy Outreach Society. The centre is 200 | visited about once a year to check the progress (at our own cost). I have 201 | visited the centre myself many times, starting in 1993. The visit reports are 202 | on the ICCF web site. 203 | 204 | If you have any further questions, send me e-mail: . 205 | 206 | The address of the centre is: 207 | Kibaale Children's Centre 208 | p.o. box 1658 209 | Masaka, Uganda, East Africa 210 | 211 | Sending money: *iccf-donations* 212 | 213 | Check the ICCF web site for the latest information! See |iccf| for the URL. 214 | 215 | 216 | USA: The methods mentioned below can be used. 217 | Sending a check to the Nehemiah Group Outreach Society (NGOS) 218 | is no longer possible, unfortunately. We are looking for 219 | another way to get you an IRS tax receipt. 220 | For sponsoring a child contact KCF in Canada (see below). US 221 | checks can be sent to them to lower banking costs. 222 | 223 | Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They 224 | take care of the Canadian sponsors for the children in 225 | Kibaale. KCF forwards 100% of the money to the project in 226 | Uganda. You can send them a one time donation directly. 227 | Please send me a note so that I know what has been donated 228 | because of Vim. Ask KCF for information about sponsorship. 229 | Kibaale Children's Fund c/o Pacific Academy 230 | 10238-168 Street 231 | Surrey, B.C. V4N 1Z4 232 | Canada 233 | Phone: 604-581-5353 234 | If you make a donation to Kibaale Children's Fund (KCF) you 235 | will receive a tax receipt which can be submitted with your 236 | tax return. 237 | 238 | Holland: Transfer to the account of "Stichting ICCF Holland" in Lisse. 239 | This will allow for tax deduction if you live in Holland. 240 | Postbank, nr. 4548774 241 | IBAN: NL95 INGB 0004 5487 74 242 | 243 | Germany: It is possible to make donations that allow for a tax return. 244 | Check the ICCF web site for the latest information: 245 | http://iccf-holland.org/germany.html 246 | 247 | World: Use a postal money order. That should be possible from any 248 | country, mostly from the post office. Use this name (which is 249 | in my passport): "Abraham Moolenaar". Use Euro for the 250 | currency if possible. 251 | 252 | Europe: Use a bank transfer if possible. Your bank should have a form 253 | that you can use for this. See "Others" below for the swift 254 | code and IBAN number. 255 | Any other method should work. Ask for information about 256 | sponsorship. 257 | 258 | Credit Card: You can use PayPal to send money with a Credit card. This is 259 | the most widely used Internet based payment system. It's 260 | really simple to use. Use this link to find more info: 261 | https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q 262 | The e-mail address for sending the money to is: 263 | Bram@iccf-holland.org 264 | For amounts above 400 Euro ($500) sending a check is 265 | preferred. 266 | 267 | Others: Transfer to one of these accounts if possible: 268 | Postbank, account 4548774 269 | Swift code: INGB NL 2A 270 | IBAN: NL95 INGB 0004 5487 74 271 | under the name "stichting ICCF Holland", Lisse 272 | If that doesn't work: 273 | Rabobank Lisse, account 3765.05.117 274 | Swift code: RABO NL 2U 275 | under the name "Bram Moolenaar", Lisse 276 | Otherwise, send a check in euro or US dollars to the address 277 | below. Minimal amount: $70 (my bank does not accept smaller 278 | amounts for foreign check, sorry) 279 | 280 | Address to send checks to: 281 | Bram Moolenaar 282 | Finsterruetihof 1 283 | 8134 Adliswil 284 | Switzerland 285 | 286 | This address is expected to be valid for a long time. 287 | 288 | vim:tw=78:ts=8:noet:ft=help:norl: 289 | --------------------------------------------------------------------------------