public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: www-servers/lighttpd/files/, www-servers/lighttpd/
Date: Mon,  6 May 2024 16:34:13 +0000 (UTC)	[thread overview]
Message-ID: <1715013136.c31dd78225219d808259cd4ee04d25ba8a1142de.sam@gentoo> (raw)

commit:     c31dd78225219d808259cd4ee04d25ba8a1142de
Author:     Glenn Strauss <gstrauss <AT> gluelogic <DOT> com>
AuthorDate: Sat Mar 16 22:33:00 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May  6 16:32:16 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c31dd782

www-servers/lighttpd: update lighttpd.initd, lighttpd.service

* test configs with -tt for a better preflight config test.
* graceful restart using SIGUSR1

[sam: I've rebased this to fork the changes into a new ebuild revision
(1.4.75-r1). Any errors in rebasing are mine and not Glenn's.]

Signed-off-by: Glenn Strauss <gstrauss <AT> gluelogic.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-servers/lighttpd/files/lighttpd.initd-r2   |  76 +++++++++
 www-servers/lighttpd/files/lighttpd.service-r1 |  14 ++
 www-servers/lighttpd/lighttpd-1.4.75-r1.ebuild | 226 +++++++++++++++++++++++++
 3 files changed, 316 insertions(+)

diff --git a/www-servers/lighttpd/files/lighttpd.initd-r2 b/www-servers/lighttpd/files/lighttpd.initd-r2
new file mode 100644
index 000000000000..24539e3e80c7
--- /dev/null
+++ b/www-servers/lighttpd/files/lighttpd.initd-r2
@@ -0,0 +1,76 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload graceful"
+
+LIGHTTPD_PID="$($(which lighttpd) -pf ${LIGHTTPD_CONF} | grep server.pid-file | cut -d '=' -f 2 | tr -d \\\" | tr -d [:space:])"
+
+depend() {
+	need net
+	use mysql logger spawn-fcgi ldap slapd netmount dns
+	after famd
+	after sshd
+}
+
+checkconfig() {
+	if [ ! -f "${LIGHTTPD_CONF}" ] ; then
+		ewarn "${LIGHTTPD_CONF} does not exist."
+		return 1
+	fi
+
+	if [ -z "${LIGHTTPD_PID}" ] ; then
+		eerror "server.pid-file variable in ${LIGHTTPD_CONF}"
+		eerror "is not set. Please set this variable properly"
+		eerror "and try again"
+		return 1
+	fi
+	/usr/sbin/lighttpd -tt -f ${LIGHTTPD_CONF} >/dev/null
+}
+
+start() {
+	checkconfig || return 1
+	# Glean lighttpd's credentials from the configuration file
+	# Fixes bug 454366
+	LIGHTTPD_USER="$(awk '/^server.username/{s=$3};{sub("\"","",s)};END{print s}' ${LIGHTTPD_CONF})"
+	LIGHTTPD_GROUP="$(awk '/^server.groupname/{s=$3};{sub("\"","",s)};END{print s}' ${LIGHTTPD_CONF})"
+	checkpath -d -q -m 0750 -o "${LIGHTTPD_USER}":"${LIGHTTPD_GROUP}" /run/lighttpd/
+
+	ebegin "Starting lighttpd"
+	start-stop-daemon --start --quiet --exec /usr/sbin/lighttpd \
+		--pidfile "${LIGHTTPD_PID}" -- -f "${LIGHTTPD_CONF}"
+	eend $?
+}
+
+stop() {
+	local rv=0
+	ebegin "Stopping lighttpd"
+	start-stop-daemon --stop --quiet --pidfile "${LIGHTTPD_PID}"
+	eend $?
+}
+
+reload() {
+	if ! service_started "${SVCNAME}" ; then
+		eerror "${SVCNAME} isn't running"
+		return 1
+	fi
+	checkconfig || return 1
+
+	ebegin "Re-opening lighttpd log files"
+	start-stop-daemon --quiet --pidfile "${LIGHTTPD_PID}" \
+		--signal HUP
+	eend $?
+}
+
+graceful() {
+	if ! service_started "${SVCNAME}" ; then
+		eerror "${SVCNAME} isn't running"
+		return 1
+	fi
+	checkconfig || return 1
+
+	ebegin "Gracefully restarting lighttpd"
+	start-stop-daemon --quiet --pidfile "${LIGHTTPD_PID}" \
+		--signal USR1
+	eend $?
+}

