Skip to content

Conversation

@pmenzel
Copy link
Collaborator

@pmenzel Paul Menzel (pmenzel) commented Oct 2, 2026 •

$ lighttpd -v
lighttpd/1.4.85 (ssl) - a light and fast webserver
$ lighttpd -V
lighttpd/1.4.85 (ssl) - a light and fast webserver

Event Handlers:

	- select (generic)
	+ poll (Unix)
	+ epoll (Linux)
	- /dev/poll (Solaris)
	- eventports (Solaris)
	- kqueue (FreeBSD)

Network handler:

	+ linux-sendfile
	- freebsd-sendfile
	- darwin-sendfile
	- solaris-sendfilev
	+ writev
	+ write
	+ mmap support

Features:

	+ IPv6 support
	+ zlib support
	- zstd support
	- bzip2 support
	- brotli support
	+ crypt support
	+ OpenSSL support
	- mbedTLS support
	- NSS crypto support
	- GnuTLS support
	- WolfSSL support
	- Nettle support
	+ PCRE support
	- MySQL support
	- PgSQL support
	- DBI support
	- Kerberos support
	- LDAP support
	- PAM support
	+ inotify support
	- LUA support
	- xml support
	- SQLite support
	+ Y2038 support

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The release tarball no longer contains a generated `configure`, but
CMakeLists.txt and meson.build, the build system upstream recommends. bee
picks CMake when it finds both, and the absolute CMAKE_INSTALL_LIBDIR it
passes is prefixed once more, so the modules were installed to
`/usr/usr/lib/lighttpd` and the binary looked for them there:

    -rwxr-xr-x Apmenzel/Apmenzel   51072 2026-10-01 20:46 /usr/usr/lib/lighttpd/mod_vhostdb.so
     -m <name>  module directory (default: /usr//usr/lib/lighttpd)

Select meson explicitly. Its moduledir already defaults to
`/usr/lib/lighttpd`, so the override `LIBDIR=/usr/share/lighttpd`, which
kept the modules out of `/usr/lib` under autotools, is not needed anymore,
and the architecture dependent modules leave `/usr/share`. The project’s
default buildtype is debugoptimized, so it is built with `-O2 -g`.

TLS is off by default, so enable OpenSSL, building `mod_openssl.so`:

    [BEE] meson --prefix /usr --sysconfdir=/etc --localstatedir=/var --wrap-mode=nofallback -Dwith_openssl=true …
    [108/108] cc  -o src/mod_openssl.so src/mod_openssl.so.p/mod_openssl.c.o … /usr/lib/libssl.so /usr/lib/libcrypto.so …

    $ lighttpd -V
    lighttpd/1.4.85 (ssl) - a light and fast webserver
    	+ zlib support
    	+ OpenSSL support
    	+ PCRE support

Smoke-tested with a self-signed certificate on 127.0.0.1:18443, which
negotiates TLS 1.3 and HTTP/2, and rejects plain HTTP on that port:

    $ curl --cacert cert.pem https://localhost:18443/ -w '%{http_code} HTTP/%{http_version}\n'
    hello-tls
    200 HTTP/2
    $ openssl s_client -connect 127.0.0.1:18443 -brief
    Protocol version: TLSv1.3
    Ciphersuite: TLS_AES_256_GCM_SHA384
    (mod_openssl.c.4844) SSL: addr:127.0.0.1 ssl_err:1 error:0A00009C:SSL routines::http request

Configurations written for 1.4.28 that load one of the modules upstream
has removed since – mod_cml, mod_evasive, mod_flv_streaming,
mod_mysql_vhost (superseded by mod_vhostdb), mod_secdownload,
mod_trigger_b4_dl, and mod_usertrack – no longer start. mod_magnet
remains, but requires Lua, which is not enabled. Most of the others
(mod_access, mod_alias, mod_rewrite, mod_fastcgi, …) are built into the
binary now, and mod_compress is an alias of mod_deflate.

The tarball matches upstream’s SHA-512 checksum.

54eda55229f762868db4a5941532448036a83a12de3065f6fcbe04f57f8be030a25ad6a82cabc014474449ebb01f0a23d08c23bb729737783a9

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
@pmenzel Paul Menzel (pmenzel) merged commit a7c6552 into master Oct 2, 2026
Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant