diff options
Diffstat (limited to 'pkgs/servers/http')
23 files changed, 570 insertions, 114 deletions
diff --git a/pkgs/servers/http/apache-httpd/2.2.nix b/pkgs/servers/http/apache-httpd/2.2.nix index 784c14543220..bcbc5baf37b0 100644 --- a/pkgs/servers/http/apache-httpd/2.2.nix +++ b/pkgs/servers/http/apache-httpd/2.2.nix @@ -12,12 +12,12 @@ assert ldapSupport -> aprutil.ldapSupport && openldap != null; assert mpm == "prefork" || mpm == "worker" || mpm == "event"; stdenv.mkDerivation rec { - version = "2.2.25"; + version = "2.2.27"; name = "apache-httpd-${version}"; src = fetchurl { url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - sha1 = "e34222d1a8de38825397a1c70949bcc5836a1236"; + sha256 = "0iw19y6knijinqwvv4q16fgq5xq8nwxdg14wrrbc0mfasvg76n90"; }; outputs = [ "dev" "out" "doc" ]; @@ -65,9 +65,10 @@ stdenv.mkDerivation rec { meta = { description = "Apache HTTPD, the world's most popular web server"; + branch = "2.2"; homepage = http://httpd.apache.org/; license = stdenv.lib.licenses.asl20; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ simons lovek323 ]; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ eelco simons lovek323 ]; }; } diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix index bbf84a852b8f..e164c21ec78d 100644 --- a/pkgs/servers/http/apache-httpd/2.4.nix +++ b/pkgs/servers/http/apache-httpd/2.4.nix @@ -14,12 +14,12 @@ assert sslSupport -> aprutil.sslSupport && openssl != null; assert ldapSupport -> aprutil.ldapSupport && openldap != null; stdenv.mkDerivation rec { - version = "2.4.4"; + version = "2.4.10"; name = "apache-httpd-${version}"; src = fetchurl { url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - sha256 = "0p35jy6mkb1q48bia719qxs5bwxv0wadyhxi61rsr93nrbgbvalj"; + sha256 = "0slwcqw9f7fnb3kyz27hlsgh8j4wiza4yzqyp6vhfpvl3an4sv0p"; }; buildInputs = [perl] ++ @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { description = "Apache HTTPD, the world's most popular web server"; homepage = http://httpd.apache.org/; license = licenses.asl20; - platforms = stdenv.lib.platforms.unix; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; maintainers = with maintainers; [ lovek323 simons ]; }; } diff --git a/pkgs/servers/http/apache-modules/mod_dnssd/default.nix b/pkgs/servers/http/apache-modules/mod_dnssd/default.nix new file mode 100644 index 000000000000..06f12820a10d --- /dev/null +++ b/pkgs/servers/http/apache-modules/mod_dnssd/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, apacheHttpd_2_2, apr, avahi }: + +stdenv.mkDerivation rec { + name = "mod_dnssd-0.6"; + + src = fetchurl { + url = "http://0pointer.de/lennart/projects/mod_dnssd/${name}.tar.gz"; + sha256 = "2cd171d76eba398f03c1d5bcc468a1756f4801cd8ed5bd065086e4374997c5aa"; + }; + + configureFlags = [ "--disable-lynx" ]; + + buildInputs = [ pkgconfig apacheHttpd_2_2 avahi apr ]; + + installPhase = '' + mkdir -p $out/modules + cp src/.libs/mod_dnssd.so $out/modules + ''; + + meta = with stdenv.lib; { + homepage = http://0pointer.de/lennart/projects/mod_dnssd; + description = "Provide Zeroconf support via DNS-SD using Avahi"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ lethalman ]; + }; +} + diff --git a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix index c8f0da7040cc..07dff1cf5855 100644 --- a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix +++ b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, apacheHttpd, python }: stdenv.mkDerivation { - name = "mod_wsgi-3.3"; + name = "mod_wsgi-3.4"; src = fetchurl { - url = "http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz"; - sha256 = "0hrjksym0dlqn1ka1yf3x6ar801zqxfykwcxazjwz104k5w10vnr"; + url = "http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz"; + sha256 = "1s5nnjssvcl6lzy7kxmrk47yz6sgfzk90i1y7jml0s0lks7ck1df"; }; buildInputs = [ apacheHttpd python ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { homepage = "http://code.google.com/p/modwsgi/"; description = "Host Python applications in Apache through the WSGI interface"; - license = "ASL2.0"; + license = stdenv.lib.licenses.asl20; platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.simons ]; diff --git a/pkgs/servers/http/couchdb/default.nix b/pkgs/servers/http/couchdb/default.nix index 08bc45443a34..35d4ebbf89f3 100644 --- a/pkgs/servers/http/couchdb/default.nix +++ b/pkgs/servers/http/couchdb/default.nix @@ -1,21 +1,38 @@ -args @ {stdenv, fetchurl, erlang, spidermonkey, - icu, getopt, curl, ...}: - -let s = import ./src-for-default.nix; in +{ stdenv, fetchurl, erlang, icu, openssl, spidermonkey, curl, help2man, python +, sphinx, which, file, pkgconfig, getopt }: stdenv.mkDerivation rec { - inherit (s) name; + name = "couchdb-${version}"; + version = "1.6.0"; + src = fetchurl { - inherit (s) url; - sha256 = s.hash; + url = "mirror://apache/couchdb/source/${version}/apache-${name}.tar.gz"; + sha256 = "0m4k7i3gibzzcabssysv42rmdr89myppc6765xr0jggwkwdxgxmx"; }; - buildInputs = [erlang spidermonkey icu curl]; + buildInputs = [ erlang icu openssl spidermonkey curl help2man sphinx which + file pkgconfig ]; postInstall = '' sed -i -e "s|\`getopt|\`${getopt}/bin/getopt|" $out/bin/couchdb ''; - configureFlags = "--with-erlang=${erlang}/lib/erlang/usr/include --with-js-include=${spidermonkey}/include --with-js-lib=${spidermonkey}/lib"; + /* + Versions of SpiderMonkey after the js185-1.0.0 release remove the optional + enforcement of preventing anonymous functions in a statement context. This + will most likely break your existing JavaScript code as well as render all + example code invalid. + If you wish to ignore this error pass --enable-js-trunk to ./configure. + */ + configureFlags = '' + --enable-js-trunk + ''; + + meta = { + description = "Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API"; + homepage = "http://couchdb.apache.org"; + license = stdenv.lib.licenses.asl20; + maintainers = with stdenv.lib.maintainers; [ viric garbas ]; + }; } diff --git a/pkgs/servers/http/couchdb/src-for-default.nix b/pkgs/servers/http/couchdb/src-for-default.nix deleted file mode 100644 index 6e07077d3332..000000000000 --- a/pkgs/servers/http/couchdb/src-for-default.nix +++ /dev/null @@ -1,9 +0,0 @@ -rec { - version="1.2.0"; - name="couchdb-1.2.0"; - hash="0dswinmg32zn217049dkbx3pab3qwihzmlbc7i6vq7a7lbg4s98g"; - url="mirror://apache/couchdb/releases/1.2.0/apache-couchdb-${version}.tar.gz"; - advertisedUrl="http://www.apache.org/dist/couchdb/releases/1.2.0/apache-couchdb-1.2.0.tar.gz"; - - -} diff --git a/pkgs/servers/http/couchdb/src-info-for-default.nix b/pkgs/servers/http/couchdb/src-info-for-default.nix deleted file mode 100644 index 5904bdcb232f..000000000000 --- a/pkgs/servers/http/couchdb/src-info-for-default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - downloadPage = "http://couchdb.apache.org/downloads.html"; - baseName = "couchdb"; - choiceCommand = ''head -1 | sed -re "$skipRedirectApache" ''; - mirrorSedScript = ''$apacheMirror''; -} - diff --git a/pkgs/servers/http/jetty/6.1/default.nix b/pkgs/servers/http/jetty/6.1/default.nix index 10913a656411..894a21fdece9 100644 --- a/pkgs/servers/http/jetty/6.1/default.nix +++ b/pkgs/servers/http/jetty/6.1/default.nix @@ -1,13 +1,13 @@ {stdenv, fetchurl, unzip}: stdenv.mkDerivation { - name = "jetty-6.1.21"; + name = "jetty-6.1.26"; builder = ./bin-builder.sh; buildInputs = [unzip]; src = fetchurl { - url = http://dist.codehaus.org/jetty/jetty-6.1.21/jetty-6.1.21.zip; - sha256 = "1nrjglrmf29m1j1c80nskngmlqmc5vc7c48fggczn605l722cwaw"; + url = http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip; + sha256 = "11w1ciayv8zvxjg45xzs0kwc7k45x97sbnxkqb62sxy3gsw8xh4n"; }; } diff --git a/pkgs/servers/http/joseki/default.nix b/pkgs/servers/http/joseki/default.nix index 6ca5caba9440..f42ae81a700d 100644 --- a/pkgs/servers/http/joseki/default.nix +++ b/pkgs/servers/http/joseki/default.nix @@ -105,8 +105,7 @@ rec { [ raskin ]; - platforms = with a.lib.platforms; - []; # Builder is just unpacking/mixing what is needed + hydraPlatforms = []; # Builder is just unpacking/mixing what is needed license = "free"; # mix of packages under different licenses homepage = "http://openjena.org/"; }; diff --git a/pkgs/servers/http/lighttpd/default.nix b/pkgs/servers/http/lighttpd/default.nix index 61070ef22b6e..899914b6446d 100644 --- a/pkgs/servers/http/lighttpd/default.nix +++ b/pkgs/servers/http/lighttpd/default.nix @@ -1,22 +1,26 @@ { stdenv, fetchurl, pkgconfig, pcre, libxml2, zlib, attr, bzip2, which, file , openssl, enableMagnet ? false, lua5 ? null +, enableMysql ? false, mysql ? null }: assert enableMagnet -> lua5 != null; +assert enableMysql -> mysql != null; -stdenv.mkDerivation { - name = "lighttpd-1.4.32"; +stdenv.mkDerivation rec { + name = "lighttpd-1.4.35"; src = fetchurl { - url = http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.32.tar.xz; - sha256 = "1hgd9bi4mrak732h57na89lqg58b1kkchnddij9gawffd40ghs0k"; + url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/${name}.tar.xz"; + sha256 = "18rh7xyx69xbwl20znnjma1dq5fay0ygjjvpn3gaa7dxrir9nghi"; }; buildInputs = [ pkgconfig pcre libxml2 zlib attr bzip2 which file openssl ] - ++ stdenv.lib.optional enableMagnet lua5; + ++ stdenv.lib.optional enableMagnet lua5 + ++ stdenv.lib.optional enableMysql mysql; configureFlags = [ "--with-openssl" ] - ++ stdenv.lib.optional enableMagnet "--with-lua"; + ++ stdenv.lib.optional enableMagnet "--with-lua" + ++ stdenv.lib.optional enableMysql "--with-mysql"; preConfigure = '' sed -i "s:/usr/bin/file:${file}/bin/file:g" configure @@ -27,6 +31,6 @@ stdenv.mkDerivation { homepage = http://www.lighttpd.net/; license = "BSD"; platforms = platforms.linux; - maintainers = [maintainers.bjornfor]; + maintainers = [ maintainers.bjornfor ]; }; } diff --git a/pkgs/servers/http/myserver/default.nix b/pkgs/servers/http/myserver/default.nix index 8c0118912f5d..3e1c94e79b4b 100644 --- a/pkgs/servers/http/myserver/default.nix +++ b/pkgs/servers/http/myserver/default.nix @@ -1,53 +1,50 @@ -{ fetchurl, stdenv, libgcrypt, libevent, libidn, gnutls +{ lib, fetchurl, stdenv, libgcrypt, libevent, libidn, gnutls , libxml2, zlib, guile, texinfo, cppunit, psmisc }: let version = "0.11"; in - stdenv.mkDerivation (rec { - name = "myserver-${version}"; - src = fetchurl { - url = "mirror://gnu/myserver/${version}/${name}.tar.xz"; - sha256 = "02y3vv4hxpy5h710y79s8ipzshhc370gbz1wm85x0lnq5nqxj2ax"; - }; +stdenv.mkDerivation rec { + name = "myserver-${version}"; - patches = - [ ./disable-dns-lookup-in-chroot.patch ]; + src = fetchurl { + url = "mirror://gnu/myserver/${version}/${name}.tar.xz"; + sha256 = "02y3vv4hxpy5h710y79s8ipzshhc370gbz1wm85x0lnq5nqxj2ax"; + }; - buildInputs = - [ libgcrypt libevent libidn gnutls libxml2 zlib guile texinfo ] - ++ stdenv.lib.optional doCheck cppunit; + patches = + [ ./disable-dns-lookup-in-chroot.patch ]; - makeFlags = [ "V=1" ]; + buildInputs = + [ libgcrypt libevent libidn gnutls libxml2 zlib guile texinfo ] + ++ lib.optional doCheck cppunit; - doCheck = true; + makeFlags = [ "V=1" ]; - enableParallelBuilding = true; + doCheck = true; - meta = { - description = "GNU MyServer, a powerful and easy to configure web server"; + enableParallelBuilding = true; - longDescription = '' - GNU MyServer is a powerful and easy to configure web server. Its - multi-threaded architecture makes it extremely scalable and usable in - large scale sites as well as in small networks, it has a lot of - built-in features. Share your files in minutes! - ''; + # On GNU/Linux the `test_suite' process sometimes stays around, so + # forcefully terminate it. + postCheck = lib.optionalString stdenv.isLinux "${psmisc}/bin/killall test_suite || true"; - homepage = http://www.gnu.org/software/myserver/; + meta = { + description = "GNU MyServer, a powerful and easy to configure web server"; - license = "GPLv3+"; + longDescription = '' + GNU MyServer is a powerful and easy to configure web server. Its + multi-threaded architecture makes it extremely scalable and usable in + large scale sites as well as in small networks, it has a lot of + built-in features. Share your files in minutes! + ''; - maintainers = [ ]; + homepage = http://www.gnu.org/software/myserver/; - # libevent fails to build on Cygwin and Guile has troubles on Darwin. - platforms = stdenv.lib.platforms.gnu; - }; - } + license = lib.licenses.gpl3Plus; - // + # libevent fails to build on Cygwin and Guile has troubles on Darwin. + platforms = lib.platforms.gnu; - # On GNU/Linux the `test_suite' process sometimes stays around, so - # forcefully terminate it. - (if stdenv.isLinux - then { postCheck = "${psmisc}/bin/killall test_suite || true"; } - else { })) + broken = true; # needs patch for gets() + }; +} diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix index 28390aa38da0..903cf038d6e7 100644 --- a/pkgs/servers/http/nginx/default.nix +++ b/pkgs/servers/http/nginx/default.nix @@ -1,45 +1,95 @@ -{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, expat, fullWebDAV ? false, syslog ? false }: +{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, expat +, gd, geoip +, rtmp ? false +, fullWebDAV ? false +, syslog ? false +, moreheaders ? false +, echo ? false }: + +with stdenv.lib; let + version = "1.6.1"; + mainSrc = fetchurl { + url = "http://nginx.org/download/nginx-${version}.tar.gz"; + sha256 = "0rv0hds8dhanh8fz8qv5jj7p96q4sl158w6aq814dvxfl61fdkzm"; + }; + + rtmp-ext = fetchgit { + url = https://github.com/arut/nginx-rtmp-module.git; + rev = "8c2229cce5d4d4574e8fb7b130281497f746f0fa"; + sha256 = "6caea2a13161345c3fc963679730be54cebebddf1406ac7d4ef4ce72ac0b90b0"; + }; + dav-ext = fetchgit { - url = git://github.com/arut/nginx-dav-ext-module.git; - rev = "54cebc1f21fc13391aae692c6cce672fa7986f9d"; - sha256 = "1dvpq1fg5rslnl05z8jc39sgnvh3akam9qxfl033akpczq1bh8nq"; + url = "https://github.com/arut/nginx-dav-ext-module"; + rev = "89d582d31ab624ff1c6a4cec0c1a52839507b323"; + sha256 = "2175f83a291347504770d2a4bb5069999e9f7408697bd49464b6b54e994493e1"; }; syslog-ext = fetchgit { url = https://github.com/yaoweibin/nginx_syslog_patch.git; - rev = "165affd9741f0e30c4c8225da5e487d33832aca3"; - sha256 = "14dkkafjnbapp6jnvrjg9ip46j00cr8pqc2g7374z9aj7hrvdvhs"; + rev = "3ca5ba65541637f74467038aa032e2586321d0cb"; + sha256 = "15z9r17lx42fdcw8lalddc86wpabgmc1rqi7f90v4mcirjzrpgyi"; }; -in -stdenv.mkDerivation rec { - name = "nginx-${meta.version}"; + moreheaders-ext = fetchgit { + url = https://github.com/openresty/headers-more-nginx-module.git; + rev = "0c6e05d3125a97892a250e9ba8b7674163ba500b"; + sha256 = "e121d97fd3c81c64e6cbf6902bbcbdb01be9ac985c6832d40434379d5e998eaf"; + }; - src = fetchurl { - url = "http://nginx.org/download/${name}.tar.gz"; - sha256 = "116yfy0k65mwxdkld0w7c3gly77jdqlvga5hpbsw79i3r62kh4mf"; + echo-ext = fetchgit { + url = https://github.com/openresty/echo-nginx-module.git; + rev = "refs/tags/v0.53"; + sha256 = "90d4e3a49c678019f4f335bc18529aa108fcc9cfe0747ea4e2f6084a70da2868"; }; +in + +stdenv.mkDerivation rec { + name = "nginx-${version}"; + src = mainSrc; - buildInputs = [ openssl zlib pcre libxml2 libxslt ] ++ stdenv.lib.optional fullWebDAV expat; + buildInputs = + [ openssl zlib pcre libxml2 libxslt gd geoip + ] ++ optional fullWebDAV expat; - patches = if syslog then [ "${syslog-ext}/syslog_1.4.0.patch" ] else []; + patches = if syslog then [ "${syslog-ext}/syslog-1.5.6.patch" ] else []; configureFlags = [ "--with-http_ssl_module" + "--with-http_spdy_module" + "--with-http_realip_module" + "--with-http_addition_module" "--with-http_xslt_module" + "--with-http_image_filter_module" + "--with-http_geoip_module" "--with-http_sub_module" "--with-http_dav_module" + "--with-http_flv_module" + "--with-http_mp4_module" + "--with-http_gunzip_module" "--with-http_gzip_static_module" + "--with-http_auth_request_module" + "--with-http_random_index_module" "--with-http_secure_link_module" + "--with-http_degradation_module" + "--with-http_stub_status_module" + "--with-ipv6" # Install destination problems # "--with-http_perl_module" - ] ++ stdenv.lib.optional fullWebDAV "--add-module=${dav-ext}" - ++ stdenv.lib.optional syslog "--add-module=${syslog-ext}"; + ] ++ optional rtmp "--add-module=${rtmp-ext}" + ++ optional fullWebDAV "--add-module=${dav-ext}" + ++ optional syslog "--add-module=${syslog-ext}" + ++ optional moreheaders "--add-module=${moreheaders-ext}" + ++ optional echo "--add-module=${echo-ext}" + ++ optional (elem stdenv.system (with platforms; linux ++ freebsd)) "--with-file-aio"; + + + additionalFlags = optionalString stdenv.isDarwin "-Wno-error=deprecated-declarations"; preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2 $additionalFlags" ''; postInstall = '' @@ -48,8 +98,9 @@ stdenv.mkDerivation rec { meta = { description = "A reverse proxy and lightweight webserver"; - maintainers = [ stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.all; - version = "1.4.3"; + homepage = http://nginx.org; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ thoughtpolice raskin ]; }; } diff --git a/pkgs/servers/http/nginx/default.upstream b/pkgs/servers/http/nginx/default.upstream index f6a12eedda42..c20139017436 100644 --- a/pkgs/servers/http/nginx/default.upstream +++ b/pkgs/servers/http/nginx/default.upstream @@ -4,5 +4,5 @@ version_link '.*-([0-9]+[.][0-9]*[02468]([.][0-9]+)*)[.]tar[.][a-z0-9]*$' do_overwrite() { ensure_hash set_var_value version "$CURRENT_VERSION" - set_var_value sha256 "$CURRENT_HASH" 2 + set_var_value sha256 "$CURRENT_HASH" } diff --git a/pkgs/servers/http/nix-binary-cache/default.nix b/pkgs/servers/http/nix-binary-cache/default.nix new file mode 100644 index 000000000000..b007c09b0560 --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/default.nix @@ -0,0 +1,61 @@ +{stdenv, fetchurl +, coreutils, findutils, nix, xz, bzip2, gnused, gnugrep, openssl +, lighttpd, iproute }: +stdenv.mkDerivation rec { + version = "2014-06-29-1"; + name = "nix-binary-cache-${version}"; + + phases = ["installPhase"]; + + installPhase = '' + mkdir -p "$out/bin" + substitute "${./nix-binary-cache.cgi.in}" "$out"/bin/nix-binary-cache.cgi \ + --replace @out@ "$out/bin" \ + --replace @shell@ "${stdenv.shell}" \ + --replace @coreutils@ "${coreutils}/bin" \ + --replace @findutils@ "${findutils}/bin" \ + --replace @nix@ "${nix}/bin" \ + --replace @xz@ "${xz}/bin" \ + --replace @bzip2@ "${bzip2}/bin" \ + --replace @gnused@ "${gnused}/bin" \ + --replace @gnugrep@ "${gnugrep}/bin" \ + --replace @openssl@ "${openssl}/bin" \ + --replace @lighttpd@ "${lighttpd}/sbin" \ + --replace @iproute@ "${iproute}/sbin" \ + --replace "xXxXx" "xXxXx" + + chmod a+x "$out/bin/nix-binary-cache.cgi" + + substitute "${./nix-binary-cache-start.in}" "$out"/bin/nix-binary-cache-start \ + --replace @out@ "$out/bin" \ + --replace @shell@ "${stdenv.shell}" \ + --replace @coreutils@ "${coreutils}/bin" \ + --replace @findutils@ "${findutils}/bin" \ + --replace @nix@ "${nix}/bin" \ + --replace @xz@ "${xz}/bin" \ + --replace @bzip2@ "${bzip2}/bin" \ + --replace @gnused@ "${gnused}/bin" \ + --replace @gnugrep@ "${gnugrep}/bin" \ + --replace @openssl@ "${openssl}/bin" \ + --replace @lighttpd@ "${lighttpd}/sbin" \ + --replace @iproute@ "${iproute}/sbin" \ + --replace "xXxXx" "xXxXx" + + chmod a+x "$out/bin/nix-binary-cache-start" + ''; + + meta = { + description = ''A set of scripts to serve the Nix store as a binary cache''; + longDescription = '' + This package installs a CGI script that serves Nix store path in the + binary cache format. It also installs a launcher called + nix-binary-cache-start that can be run without any setup to launch + a binary cache and get the example arguments for its usage. + ''; + maintainers = [stdenv.lib.maintainers.raskin]; + license = stdenv.lib.licenses.gpl2Plus; + inherit version; + platforms = stdenv.lib.platforms.all; + hydraPlatforms = []; + }; +} diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in new file mode 100644 index 000000000000..2a2356f39ab2 --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in @@ -0,0 +1,105 @@ +#! @shell@ + +parse_opts () { + while @coreutils@/test -n "$1" && @coreutils@/test "x$1" != x-- ; do + case "$1" in + --store-dir) + shift; + echo "STORE_DIR='$1'" + shift; + ;; + --priority) + shift; + echo "PRIORITY=$1"; + shift; + ;; + --compression) + shift; + echo "COMPRESSION=$1"; + shift; + ;; + --key) + shift; + echo "KEY=${1#*:}" + echo "KEYNAME=${1%%:*}" + shift; + ;; + --nix-remote) + shift; + echo "NIX_REMOTE=$1" + shift; + ;; + --mass-query) + shift; + echo "MASS_QUERY=$1" + shift; + ;; + --port) + shift; + echo "PORT=$1" + shift; + ;; + --help) + cat <<EOF >&2 +"$0": start the Nix binary cache serving the Nix store dynamically. + +Recognized options: + +--port server port +--store-dir served Nix store + +--priority binary cache priority +--mass-query 0 or 1 - whether binary cache expects queries for nix-env -qas + +--compression compression to use: bzip2 or xz +--key name:/path/to/key - key to use for narinfo signing + +--nix-remote 'daemon' or empty string '' - whether to use daemon for store + operations + +--help show help and exit +EOF + exit 1; + ;; + *) shift ;; + esac; + done +} + +workingdir="$(@coreutils@/mktemp -d)" +cd "$workingdir" + +PORT=8080 +(echo "STORE_DIR=${NIX_STORE_DIR:-/nix/store}"; parse_opts "$@" + ) > nix-binary-cache.conf || exit +. "$workingdir/nix-binary-cache.conf" + +echo " +server.port = $PORT +server.modules = ( \"mod_cgi\", \"mod_setenv\", ) +server.document-root = \"$workingdir\" +cgi.assign = ( \".cgi\" => \"@shell@\" ) +setenv.add-request-header = ( \"NIX_BINARY_CACHE_CONFIG\" => \"$workingdir/nix-binary-cache.conf\" ) +" > lighttpd.conf + +cp @out@/nix-binary-cache.cgi . +cp @out@/nix-binary-cache.cgi ./nix-bc.cgi + +ip="$(@iproute@/ip a | @gnugrep@/grep 'inet .* scope global' | @coreutils@/head -n 1)" +ip="${ip%%/*}" +ip="${ip##* }" + +url="http://$ip:$PORT/nix-bc.cgi?" + +echo "Working directory: $workingdir" +echo +echo "Address of the binary cache: $url" +echo +echo "Usage example: NIX_REMOTE= nix-store --option binary-caches '$url'" +echo +echo + +@lighttpd@/lighttpd -D -f "$workingdir/lighttpd.conf" + +cd / +@coreutils@/rm -rf "$workingdir" diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in new file mode 100644 index 000000000000..219ab9763ada --- /dev/null +++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in @@ -0,0 +1,97 @@ +#! @shell@ + +STORE_DIR="${NIX_STORE_DIR:-/nix/store}" +MASS_QUERY=0 +PRIORITY=75 +COMPRESSION=bzip2 +KEY= +KEYNAME=na + +export NIX_REMOTE=daemon + +config="${NIX_BINARY_CACHE_CONFIG:-${HTTP_NIX_BINARY_CACHE_CONFIG:-/etc/nix/nix-binary-cache.cgi.conf}}" +config="$(cd "$(@coreutils@/dirname "$config")"; + @coreutils@/pwd)/$(@coreutils@/basename "$config")" +@coreutils@/test -e "$config" && . "$config" + +header(){ + echo "Content-Type: text/plain; charset=utf-8" + echo +} + +clean_path() { + @gnused@/sed -re "s@^$STORE_DIR/?@@" | @findutils@/xargs +} + +storeq(){ + @nix@/nix-store -q "$@" +} + +sign(){ + test -n "$1" && + @coreutils@/sha256sum | @gnused@/sed -e 's/ .*//' | + @openssl@/openssl rsautl -sign -inkey "$@" | @coreutils@/base64 -w 0 +} + +case "$QUERY_STRING" in + "") + header + echo "Hello, this is a dynamically-generated Nix binary cache" + ;; + /debug) + header + set + ;; + /nix-cache-info) + header + echo "StoreDir: $STORE_DIR" + echo "WantMassQuery: $MASS_QUERY" + echo "Priority: $PRIORITY" + ;; + *.narinfo) + hash=${QUERY_STRING%.narinfo} + hash=${hash#/} + path="$(echo "$STORE_DIR/$hash-"* )" + if [ -n "$path" ] && [ -e "$path" ]; then + header + info="$( + echo "StorePath: $path" + echo "URL: $(@coreutils@/basename "$path" + ).nar.$COMPRESSION" + echo "Compression: $COMPRESSION" + echo "NarHash: $(storeq --hash "$path")" + echo "NarSize: $(storeq --size "$path")" + echo "References: $(storeq --references "$path" | + @coreutils@/tac | clean_path )" + echo "Deriver: $(storeq --deriver "$path" | + clean_path )" + )" + signature="$(echo "$info" | sign "$KEY")" + + echo "$info" + echo "Signature: 1;$KEYNAME;$signature" + + else + exit 1 + fi + ;; + *.nar.xz) + path="$STORE_DIR${QUERY_STRING%.nar.xz}" + if [ -n "$path" ] && [ -e "$path" ]; then + header + @nix@/nix-store --dump "$path" | @xz@/xz + else + exit 1 + fi + ;; + *.nar.bzip2) + path="$STORE_DIR${QUERY_STRING%.nar.bzip2}" + echo "$path" >&2; + if [ -n "$path" ] && [ -e "$path" ]; then + header + @nix@/nix-store --dump "$path" | @bzip2@/bzip2 + else + exit 1 + fi + ;; +esac diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix new file mode 100644 index 000000000000..f95272b7e8ae --- /dev/null +++ b/pkgs/servers/http/openresty/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, gd, geoip +, perl }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "openresty-${version}"; + version = "1.7.4.1rc1"; + + src = fetchurl { + url = "http://openresty.org/download/ngx_openresty-${version}.tar.gz"; + sha256 = "1j976kmbdv07j3n7bwkpdrjs8hlm13mzzdmfbsfwyxpnk034v0j1"; + }; + + buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ]; + + configureFlags = [ + "--with-pcre-jit" + "--with-http_ssl_module" + "--with-http_spdy_module" + "--with-http_realip_module" + "--with-http_addition_module" + "--with-http_xslt_module" + "--with-http_image_filter_module" + "--with-http_geoip_module" + "--with-http_sub_module" + "--with-http_dav_module" + "--with-http_flv_module" + "--with-http_mp4_module" + "--with-http_gunzip_module" + "--with-http_gzip_static_module" + "--with-http_auth_request_module" + "--with-http_random_index_module" + "--with-http_secure_link_module" + "--with-http_degradation_module" + "--with-http_stub_status_module" + "--with-ipv6" + ]; + + postInstall = '' + mv $out/nginx/sbin $out/bin + ln -s $out/bin/nginx $out/bin/openresty + mv $out/luajit/bin/luajit-2.1.0-alpha $out/bin/luajit-openresty + ''; + + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2 $additionalFlags" + export PATH="$PATH:${stdenv.gcc.libc}/sbin" + ''; + + meta = { + description = "A fast web application server built on Nginx"; + homepage = http://openresty.org; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} diff --git a/pkgs/servers/http/spawn-fcgi/default.nix b/pkgs/servers/http/spawn-fcgi/default.nix new file mode 100644 index 000000000000..b39e2b8fbf76 --- /dev/null +++ b/pkgs/servers/http/spawn-fcgi/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchsvn, autoconf, automake }: + +stdenv.mkDerivation rec { + name = "spawn-fcgi-${version}"; + version = "1.6.4"; + + src = fetchsvn { + url = "svn://svn.lighttpd.net/spawn-fcgi/tags/spawn-fcgi-${version}"; + sha256 = "07r6nwbg4881mdgp0hqh80c4x9wb7jg6cgc84ghwhfbd2abc2iq5"; + }; + + buildInputs = [ automake autoconf ]; + + preConfigure = '' + ./autogen.sh + ''; + + meta = with stdenv.lib; { + homepage = "http://redmine.lighttpd.net/projects/spawn-fcgi"; + description = "Provides an interface to external programs that support the FastCGI interface"; + license = licenses.bsd3; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/servers/http/thttpd/default.nix b/pkgs/servers/http/thttpd/default.nix index e03183cbe49d..0bb3d96b37b7 100644 --- a/pkgs/servers/http/thttpd/default.nix +++ b/pkgs/servers/http/thttpd/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { ''; preInstall = '' - ensureDir "$out/man/man1" + mkdir -p "$out/man/man1" sed -i -e 's/-o bin -g bin *//' Makefile sed -i -e '/chgrp/d' extras/Makefile ''; diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix index 79393a5d7cf9..ee0049ce08f6 100644 --- a/pkgs/servers/http/tomcat/6.0.nix +++ b/pkgs/servers/http/tomcat/6.0.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl }: -let version = "6.0.32"; in +let version = "6.0.39"; in stdenv.mkDerivation rec { name = "apache-tomcat-${version}"; src = fetchurl { url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz"; - sha256 = "505e649d1ffcf746e66be8295c8244a2949349dedf678e9f2a659c4736968c5e"; + sha256 = "19qix6affhc252n03smjf482drg3nxd27shni1gvhphgj3zfmgfy"; }; installPhase = diff --git a/pkgs/servers/http/tomcat/axis2/default.nix b/pkgs/servers/http/tomcat/axis2/default.nix index 0208420d1328..cf64ba2d3c69 100644 --- a/pkgs/servers/http/tomcat/axis2/default.nix +++ b/pkgs/servers/http/tomcat/axis2/default.nix @@ -1,13 +1,17 @@ {stdenv, fetchurl, apacheAnt, jdk, unzip}: stdenv.mkDerivation { - name = "axis2-1.6.1"; + name = "axis2-1.6.2"; src = fetchurl { - url = http://apache.mirror.versatel.nl//axis/axis2/java/core/1.6.1/axis2-1.6.1-bin.zip; - sha256 = "1a0p85qh9924dv3y7zivf62hy1jzdaxnndqh93g6lndmacfhkk64"; + url = http://apache.proserve.nl/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; + sha256 = "02i6fv11ksd5ql81i501bcb11ib5gyhq3zxwrz5jm4ic80r097fp"; }; buildInputs = [ unzip apacheAnt jdk ]; builder = ./builder.sh; + + meta = { + description = "Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack"; + }; } diff --git a/pkgs/servers/http/winstone/default.nix b/pkgs/servers/http/winstone/default.nix new file mode 100644 index 000000000000..8991a220a76d --- /dev/null +++ b/pkgs/servers/http/winstone/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "winstone-${version}"; + version = "0.9.10"; + + src = fetchurl { + url = "mirror://sourceforge/winstone/${name}.jar"; + sha256 = "17xvq3yk95335c6ag1bmbmxlvh7gqq35ifi64r2l6rnvrf6pqyan"; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/lib + cp $src $out/lib/winstone.jar + ''; + + meta = { + homepage = "http://winstone.sourceforge.net/"; + description = "A simple Java Servlet container."; + license = stdenv.lib.licenses.cddl; + platforms = stdenv.lib.platforms.all; + maintainers = [ stdenv.lib.maintainers.rickynils ]; + }; +} diff --git a/pkgs/servers/http/yaws/default.nix b/pkgs/servers/http/yaws/default.nix index 7828cf843982..933df2d0e360 100644 --- a/pkgs/servers/http/yaws/default.nix +++ b/pkgs/servers/http/yaws/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "yaws-${version}"; - version = "1.95"; + version = "1.98"; src = fetchurl { url = "http://yaws.hyber.org/download/${name}.tar.gz"; - sha256 = "01jlp6v8l95n9k5rbp4kvklnh95q7yv9lp2a6ahyixb1cn1sxvz4"; + sha256 = "0c88da7gxha7an3c82j5a3r1y0j7cjq66zqfrzjihg8pwp618zfl"; }; # The tarball includes a symlink yaws -> yaws-1.95, which seems to be @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { homepage = http://http://yaws.hyber.org; license = licenses.bsd2; platforms = platforms.linux; - maintainers = [ maintainers.goibhniu ]; + maintainers = with maintainers; [ goibhniu the-kenny ]; }; } |