Update of "Windows support"

Artifact ID: 2ef71ff3c52ab70cb275a7b71785affb7c1d63e3
Page Name:Windows support
Date: 2015-10-27 00:58:18
Original User: jesper
Parent: 28b512d824010514491924ac625f57bd2b2630f0

Starting with the 0.2.4 release, it is indeed possible to use teve on Windows, though the build process is quite involved.


The following is a rough guide to what steps need to be taken to run teve on Windows. If you don't understand them, you're probably better off waiting for the precompiled packages.

  1. Install Chicken Scheme and clone the teve repo.
  2. Install the full (not "light") OpenSSL 32-bit binary package,
  3. copy the %OpenSSL%\include\openssl directory into %CHICKEN%\include,
  4. copy and rename %OpenSSL%\libeay32.dll to %CHICKEN%\mingw32\lib\libcrypto.dll, and
  5. copy and rename %OpenSSL%\ssleay32.dll to %CHICKEN%\mingw32\lib\libssl.dll.
  6. start cmd.exe or the PowerShell as an administrator, and
  7. Run chicken-install openssl
  8. (currently not necessary) Download the latest version of libiconv-X.X.X.bin.woe32.zip,
  9. (currently not necessary) copy the file include/iconv.h from the ZIP archive into %CHICKEN%\include,
  10. (currently not necessary) copy the file bin/iconv.dll from the ZIP archive into %CHICKEN%\mingw32\lib,
  11. (currently not necessary) in the administrator shell from step 6, run chicken-install iconv.
  12. In the teve directory, make install-eggs, or if you do not have make installed, do a chicken-install on the eggs listed in the EGGS variable definition in Makefile.
  13. In the teve directory, do csc teve.scm. If this works, you'll get a functional teve.exe.
  14. Put the binary in some folder you fancy, together with static binaries for any downloaders you need, like ffmpeg.

That's it! I think.


teve will look for the file teve.ini in the following locations:

  1. %APPDATA%\teve\settings.ini
  2. %ALLUSERSPROFILE%\teve.ini

The %APPDATA% environment variable usually expands to something like C:\Users\[Username]\AppData\Roaming, and %ALLUSERSPROFILE% to C:\ProgramData. The latter is used for teve configuration across user accounts, while the former is unique to each user. Any values set in the user specific configuration file will override those specified in the system-wide file.

You should copy the file teve.conf.dist into one of these two locations (or both) and edit it to fit your system. You are recommended to use absolute paths to all external programs.

Making a binary package

teve should run just fine on your system, as long as you have installed OpenSSL and built the Chicken eggs as specified in the above Building section.

If you want to make a distributable binary package, which works on systems where these programs are not installed, you will need to include more files in the same directory as teve.exe:

  1. Both OpenSSL DLL files mentioned above, though it seems they should not be renamed to libcrypto.dll and libssl.dll when distributed with teve, but retain their original filenames.
  2. (currently not necessary) You will also need to include the file iconv.dll, which was copied into %CHICKEN%\mingw32\lib\libssl.dll if you followed the build instructions above.
  3. The *.so files present in %CHICKEN%\lib\chicken\6\ after all eggs have been installed.
  4. There might be some more Chicken or MinGW files needed. If that's the case, teve.exe should complain about not finding them when you try to run it on a computer without MinGW and Chicken (and OpenSSL).