From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D4F58158064 for ; Mon, 6 May 2024 16:34:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id EBDB9E2AB1; Mon, 6 May 2024 16:34:16 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C8304E2AAF for ; Mon, 6 May 2024 16:34:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8B20434316D for ; Mon, 6 May 2024 16:34:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id ACA301664 for ; Mon, 6 May 2024 16:34:13 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1715013136.c31dd78225219d808259cd4ee04d25ba8a1142de.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: www-servers/lighttpd/files/, www-servers/lighttpd/ X-VCS-Repository: repo/gentoo X-VCS-Files: www-servers/lighttpd/files/lighttpd.initd-r2 www-servers/lighttpd/files/lighttpd.service-r1 www-servers/lighttpd/lighttpd-1.4.75-r1.ebuild X-VCS-Directories: www-servers/lighttpd/files/ www-servers/lighttpd/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: c31dd78225219d808259cd4ee04d25ba8a1142de X-VCS-Branch: master Date: Mon, 6 May 2024 16:34:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 364f8a5f-1b92-4466-8657-d389d5ac9d33 X-Archives-Hash: ab4196f73a52fc9dd0b1815aae2afb3c commit: c31dd78225219d808259cd4ee04d25ba8a1142de Author: Glenn Strauss gluelogic com> AuthorDate: Sat Mar 16 22:33:00 2024 +0000 Commit: Sam James gentoo 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 gluelogic.com> Signed-off-by: Sam James 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/" +}