diff --git a/www-servers/lighttpd/files/lighttpd.service-r1 b/www-servers/lighttpd/files/lighttpd.service-r1
new file mode 100644
index 000000000000..2a8f22474eea
--- /dev/null
+++ b/www-servers/lighttpd/files/lighttpd.service-r1
@@ -0,0 +1,14 @@
+[Unit]
+Description=Lighttpd Daemon
+After=syslog.target network-online.target
+
+[Service]
+Type=simple
+PIDFile=/run/lighttpd.pid
+ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf
+ExecStart=/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
+ExecReload=/bin/kill -USR1 $MAINPID
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target

diff --git a/www-servers/lighttpd/lighttpd-1.4.75-r1.ebuild b/www-servers/lighttpd/lighttpd-1.4.75-r1.ebuild
new file mode 100644
index 000000000000..7f2690ba090d
--- /dev/null
+++ b/www-servers/lighttpd/lighttpd-1.4.75-r1.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/lighttpd.asc
+inherit lua-single meson readme.gentoo-r1 systemd tmpfiles verify-sig
+
+DESCRIPTION="Lightweight high-performance web server"
+HOMEPAGE="https://www.lighttpd.net https://github.com/lighttpd"
+SRC_URI="
+	https://download.lighttpd.net/lighttpd/releases-$(ver_cut 1-2).x/${P}.tar.xz
+	verify-sig? ( https://download.lighttpd.net/lighttpd/releases-$(ver_cut 1-2).x/${P}.tar.xz.asc )
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+brotli dbi gnutls kerberos ldap +lua maxminddb mbedtls +nettle nss +pcre php sasl selinux ssl test unwind webdav xattr +zlib zstd"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+	lua? ( ${LUA_REQUIRED_USE} )
+"
+
+# Match the bundled xxhash version for the minimum version
+COMMON_DEPEND="
+	acct-group/lighttpd
+	acct-user/lighttpd
+	>=dev-libs/xxhash-0.8.2
+	virtual/libcrypt:=
+	brotli? ( app-arch/brotli:= )
+	dbi? (
+		dev-db/libdbi
+	)
+	gnutls? ( net-libs/gnutls )
+	kerberos? ( virtual/krb5 )
+	ldap? ( >=net-nds/openldap-2.1.26:= )
+	lua? ( ${LUA_DEPS} )
+	maxminddb? ( dev-libs/libmaxminddb )
+	mbedtls? ( net-libs/mbedtls )
+	nettle? ( dev-libs/nettle:= )
+	nss? ( dev-libs/nss )
+	pcre? ( dev-libs/libpcre2 )
+	php? ( dev-lang/php:*[cgi] )
+	sasl? ( dev-libs/cyrus-sasl )
+	ssl? ( >=dev-libs/openssl-0.9.7:= )
+	unwind? ( sys-libs/libunwind:= )
+	webdav? (
+		dev-libs/libxml2
+		sys-fs/e2fsprogs
+	)
+	xattr? ( kernel_linux? ( sys-apps/attr ) )
+	zlib? ( >=sys-libs/zlib-1.1 )
+	zstd? ( app-arch/zstd:= )
+"
+DEPEND="
+	${COMMON_DEPEND}
+	elibc_musl? ( sys-libs/queue-standalone )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	selinux? ( sec-policy/selinux-apache )
+"
+BDEPEND="
+	virtual/pkgconfig
+	test? ( virtual/perl-Test-Harness )
+	verify-sig? ( sec-keys/openpgp-keys-lighttpd )
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.4.75-sparc.patch
+)
+
+# update certain parts of lighttpd.conf based on conditionals
+update_config() {
+	local config="${ED}/etc/lighttpd/lighttpd.conf"
+
+	# Enable php/mod_fastcgi settings
+	if use php; then
+		sed -i -e 's|#.*\(include.*fastcgi.*$\)|\1|' ${config} || die
+	fi
+
+	# Automatically listen on IPv6 if built with USE=ipv6 (which we now always do)
+	# bug #234987
+	sed -i -e 's|# server.use-ipv6|server.use-ipv6|' ${config} || die
+}
+
+pkg_setup() {
+	if use lua; then
+		lua-single_pkg_setup
+	fi
+
+	if ! use pcre ; then
+		ewarn "It is highly recommended that you build ${PN}"
+		ewarn "with perl regular expressions support via USE=pcre."
+		ewarn "Otherwise you lose support for some core options such"
+		ewarn "as conditionals and modules such as mod_re{write,direct}."
+	fi
+
+	DOC_CONTENTS="IPv6 migration guide:\n
+		https://redmine.lighttpd.net/projects/lighttpd/wiki/IPv6-Config
+	"
+}
+
+src_configure() {
+	local emesonargs=(
+		-Dmoduledir="$(get_libdir)"/${PN}
+
+		$(meson_feature brotli with_brotli)
+
+		# TODO: revisit (was off in autotools ebuild)
+		-Dwith_bzip=disabled
+
+		$(meson_feature dbi with_dbi)
+
+		# Unpackaged in Gentoo
+		-Dwith_libdeflate=disabled
+		# Obsolete
+		-Dwith_fam=disabled
+
+		$(meson_use gnutls with_gnutls)
+		$(meson_feature kerberos with_krb5)
+		$(meson_feature ldap with_ldap)
+
+		# TODO: revisit (was off in autotools ebuild)
+		-Dwith_libev=disabled
+
+		$(meson_feature unwind with_libunwind)
+
+		$(meson_use lua with_lua)
+		-Dlua_version=${ELUA}
+
+		$(meson_feature maxminddb with_maxminddb)
+		$(meson_use mbedtls with_mbedtls)
+
+		$(meson_use nettle with_nettle)
+		$(meson_use nss with_nss)
+
+		# Obsolete
+		-Dwith_pcre=disabled
+
+		$(meson_use pcre with_pcre2)
+
+		$(meson_feature sasl with_sasl)
+		$(meson_use ssl with_openssl)
+
+		-Dwith_xxhash=enabled
+		$(meson_feature webdav with_webdav_props)
+
+		# Unpackaged in Gentoo
+		-Dwith_wolfssl=false
+
+		$(meson_use xattr with_xattr)
+		$(meson_feature zlib with_zlib)
+		$(meson_feature zstd with_zstd)
+	)
+
+	meson_src_configure
+}
+
+src_install() {
+	meson_src_install
+
+	# Init script stuff
+	newinitd "${FILESDIR}"/lighttpd.initd-r2 lighttpd
+	newconfd "${FILESDIR}"/lighttpd.confd lighttpd
+
+	# Configs
+	insinto /etc/lighttpd
+	newins "${FILESDIR}"/conf/lighttpd.conf-r1 lighttpd.conf
+	doins "${FILESDIR}"/conf/mime-types.conf
+	doins "${FILESDIR}"/conf/mod_cgi.conf
+	doins "${FILESDIR}"/conf/mod_fastcgi.conf
+
+	# Update lighttpd.conf directives based on conditionals
+	update_config
+
+	# Docs
+	dodoc AUTHORS README NEWS doc/scripts/*.sh
+	newdoc doc/config/lighttpd.conf lighttpd.conf.distrib
+	readme.gentoo_create_doc
+
+	docinto txt
+	dodoc doc/outdated/*.txt
+
+	doman doc/*.8
+
+	# Logrotate
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}"/lighttpd.logrotate-r1 lighttpd
+
+	keepdir /var/l{ib,og}/lighttpd /var/www/localhost/htdocs
+	fowners lighttpd:lighttpd /var/l{ib,og}/lighttpd
+	fperms 0750 /var/l{ib,og}/lighttpd
+
+	systemd_dounit "${FILESDIR}"/${PN}.service-r1 ${PN}.service
+	newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf
+}
+
+pkg_postinst() {
+	tmpfiles_process ${PN}.conf
+
+	readme.gentoo_print_elog
+
+	if [[ -f ${EROOT}/etc/lighttpd.conf ]] ; then
+		elog
+		elog "Gentoo has a customized configuration,"
+		elog "which is now located in ${EROOT}/etc/lighttpd. Please migrate your"
+		elog "existing configuration."
+	fi
+
+	if use brotli || use zstd || use zlib ; then
+		elog
+		elog "Remember to clean your cache directory when using"
+		elog "output compression!"
+		elog "https://wiki.lighttpd.net/Docs_ModDeflate"
+	fi
+
+	elog
+	elog "Upstream has deprecated a number of features. They are not missing"
+	elog "but have been migrated to other mechanisms. Please see upstream"
+	elog "changelog for details."
+	elog "https://www.lighttpd.net/2022/1/19/1.4.64/"
+}


             reply	other threads:[~2024-05-06 16:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-06 16:34 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-14 10:47 [gentoo-commits] repo/gentoo:master commit in: www-servers/lighttpd/files/, www-servers/lighttpd/ Sam James
2024-07-12 10:29 Sam James
2024-05-06 14:05 Sam James
2023-09-08 21:05 Sam James
2021-07-03 15:46 Joonas Niilola
2019-08-02 12:04 Mikle Kolyada
2018-04-28 12:53 Mikle Kolyada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1715013136.c31dd78225219d808259cd4ee04d25ba8a1142de.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox