From 8fbc0076a4827ddc6af92e0b9daa4c4c31450808 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jul 2013 01:10:32 -0700 Subject: Fri Jul 19 01:09:18 PDT 2013 --- community/thttpd/PKGBUILD | 71 ++++++++++++++++++++++++++++++++++++ community/thttpd/config | 7 ++++ community/thttpd/discreet.patch | 34 +++++++++++++++++ community/thttpd/forwarded-for.patch | 16 ++++++++ community/thttpd/getline.patch | 21 +++++++++++ community/thttpd/logrotate.d | 12 ++++++ community/thttpd/service | 10 +++++ 7 files changed, 171 insertions(+) create mode 100644 community/thttpd/PKGBUILD create mode 100644 community/thttpd/config create mode 100644 community/thttpd/discreet.patch create mode 100644 community/thttpd/forwarded-for.patch create mode 100644 community/thttpd/getline.patch create mode 100644 community/thttpd/logrotate.d create mode 100644 community/thttpd/service (limited to 'community/thttpd') diff --git a/community/thttpd/PKGBUILD b/community/thttpd/PKGBUILD new file mode 100644 index 000000000..95862d06f --- /dev/null +++ b/community/thttpd/PKGBUILD @@ -0,0 +1,71 @@ +# $Id: PKGBUILD 93680 2013-07-08 11:41:45Z bisson $ +# Maintainer: Gaetan Bisson +# Contributor: Damir Perisa +# Contributor: Stewart Starbuck + +pkgname=thttpd +pkgver=2.25b +pkgrel=11 +pkgdesc='Simple, small, portable, fast, and secure HTTP server' +url='http://www.acme.com/software/thttpd/' +license=('custom:BSD') +arch=('i686' 'x86_64') +backup=('etc/thttpd.conf') +source=("http://www.acme.com/software/thttpd/${pkgname}-${pkgver}.tar.gz" + 'forwarded-for.patch' + 'discreet.patch' + 'getline.patch' + 'logrotate.d' + 'service' + 'config') +sha1sums=('cd0e823233ad73e34ee1c9b871b01050feb9db52' + '1293fbaf83a489c65d6d2b107d797c687233d96a' + '1e73fca7d9ac2579da317f985c8666a181dc37c1' + '5ac14035a10b9155d813b363520e9aa74c5d91fc' + '36ffeefd1675ca4920605b1b5ca32dd5141a8f23' + '73bd76de0e89a9cc31e5605659837d83b3c8dfde' + '16640870a69cfc48021ee3acfea7c95834549d46') + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 -i ../forwarded-for.patch + patch -p1 -i ../discreet.patch + patch -p1 -i ../getline.patch + echo 'mkv video/x-matroska' >> mime_types.txt +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + CPPFLAGS= ./configure --prefix=/usr --mandir=/usr/share/man + sed \ + -e 's/^CFLAGS =/CFLAGS +=/' \ + -e '/^STATICFLAG =/c STATICFLAG =' \ + -i Makefile */Makefile + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + install -d "${pkgdir}"/usr/share/man/man{1,8} + make \ + BINDIR="${pkgdir}"/usr/bin \ + WEBDIR="${pkgdir}"/srv/http \ + MANDIR="${pkgdir}"/usr/share/man \ + WEBGROUP=root install + + rm -fr "${pkgdir}"/srv + chown root:root -R "${pkgdir}" + chmod 755 -R "${pkgdir}"/usr/bin # strip needs u+w + + install -Dm644 ../config "${pkgdir}"/etc/thttpd.conf + install -Dm644 ../service "${pkgdir}"/usr/lib/systemd/system/thttpd.service + install -Dm644 ../logrotate.d "${pkgdir}"/etc/logrotate.d/thttpd + + install -d "${pkgdir}"/var/log/thttpd + install -d "${pkgdir}"/usr/share/licenses/"${pkgname}" + head -n 26 thttpd.c > "${pkgdir}"/usr/share/licenses/"${pkgname}"/LICENSE + + # conflicts with apache + mv "${pkgdir}"/usr/bin/htpasswd{,-thttpd} + mv "${pkgdir}"/usr/share/man/man1/htpasswd{,-thttpd}.1 +} diff --git a/community/thttpd/config b/community/thttpd/config new file mode 100644 index 000000000..6be17f1f7 --- /dev/null +++ b/community/thttpd/config @@ -0,0 +1,7 @@ +dir=/srv/http +vhost +user=http +cgipat=**.cgi +logfile=/var/log/thttpd/thttpd.log +pidfile=/var/run/thttpd.pid +charset=utf-8 diff --git a/community/thttpd/discreet.patch b/community/thttpd/discreet.patch new file mode 100644 index 000000000..b427ecc2c --- /dev/null +++ b/community/thttpd/discreet.patch @@ -0,0 +1,34 @@ +diff -Naur old/libhttpd.c new/libhttpd.c +--- old/libhttpd.c 2012-04-27 14:24:50.971711600 +0200 ++++ new/libhttpd.c 2012-04-27 14:33:24.559135581 +0200 +@@ -744,7 +744,7 @@ + (void) my_snprintf( buf, sizeof(buf), "\ + \n\ + %d %s\n\ +-\n\ ++\n\ +

