Project

General

Profile

Installation » History » Revision 5

Revision 4 (stbuehler, 2010-10-24 15:46) → Revision 5/14 (stbuehler, 2010-11-13 12:50)

{{>toc}} 

 h1. Install from source 

 h2. Dependencies 

 * c compiler :) 
 * pkg-config - best way to find many libs 
 * gnu make 
 * libev 
 * ragel 
 * glib2.0 (>= 2.16) 
 * lua 5.1 (highly recommended) 
 * zlib1g (for mod_deflate deflate/gzip compression) 
 * libbz2 (for mod_deflate bzip2 compression) 
 * libssl (for ssl) 

 h2. Get Source 

 You can either checkout our git sources, or take a distbuild tar from http://download.lighttpd.net/lighttpd/snapshots-2.0.x/ 

 h3. git checkout 

 * First time: @{{repository}}@ @git clone git://git.lighttpd.net/lighttpd/lighttpd2@ 
   This creates a new directory "lighttpd2" in your current directory with the sources in it. 
   If you sit behind a strict firewall you can try @{{repository(http)}}@ @git clone http://git.lighttpd.net/lighttpd/lighttpd2.git@ instead. 
 * Update: @git pull@ 
   If you applied own patches, you might want to use @git fetch; git rebase origin/master@ to keep your patches or @git fetch; git reset --hard origin/master@ to use our current head. 

 If you don't have git installed you can download a git snapshot from http://cgit.lighttpd.net/lighttpd/lighttpd2/commit/ 
 * "lighttpd2-master.zip":http://cgit.lighttpd.net/lighttpd/lighttpd2/snapshot/lighttpd2-master.zip 
 * "lighttpd2-master.tar.gz":http://cgit.lighttpd.net/lighttpd/lighttpd2/snapshot/lighttpd2-master.tar.gz 
 It is the same as a git checkout (without the .git directory ofc) and counts as "git checkout" too here :) 
 This tars are *not* the same as a *distbuild* tar! 

 As you probably want to use autotools to build and install lighttpd2 you need to generate some extra files: 
 <pre> 
 ./autogen.sh 
 </pre> 

 This last step needs some additional dependencies (the versions are a hint to what we are using; they are probably not required in the exact same version) 
 * libtool (2.2.6b) 
 * automake (1.11) 
 * autoconf (2.67) 

 h3. distbuild 

 Download it and extract it as always: @tar -xf http://download.lighttpd.net/lighttpd/snapshots-2.0.x/lighttpd-2.0.0-snap-XXX.tar.gz@ 

 h2. Configure + Build 

 If you are not familiar with configure, have a look at the help: 
 <pre> 
 ./configure --help 
 </pre> 

 Example: 
 <pre> 
 ./configure --with-lua --with-openssl --with-kerberos5 --with-zlib --with-bzip2 --includedir=/usr/include/lighttpd-2.0.0 
 make 
 </pre> 

 h2. Install 

 <pre> 
 make install 
 </pre> 

 h2. FreeBSD hints 

 * Use @gmake@ instead of @make@ 
 * In order to get configure finding libev, you either need this as /usr/local/libdata/pkgconfig/libev.pc : 
   <pre> 
 prefix=/usr/local 
 exec_prefix=${prefix} 
 libdir=${exec_prefix}/lib 
 includedir=${prefix}/include 

 Name: libev 
 Description: high-performance event loop 
 Version: 3.9 
 Libs: -L${libdir} -lev 
 Cflags: -I${includedir} 
 </pre> 
   or use @CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure ...@ 

 h1. Install prebuild binaries 

 You may want to have a look at the opensuse build service repositories, we have packages available for: 
 * CentOS 5 
 * Debian 5.0 
 * Fedora 13 
 * Redhat RHEL 5 
 * openSUSE 11.1, 11.2, 11.3 and Factory 
 * SUSE Linux Enterprise 11 
 * Ubuntu 9.10 (karmic), 10.04 (lucid) 

 They are hosted either in the server:http or home:stbuehler:lighttpd2 projects: 
 * http://download.opensuse.org/repositories/server:/http/ (https://build.opensuse.org/project/show?project=server%3Ahttp) 
 * http://download.opensuse.org/repositories/home:/stbuehler:/lighttpd2/ (https://build.opensuse.org/project/show?project=home%3Astbuehler%3Alighttpd2) 
   You can additionally use the "nightlies" repository; our "buildbot":http://buildbot.lighttpd.net/ will update it after every git commit automatically (it may depend on packages from home:stbuehler:lighttpd2) 
 ** http://download.opensuse.org/repositories/home:/stbuehler:/lighttpd2-nightlies/ (https://build.opensuse.org/project/show?project=home%3Astbuehler%3Alighttpd2-nightlies) 

 h1. Notes 

 * Although we sometimes use waf and cmake for developing, these buildsystems are *not* supported (especially are they not usable for @make install@)