Support This Project

Gentoo Linux build instructions

Note that this page describes general methods of building wzdftpd that also apply to other distributions other than just Gentoo. You can take most of what you see on this page and apply it directly to other distributions you may be using.

The steps on this page only apply to builds beyond version 0.8.1 as the CMake build system was not part of the wzdftpd project until that time. If you want to compile old versions of wzdftpd, you will have to use the old fashioned method of using autoconf/automake.

Note that this page assumes you are running as root when executing commands. Please substitute the prefix sudo where applicable, if you're working with tighter security in a sudo environment.

Requirements

You will need a usual build environment which should already be setup for you, given that you're using Gentoo Linux. If you're using another distribution, you will need all the basic build environment tools such as gcc, automake, etc.

In addition to the standard tools, you will also require CMake and Subversion.

Start by emerging subversion:

emerge subversion

You will also need to emerge CMake. Note that you need to make sure you're using version 2.4.6 or later as wzdftpd uses some of the features introduced in these later versions. To unmask the latest version of CMake, type the following command:

echo "dev-util/cmake" >> /etc/portage/package.keywords

Now emerge the the latest version of CMake:

emerge cmake

Check for any errors on the installation of either package, and resolve any issues before continuing.

Check out the SVN trunk

Checkout the trunk directory from the wzdftpd subversion server:

svn co https://svn.wzdftpd.net/svn/wzdftpd/trunk wzdftpd-src

You will be prompted to accept a security certificate, which should match the following:

Certificate information:
 - Hostname: www.wzdftpd.net
 - Valid: from Wed, 14 Mar 2007 13:34:48 GMT until Sat, 11 Mar 2017 13:34:48 GMT
 - Issuer: wzdftpd, Paris, Paris, FR
 - Fingerprint: f7:2f:36:d5:21:39:d4:0b:95:7e:e1:03:20:86:f9:d0:ce:7f:38:16

Note that the latest copy of the source code will be placed within the wzdftpd-src directory under your current working directory.

Configure with CMake

Standard options

Run the CMake configuration process (interactive mode):

cmake -i wzdftpd-src

A prompt will appear as follows:

Would you like to see advanced options? [No]:

Unless you have installed wzdftpd dependencies such as MySQL/PostgreSQL/SQLite/Zeroconf libraries into non-standard directories where wzdftpd won't find them, press Enter (the same as typing No). The advanced options allow you to specify the exact path to where each set of libraries/headers are located for the various dependencies of wzdftpd. If you're not using any modules and you only want to use the plaintext backend, there is no need to worry about the advanced options.

You will then be prompted to turn on/off some components of wzdftpd in the configuration process.

Change this value to "OFF".

Variable Name: BUILD_TESTING
Description: Build the testing tree.
Current Value: ON
New Value (Enter to keep current value): 

Press Enter to leave it as-is.

Variable Name: CMAKE_BACKWARDS_COMPATIBILITY
Description: For backwards compatibility, what version of CMake commands and syntax should this version of CMake allow.
Current Value: 2.4
New Value (Enter to keep current value): 

Type "Release" and press Enter, unless you want to build a debug/testing version of wzdftpd, in which case you should type "Debug".

Variable Name: CMAKE_BUILD_TYPE
Description: Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
Current Value: 
New Value (Enter to keep current value): 

This is in effect the directory to which all wzdftpd related files will be installed. If you just want to test wzdftpd without installing files all over your system, choose a separate path prefix here. If you want files to go into their default locations, change the value to /.

Variable Name: CMAKE_INSTALL_PREFIX
Description: Install path prefix, prepended onto install directories.
Current Value: /usr/local
New Value (Enter to keep current value): 

Press Enter to skip this question.

Variable Name: DART_ROOT
Description: If you have Dart installed, where is it located?
Current Value: DART_ROOT-NOTFOUND
New Value (Enter to keep current value): 

All the output files from the build process will be placed in this directory. Just leave it as default by pressing Enter, unless you know what you're doing here.

Variable Name: EXECUTABLE_OUTPUT_PATH
Description: Single output directory for building all executables.
Current Value: 
New Value (Enter to keep current value): 

Same as above.