%d %s

\n", + status, title, status, title ); + add_response( hc, buf ); +@@ -769,11 +769,8 @@ + char buf[1000]; + + (void) my_snprintf( buf, sizeof(buf), "\ +-
\n\ +-
%s
\n\ + \n\ +-\n", +- SERVER_ADDRESS, EXPOSED_SERVER_SOFTWARE ); ++\n" ); + add_response( hc, buf ); + } + +@@ -2766,7 +2763,7 @@ + (void) fprintf( fp, "\ + \n\ + Index of %.80s\n\ +-\n\ ++\n\ +

Index of %.80s

\n\ +
\n\
+ mode  links  bytes  last-changed  name\n\
diff --git a/community/thttpd/forwarded-for.patch b/community/thttpd/forwarded-for.patch
new file mode 100644
index 000000000..348eb00cf
--- /dev/null
+++ b/community/thttpd/forwarded-for.patch
@@ -0,0 +1,16 @@
+diff -Naur old/libhttpd.c new/libhttpd.c
+--- old/libhttpd.c	2005-06-30 03:50:39.000000000 +1000
++++ new/libhttpd.c	2012-10-24 12:12:17.144560917 +1100
+@@ -2207,6 +2207,12 @@
+ 		if ( strcasecmp( cp, "keep-alive" ) == 0 )
+ 		    hc->keep_alive = 1;
+ 		}
++	    else if ( strncasecmp( buf, "X-Forwarded-For:", 16 ) == 0 )
++		{
++		cp = &buf[16];
++		cp += strspn( cp, " \t" );
++		inet_aton( cp, &(hc->client_addr.sa_in.sin_addr) );
++		}
+ #ifdef LOG_UNKNOWN_HEADERS
+ 	    else if ( strncasecmp( buf, "Accept-Charset:", 15 ) == 0 ||
+ 		      strncasecmp( buf, "Accept-Language:", 16 ) == 0 ||
diff --git a/community/thttpd/getline.patch b/community/thttpd/getline.patch
new file mode 100644
index 000000000..1ec3946b1
--- /dev/null
+++ b/community/thttpd/getline.patch
@@ -0,0 +1,21 @@
+diff -Nur thttpd-2.25b.orig/extras/htpasswd.c thttpd-2.25b/extras/htpasswd.c
+--- thttpd-2.25b.orig/extras/htpasswd.c	2001-12-19 02:08:08.000000000 +0200
++++ thttpd-2.25b/extras/htpasswd.c	2010-04-11 14:43:31.037809054 +0300
+@@ -49,7 +49,7 @@
+     while((line[y++] = line[x++]));
+ }
+ 
+-static int getline(char *s, int n, FILE *f) {
++static int get_line(char *s, int n, FILE *f) {
+     register int i=0;
+ 
+     while(1) {
+@@ -189,7 +189,7 @@
+     strcpy(user,argv[2]);
+ 
+     found = 0;
+-    while(!(getline(line,MAX_STRING_LEN,f))) {
++    while(!(get_line(line,MAX_STRING_LEN,f))) {
+         if(found || (line[0] == '#') || (!line[0])) {
+             putline(tfp,line);
+             continue;
diff --git a/community/thttpd/logrotate.d b/community/thttpd/logrotate.d
new file mode 100644
index 000000000..efac62704
--- /dev/null
+++ b/community/thttpd/logrotate.d
@@ -0,0 +1,12 @@
+/var/log/thttpd/*log {
+	missingok
+	postrotate
+	test -d /sys/fs/cgroup/systemd && {
+		systemctl status thttpd.service | grep -q running &&
+		systemctl restart thttpd.service >/dev/null 
+	} || {
+		rc.d list thttpd | grep -q STARTED &&
+		/etc/rc.d/thttpd restart >/dev/null
+	}
+	endscript
+}
diff --git a/community/thttpd/service b/community/thttpd/service
new file mode 100644
index 000000000..2b40115ba
--- /dev/null
+++ b/community/thttpd/service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Tiny HTTP Daemon
+
+[Service]
+PIDFile=/run/thttpd.pid
+ExecStart=/usr/bin/thttpd -D -C /etc/thttpd.conf
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
-- 
cgit v1.2.3-54-g00ecf