Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F151935775
D9574.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
17 KB
Referenced Files
None
Subscribers
None
D9574.id.diff
View Options
Index: www/obhttpd/Makefile
===================================================================
--- www/obhttpd/Makefile
+++ www/obhttpd/Makefile
@@ -2,6 +2,7 @@
PORTNAME= obhttpd
PORTVERSION= 6.0.20161006
+PORTREVISION= 1
CATEGORIES= www
MAINTAINER= koue@chaosophia.net
@@ -28,18 +29,30 @@
post-patch:
${REINPLACE_CMD} -e 's|httpd$$|obhttpd|g' \
-e 's|httpd.conf.5|obhttpd.conf.5|g' \
- -e 's|httpd.8|obhttpd.8|g' ${WRKSRC}/usr.sbin/httpd/Makefile
+ -e 's|httpd.8|obhttpd.8|g' \
+ ${WRKSRC}/usr.sbin/httpd/Makefile
${REINPLACE_CMD} -e 's|htpasswd$$|obhtpasswd|g' \
- -e 's|htpasswd.1|obhtpasswd.1|g' ${WRKSRC}/usr.bin/htpasswd/Makefile
+ -e 's|htpasswd.1|obhtpasswd.1|g' \
+ ${WRKSRC}/usr.bin/htpasswd/Makefile
+ ${REINPLACE_CMD} -e 's|htpasswd|obhtpasswd|g' \
+ ${WRKSRC}/usr.bin/htpasswd/htpasswd.1
+ ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
+ -e 's|%%WWWDIR%%|${WWWDIR}|g' \
+ ${WRKSRC}/usr.sbin/httpd/httpd.c \
+ ${WRKSRC}/usr.sbin/httpd/proc.c \
+ ${WRKSRC}/usr.sbin/httpd/httpd.conf.5 \
+ ${WRKSRC}/usr.sbin/httpd/httpd.8 \
+ ${WRKSRC}/etc/examples/httpd.conf \
+ ${WRKSRC}/usr.sbin/httpd/httpd.h
${MV} ${WRKSRC}/usr.bin/htpasswd/htpasswd.1 ${WRKSRC}/usr.bin/htpasswd/obhtpasswd.1
${MV} ${WRKSRC}/usr.sbin/httpd/httpd.conf.5 ${WRKSRC}/usr.sbin/httpd/obhttpd.conf.5
${MV} ${WRKSRC}/usr.sbin/httpd/httpd.8 ${WRKSRC}/usr.sbin/httpd/obhttpd.8
- ${REINPLACE_CMD} -e 's|/etc/httpd.conf|${PREFIX}/etc/obhttpd.conf|g' \
- ${WRKSRC}/usr.sbin/httpd/httpd.h
post-install:
${INSTALL_DATA} ${WRKSRC}/etc/examples/httpd.conf \
${STAGEDIR}${PREFIX}/etc/obhttpd.conf.sample
+ ${MKDIR} ${STAGEDIR}${WWWDIR}/cgi-bin ${STAGEDIR}${WWWDIR}/htdocs \
+ ${STAGEDIR}${WWWDIR}/logs ${STAGEDIR}${WWWDIR}/run
.include <bsd.port.pre.mk>
Index: www/obhttpd/distinfo
===================================================================
--- www/obhttpd/distinfo
+++ www/obhttpd/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1476701489
+TIMESTAMP = 1487012146
SHA256 (koue-httpd-6.0.20161006_GH0.tar.gz) = 5b26a697db0095ff06469c2005bd4c8e65b1a23c667e69b03a47b221128c7225
SIZE (koue-httpd-6.0.20161006_GH0.tar.gz) = 162396
Index: www/obhttpd/files/patch-etc_examples_httpd.conf
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-etc_examples_httpd.conf
@@ -0,0 +1,116 @@
+--- etc/examples/httpd.conf.orig 2016-10-17 10:49:16 UTC
++++ etc/examples/httpd.conf
+@@ -20,62 +20,62 @@ server "default" {
+ }
+
+ # A name-based "virtual" server on the same address
+-server "www.example.com" {
+- listen on $ext_addr port 80
+-
+- # Logging is enabled by default, but it can be turned off per server
+- #no log
+-
+- location "/pub/*" {
+- directory auto index
+- log style combined
+- }
+-
+- location "*.php" {
+- fastcgi socket "/run/php-fpm.sock"
+- }
+-
+- location "/cgi-bin/*" {
+- fastcgi
+-
+- # The /cgi-bin directory is outside of the document root
+- root "/"
+- }
+-
+- root "/htdocs/www.example.com"
+-}
++#server "www.example.com" {
++# listen on $ext_addr port 80
++#
++# # Logging is enabled by default, but it can be turned off per server
++# #no log
++#
++# location "/pub/*" {
++# directory auto index
++# log style combined
++# }
++#
++# location "*.php" {
++# fastcgi socket "/run/php-fpm.sock"
++# }
++#
++# location "/cgi-bin/*" {
++# fastcgi
++#
++# # The /cgi-bin directory is outside of the document root
++# root "/"
++# }
++#
++# root "/htdocs/www.example.com"
++#}
+
+ # An HTTPS server using SSL/TLS
+-server "secure.example.com" {
+- listen on 127.0.0.1 tls port 443
+-
+- # TLS certificate and key files created with acme-client(1)
+- tls certificate "/etc/ssl/acme/fullchain.pem"
+- tls key "/etc/ssl/acme/private/privkey.pem"
+-
+- # Define server-specific log files relative to /logs
+- log { access "secure-access.log", error "secure-error.log" }
+-
+- # Increase connection limits to extend the lifetime
+- connection { max requests 500, timeout 3600 }
+-
+- root "/htdocs/secure.example.com"
+-}
++#server "secure.example.com" {
++# listen on 127.0.0.1 tls port 443
++#
++# # TLS certificate and key files created with acme-client(1)
++# tls certificate "/usr/local/etc/ssl/acme/fullchain.pem"
++# tls key "%%PREFIX/etc/ssl/acme/private/privkey.pem"
++#
++# # Define server-specific log files relative to /logs
++# log { access "secure-access.log", error "secure-error.log" }
++#
++# # Increase connection limits to extend the lifetime
++# connection { max requests 500, timeout 3600 }
++#
++# root "/htdocs/secure.example.com"
++#}
+
+ # Another server on a different internal IPv4 address
+-server "intranet.example.com" {
+- listen on 10.0.0.1 port 80
+- directory { auto index, index "default.htm" }
+- root "/htdocs/intranet.example.com"
+-}
++#server "intranet.example.com" {
++# listen on 10.0.0.1 port 80
++# directory { auto index, index "default.htm" }
++# root "/htdocs/intranet.example.com"
++#}
+
+ # An IPv6-based server on a non-standard port
+-server "ipv6.example.com" {
+- listen on 2001:db8::53f6:3eab port 81
+- root "/htdocs/ipv6.example.com"
+-}
++#server "ipv6.example.com" {
++# listen on 2001:db8::53f6:3eab port 81
++# root "/htdocs/ipv6.example.com"
++#}
+
+ # Include MIME types instead of the built-in ones
+-types {
+- include "/usr/share/misc/mime.types"
+-}
++#types {
++# include "/usr/local/etc/mime.types"
++#}
Index: www/obhttpd/files/patch-usr.sbin_httpd_httpd.h
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_httpd.h
@@ -0,0 +1,22 @@
+--- usr.sbin/httpd/httpd.h.orig 2017-02-13 19:11:13 UTC
++++ usr.sbin/httpd/httpd.h
+@@ -46,7 +46,7 @@
+ #define nitems(_a) (sizeof((_a)) / sizeof((_a)[0]))
+ #endif
+
+-#define CONF_FILE "/etc/httpd.conf"
++#define CONF_FILE "%%PREFIX%%/etc/obhttpd.conf"
+ #define HTTPD_SOCKET "/var/run/httpd.sock"
+ #define HTTPD_USER "www"
+ #define HTTPD_SERVERNAME "OpenBSD httpd"
+@@ -58,8 +58,8 @@
+ #define HTTPD_ERROR_LOG "error.log"
+ #define HTTPD_DEFAULT_TYPE { "bin", "application", "octet-stream", NULL }
+ #define HTTPD_LOGVIS VIS_NL|VIS_TAB|VIS_CSTYLE
+-#define HTTPD_TLS_CERT "/etc/ssl/server.crt"
+-#define HTTPD_TLS_KEY "/etc/ssl/private/server.key"
++#define HTTPD_TLS_CERT "%%PREFIX%%/etc/ssl/server.crt"
++#define HTTPD_TLS_KEY "%%PREFIX%%/etc/ssl/private/server.key"
+ #define HTTPD_TLS_CIPHERS "compat"
+ #define HTTPD_TLS_DHE_PARAMS "none"
+ #define HTTPD_TLS_ECDHE_CURVE "auto"
Index: www/obhttpd/files/patch-usr.sbin_httpd_httpd.8
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_httpd.8
@@ -0,0 +1,59 @@
+--- usr.sbin/httpd/httpd.8.orig 2017-02-13 16:32:23 UTC
++++ usr.sbin/httpd/httpd.8
+@@ -15,11 +15,11 @@
+ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ .\"
+ .Dd $Mdocdate: September 15 2016 $
+-.Dt HTTPD 8
++.Dt OBHTTPD 8
+ .Os
+ .Sh NAME
+-.Nm httpd
+-.Nd HTTP daemon
++.Nm obhttpd
++.Nd OpenBSD HTTP daemon
+ .Sh SYNOPSIS
+ .Nm
+ .Op Fl dnv
+@@ -58,7 +58,7 @@ This allows for easy monitoring of
+ .It Fl f Ar file
+ Specifies the configuration file.
+ The default is
+-.Pa /etc/httpd.conf .
++.Pa %%PREFIX%%/etc/obhttpd.conf .
+ .It Fl n
+ Check that the configuration is valid, but don't start any servers.
+ .It Fl v
+@@ -69,24 +69,24 @@ options increase the verbosity.
+ .El
+ .Sh FILES
+-.Bl -tag -width "/etc/ssl/private/server.key" -compact
++.Bl -tag -width "%%PREFIX/etc/ssl/private/server.key" -compact
+-.It Pa /etc/httpd.conf
++.It Pa %%PREFIX%%/etc/obhttpd.conf
+ Default configuration file.
+-.It Pa /etc/ssl/private/server.key
++.It Pa %%PREFIX%%/etc/ssl/private/server.key
+ Default SSL/TLS server key.
+-.It Pa /etc/ssl/server.crt
++.It Pa %%PREFIX%%/etc/ssl/server.crt
+ Default SSL/TLS server certificate.
+-.It Pa /var/run/httpd.sock
++.It Pa /var/run/obhttpd.sock
+ .Ux Ns -domain
+ socket used for communication with
+ .Nm .
+-.It Pa /var/www/logs/access.log
++.It Pa %%WWWDIR%%/logs/access.log
+ Default access log file.
+-.It Pa /var/www/logs/error.log
++.It Pa %%WWWDIR%%/logs/error.log
+ Default error log file.
+ .El
+ .Sh SEE ALSO
+ .Xr acme-client 1 ,
+-.Xr httpd.conf 5 ,
++.Xr obhttpd.conf 5 ,
+ .Xr slowcgi 8
+ .Sh HISTORY
+ The
Index: www/obhttpd/files/patch-usr.sbin_httpd_httpd.c
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_httpd.c
@@ -0,0 +1,11 @@
+--- usr.sbin/httpd/httpd.c.orig 2017-02-16 19:21:54 UTC
++++ usr.sbin/httpd/httpd.c
+@@ -204,7 +204,7 @@ main(int argc, char *argv[])
+ ps->ps_title[proc_id] = title;
+
+ if (env->sc_chroot == NULL)
+- env->sc_chroot = ps->ps_pw->pw_dir;
++ env->sc_chroot = "%%WWWDIR%%";
+ for (proc = 0; proc < nitems(procs); proc++)
+ procs[proc].p_chroot = env->sc_chroot;
+
Index: www/obhttpd/files/patch-usr.sbin_httpd_httpd.conf.5
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_httpd.conf.5
@@ -0,0 +1,195 @@
+--- usr.sbin/httpd/httpd.conf.5.orig 2016-10-17 10:49:16 UTC
++++ usr.sbin/httpd/httpd.conf.5
+@@ -15,15 +15,15 @@
+ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ .\"
+ .Dd $Mdocdate: May 9 2016 $
+-.Dt HTTPD.CONF 5
++.Dt OBHTTPD.CONF 5
+ .Os
+ .Sh NAME
+-.Nm httpd.conf
+-.Nd HTTP daemon configuration file
++.Nm obhttpd.conf
++.Nd OBHTTP daemon configuration file
+ .Sh DESCRIPTION
+ .Nm
+-is the configuration file for the HTTP daemon,
+-.Xr httpd 8 .
++is the configuration file for the OBHTTP daemon,
++.Xr obhttpd 8 .
+ .Sh SECTIONS
+ .Nm
+ is divided into four main sections:
+@@ -33,9 +33,9 @@ User-defined variables may be defined an
+ configuration file.
+ .It Sy Global Configuration
+ Global settings for
+-.Xr httpd 8 .
++.Xr obhttpd 8 .
+ .It Sy Servers
+-Listening HTTP web servers.
++Listening OBHTTP web servers.
+ .It Sy Types
+ Media types and extensions.
+ .El
+@@ -46,7 +46,7 @@ a host
+ can be specified by IPv4 address, IPv6 address, interface name,
+ interface group, or DNS hostname.
+ If the address is an interface name,
+-.Xr httpd 8
++.Xr obhttpd 8
+ will look up the first IPv4 address and any other IPv4 and IPv6
+ addresses of the specified network interface.
+ If
+@@ -82,7 +82,7 @@ Additional configuration files can be in
+ .Ic include
+ keyword, for example:
+ .Bd -literal -offset indent
+-include "/etc/httpd.conf.local"
++include "%%PREFIX%%/etc/obhttpd.conf.local"
+ .Ed
+ .Sh MACROS
+ Macros can be defined that will later be expanded in context.
+@@ -110,8 +110,7 @@ Set the
+ .Xr chroot 2
+ directory.
+ If not specified, it defaults to
+-.Pa /var/www ,
+-the home directory of the www user.
++.Pa %%WWWDIR%%.
+ .It Ic default type Ar type/subtype
+ Set the default media type that is used if the media type for a
+ specified extension is not found in the configured types or for files
+@@ -132,7 +131,7 @@ directory.
+ Run the specified number of server processes.
+ This increases the performance and prevents delays when connecting
+ to a server.
+-.Xr httpd 8
++.Xr obhttpd 8
+ runs 3 server processes by default.
+ .El
+ .Sh SERVERS
+@@ -172,11 +171,11 @@ the
+ using pattern matching instead of shell globbing rules,
+ see
+ .Xr patterns 7 .
+-.It Oo Ic no Oc Ic authenticate Oo Ar realm Oc Ic with Pa htpasswd
++.It Oo Ic no Oc Ic authenticate Oo Ar realm Oc Ic with Pa obhtpasswd
+ Authenticate a remote user for
+ .Ar realm
+ by checking the credentials against the user authentication file
+-.Pa htpasswd .
++.Pa obhtpasswd .
+ The file name is relative to the
+ .Ic chroot
+ and must be readable by the www user.
+@@ -188,7 +187,7 @@ Drop the connection without sending an e
+ .It Ic block Op Ic return Ar code Op Ar uri
+ Close the connection and send an error page.
+ If the optional return code is not specified,
+-.Xr httpd 8
++.Xr obhttpd 8
+ denies access with a
+ .Sq 403 Forbidden
+ response.
+@@ -261,7 +260,7 @@ If not specified, it defaults to
+ .Pa index.html .
+ .It Ic no index
+ Disable the directory index.
+-.Xr httpd 8
++.Xr obhttpd 8
+ will neither display nor generate a directory index.
+ .El
+ .It Oo Ic no Oc Ic fastcgi Op Ic socket Ar socket
+@@ -271,7 +270,7 @@ The
+ is a local path name within the
+ .Xr chroot 2
+ root directory of
+-.Xr httpd 8
++.Xr obhttpd 8
+ and defaults to
+ .Pa /run/slowcgi.sock .
+ .Pp
+@@ -333,7 +332,7 @@ The configured TCP server port of the se
+ The revision of the HTTP specification used.
+ .It Ic SERVER_SOFTWARE
+ The server software name of
+-.Xr httpd 8 .
++.Xr obhttpd 8 .
+ .El
+ .It Ic hsts Oo Ar option Oc
+ Enable HTTP Strict Transport Security.
+@@ -452,7 +451,7 @@ The
+ is a pathname within the
+ .Xr chroot 2
+ root directory of
+-.Nm httpd .
++.Nm obhttpd .
+ If not specified, it defaults to
+ .Pa /htdocs .
+ .It Ic strip Ar number
+@@ -504,7 +503,7 @@ The
+ .Ar file
+ should contain a PEM encoded certificate.
+ The default is
+-.Pa /etc/ssl/server.crt .
++.Pa %%PREFIX%%/etc/ssl/server.crt .
+ .It Ic ciphers Ar string
+ Specify the TLS cipher string.
+ If not specified, the default value
+@@ -530,9 +529,9 @@ The
+ should contain a PEM encoded private key and reside outside of the
+ .Xr chroot 2
+ root directory of
+-.Nm httpd .
++.Nm obhttpd .
+ The default is
+-.Pa /etc/ssl/private/server.key .
++.Pa %%PREFIX%%/etc/ssl/private/server.key .
+ .It Ic protocols Ar string
+ Specify the TLS protocols to enable for this server.
+ If not specified, the value
+@@ -545,14 +544,14 @@ function for other valid protocol string
+ .El
+ .Sh TYPES
+ Configure the supported media types.
+-.Xr httpd 8
++.Xr obhttpd 8
+ will set the
+ .Ar Content-Type
+ of the response header based on the file extension listed in the
+ .Ic types
+ section.
+ If not specified,
+-.Xr httpd 8
++.Xr obhttpd 8
+ will use built-in media types for
+ .Ar text/css ,
+ .Ar text/html ,
+@@ -578,7 +577,7 @@ One or more names can be specified per l
+ Each line may end with an optional semicolon.
+ .It Ic include Ar file
+ Include types definitions from an external file, for example
+-.Pa /usr/share/misc/mime.types .
++.Pa %%PREFIX%%/etc/mime.types .
+ .El
+ .Sh EXAMPLES
+ The following example will start one server that is pre-forked two
+@@ -656,13 +655,13 @@ server "www.example.com" {
+ }
+ .Ed
+ .Sh SEE ALSO
+-.Xr htpasswd 1 ,
++.Xr obhtpasswd 1 ,
+ .Xr patterns 7 ,
+-.Xr httpd 8 ,
++.Xr obhttpd 8 ,
+ .Xr slowcgi 8
+ .Sh AUTHORS
+ .An -nosplit
+ The
+-.Xr httpd 8
++.Xr obhttpd 8
+ program was written by
+ .An Reyk Floeter Aq Mt reyk@openbsd.org .
Index: www/obhttpd/files/patch-usr.sbin_httpd_patterns.7
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_patterns.7
@@ -0,0 +1,29 @@
+--- usr.sbin/httpd/patterns.7.orig 2017-02-13 16:32:53 UTC
++++ usr.sbin/httpd/patterns.7
+@@ -33,7 +33,7 @@
+ .Nd Lua's pattern matching rules
+ .Sh DESCRIPTION
+ Pattern matching in
+-.Xr httpd 8
++.Xr obhttpd 8
+ is based on the implementation of the Lua scripting language and
+ provides a simple and fast alternative to the regular expressions (REs) that
+ are described in
+@@ -272,7 +272,7 @@ there will be two captures: 2 and 4.
+ .Sh SEE ALSO
+ .Xr fnmatch 3 ,
+ .Xr re_format 7 ,
+-.Xr httpd 8
++.Xr obhttpd 8
+ .Rs
+ .%A Roberto Ierusalimschy
+ .%A Luiz Henrique de Figueiredo
+@@ -299,7 +299,7 @@ and
+ .An Luiz Henrique de Figueiredo
+ at PUC-Rio.
+ It was turned into a native C API for
+-.Xr httpd 8
++.Xr obhttpd 8
+ by
+ .An Reyk Floeter Aq Mt reyk@openbsd.org .
+ .Sh CAVEATS
Index: www/obhttpd/files/patch-usr.sbin_httpd_proc.c
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_proc.c
@@ -0,0 +1,11 @@
+--- usr.sbin/httpd/proc.c.orig 2017-02-16 19:23:09 UTC
++++ usr.sbin/httpd/proc.c
+@@ -544,7 +544,7 @@ proc_run(struct privsep *ps, struct priv
+
+ /* Change root directory */
+ if (p->p_chroot != NULL)
+- root = p->p_chroot;
++ root = "%%WWWDIR%%";
+ else
+ root = pw->pw_dir;
+
Index: www/obhttpd/files/patch-usr.sbin_httpd_server__file.c
===================================================================
--- /dev/null
+++ www/obhttpd/files/patch-usr.sbin_httpd_server__file.c
@@ -0,0 +1,30 @@
+OpenBSD 6.0 errata 17, Jan 31, 2017
+
+A bug in the processing of range headers in httpd can lead to memory
+exhaustion. This patch disables range header processing.
+
+--- usr.sbin/httpd/server_file.c.orig 2016-10-17 10:49:16 UTC
++++ usr.sbin/httpd/server_file.c
+@@ -66,7 +66,6 @@ server_file_access(struct httpd *env, st
+ struct http_descriptor *desc = clt->clt_descreq;
+ struct server_config *srv_conf = clt->clt_srv_conf;
+ struct stat st;
+- struct kv *r, key;
+ char *newpath, *encodedpath;
+ int ret;
+
+@@ -146,13 +145,7 @@ server_file_access(struct httpd *env, st
+ goto fail;
+ }
+
+- key.kv_key = "Range";
+- r = kv_find(&desc->http_headers, &key);
+- if (r != NULL)
+- return (server_partial_file_request(env, clt, path, &st,
+- r->kv_value));
+- else
+- return (server_file_request(env, clt, path, &st));
++ return (server_file_request(env, clt, path, &st));
+
+ fail:
+ switch (errno) {
Index: www/obhttpd/pkg-plist
===================================================================
--- www/obhttpd/pkg-plist
+++ www/obhttpd/pkg-plist
@@ -5,3 +5,7 @@
man/man8/obhttpd.8.gz
sbin/obhtpasswd
sbin/obhttpd
+@dir %%WWWDIR%%/cgi-bin
+@dir %%WWWDIR%%/htdocs
+@dir %%WWWDIR%%/logs
+@dir %%WWWDIR%%/run
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 12, 3:18 PM (20 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31355614
Default Alt Text
D9574.id.diff (17 KB)
Attached To
Mode
D9574: www/obhttpd: Patch for OpenBSD 6.0 errata.
Attached
Detach File
Event Timeline
Log In to Comment