Variable Name: LIBRARY_OUTPUT_PATH
Description: Single output directory for building all libraries.
Current Value: 
New Value (Enter to keep current value): 

TCL paths

Note that you may be asked the following questions and they are only asked when wzdftpd cannot find the required libraries/headers for compiling the TCL module. Press Enter to skip all of the following options if you don't want to compile the TCL module.

If you want to compile the TCL module, enter the correct path here for the TCL headers (.h files).

Variable Name: TCL_INCLUDE_PATH
Description: Path to a file.
Current Value: TCL_INCLUDE_PATH-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TCL_LIBRARY
Description: Path to a library.
Current Value: TCL_LIBRARY-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TCL_LIBRARY_DEBUG
Description: Path to a library.
Current Value: TCL_LIBRARY_DEBUG-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TCL_TCLSH
Description: Path to a program.
Current Value: TCL_TCLSH-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TK_INCLUDE_PATH
Description: Path to a file.
Current Value: TK_INCLUDE_PATH-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TK_LIBRARY
Description: Path to a library.
Current Value: TK_LIBRARY-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TK_LIBRARY_DEBUG
Description: Path to a library.
Current Value: TK_LIBRARY_DEBUG-NOTFOUND
New Value (Enter to keep current value): 

Same as above.

Variable Name: TK_WISH
Description: Path to a program.
Current Value: TK_WISH-NOTFOUND
New Value (Enter to keep current value): 

Choice of features/modules/backends

You will be asked the following questions, which are the toggles that allow you to enable/disable various modules and backends from being compiled in your wzdftpd build.

If you want to compile wzdftpd with GnuTLS support (the alternative is OpenSSL) then leave this option as "ON". Otherwise if you don't want TLS support or you prefer to use OpenSSL, set this option to "OFF".

Variable Name: WITH_GnuTLS
Description: Search for GnuTLS package
Current Value: ON
New Value (Enter to keep current value): 

If you want to experiment with IPv6 support, enable this option by changing the value to "ON". Otherwise press Enter.

Variable Name: WITH_IPV6
Description: enable IPv6 support
Current Value: OFF
New Value (Enter to keep current value): 

If you want to compile the MySQL backend, press Enter for this question. Otherwise if you don't want the MySQL backend, change the value to "OFF".

Variable Name: WITH_MySQL
Description: Search for MySQL package
Current Value: ON
New Value (Enter to keep current value): 

Press enter here if you want to compile the Perl module (allows Perl scripting support for wzdftpd). If you don't need the Perl module, change the value to "OFF".

Variable Name: WITH_PerlDev
Description: Search for PerlDev package
Current Value: ON
New Value (Enter to keep current value): 

If you want to compile the PostgreSQL backend, press Enter for this question. Otherwise if you don't want the PostgreSQL backend, change the value to "OFF".

Variable Name: WITH_PostgreSQL
Description: Search for PostgreSQL package
Current Value: ON
New Value (Enter to keep current value): 

If you want to compile the SQLite backend, press Enter for this question. Otherwise if you don't want the SQLite backend, change the value to "OFF".

Variable Name: WITH_SQLite3
Description: Search for SQLite3 package
Current Value: ON
New Value (Enter to keep current value): 

Press Enter to compile the TCL scripting module for wzdftpd. If you don't want to use the TCL module, type "OFF" and press Enter.

Variable Name: WITH_TCLDev
Description: Search for TCLDev package
Current Value: ON
New Value (Enter to keep current value): 

Press Enter, you won't have a need for this.

Variable Name: WITH_TESTS
Description: enable unit tests
Current Value: OFF
New Value (Enter to keep current value): 

You are also best to leave this option as-is and press Enter to continue.

Variable Name: WITH_UTF8
Description: enable UTF-8 support
Current Value: ON
New Value (Enter to keep current value): 

If you want to compile the Zeroconf module for wzdftpd, press Enter. If you don't have a need for the Zeroconf module, change this value to "OFF".

Variable Name: WITH_Zeroconf
Description: Search for Zeroconf package
Current Value: ON
New Value (Enter to keep current value): 

Run the configure process a second time

This page is not yet complete. It will be completed soon!