summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2022-03-01 15:54:02 +0300
committerAlexey Shvetsov <alexxy@gentoo.org>2022-03-01 15:54:13 +0300
commit3c5d8a46a252853fd8b54c8c6537e08b768fbc7a (patch)
tree0d6490cf9873729f0e0f0582d44fac5cc3f7a7b4 /www-servers/webfs
parentsci-libs/avogadrolibs: remove USE=static-plugins (diff)
downloadgentoo-3c5d8a46a252853fd8b54c8c6537e08b768fbc7a.tar.gz
gentoo-3c5d8a46a252853fd8b54c8c6537e08b768fbc7a.tar.bz2
gentoo-3c5d8a46a252853fd8b54c8c6537e08b768fbc7a.zip
www-servers/webfs: Add webfsd
Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
Diffstat (limited to 'www-servers/webfs')
-rw-r--r--www-servers/webfs/Manifest1
-rw-r--r--www-servers/webfs/files/webfs-1.21-CVE-2013-0347.patch15
-rw-r--r--www-servers/webfs/files/webfs-1.21-Variables.mk-dont-strip-binaries-on-install.patch12
-rw-r--r--www-servers/webfs/files/webfs.confd27
-rw-r--r--www-servers/webfs/files/webfs.initd29
-rw-r--r--www-servers/webfs/files/webfs.service10
-rw-r--r--www-servers/webfs/files/webfs.service.conf27
-rw-r--r--www-servers/webfs/metadata.xml8
-rw-r--r--www-servers/webfs/webfs-1.21.ebuild55
9 files changed, 184 insertions, 0 deletions
diff --git a/www-servers/webfs/Manifest b/www-servers/webfs/Manifest
new file mode 100644
index 000000000000..7736407698cb
--- /dev/null
+++ b/www-servers/webfs/Manifest
@@ -0,0 +1 @@
+DIST webfs-1.21.tar.gz 44249 BLAKE2B 3d1bf7023f271f06079378a9a8e957deb611d567209ebd0ee947cae9852aecc2704ec8ce115b1f03ec39299040f44d7caf53fb30241f4990521aeda7b5815f3f SHA512 68b9b3163a21be8a549e395295b27dd8ce9b575183d6c36b05b98bdc310917cf2dc653ff73bdb78a8c063674a8e9480211ec5c28b8a676f9cee41fa962cfd473
diff --git a/www-servers/webfs/files/webfs-1.21-CVE-2013-0347.patch b/www-servers/webfs/files/webfs-1.21-CVE-2013-0347.patch
new file mode 100644
index 000000000000..26e225def360
--- /dev/null
+++ b/www-servers/webfs/files/webfs-1.21-CVE-2013-0347.patch
@@ -0,0 +1,15 @@
+--- ./webfsd.c
++++ ./webfsd.c
+@@ -918,8 +918,11 @@
+ } else {
+ if (NULL == (logfh = fopen(logfile,"a")))
+ xperror(LOG_WARNING,"open access log",NULL);
+- else
++ else {
+ close_on_exec(fileno(logfh));
++ if (0 != chmod(logfile,S_IRUSR|S_IWUSR))
++ xperror(LOG_WARNING,"chmod access log",NULL);
++ }
+ }
+ }
+
diff --git a/www-servers/webfs/files/webfs-1.21-Variables.mk-dont-strip-binaries-on-install.patch b/www-servers/webfs/files/webfs-1.21-Variables.mk-dont-strip-binaries-on-install.patch
new file mode 100644
index 000000000000..03f2f5c59816
--- /dev/null
+++ b/www-servers/webfs/files/webfs-1.21-Variables.mk-dont-strip-binaries-on-install.patch
@@ -0,0 +1,12 @@
+diff -Naur webfs-1.21.orig/mk/Variables.mk webfs-1.21/mk/Variables.mk
+--- webfs-1.21.orig/mk/Variables.mk 2009-02-03 01:14:18.000000000 +0100
++++ webfs-1.21/mk/Variables.mk 2009-02-03 01:16:01.000000000 +0100
+@@ -23,7 +23,7 @@
+ CXX ?= g++
+ MOC ?= $(if $(QTDIR),$(QTDIR)/bin/moc,moc)
+ INSTALL ?= install
+-INSTALL_BINARY := $(INSTALL) -s
++INSTALL_BINARY := $(INSTALL)
+ INSTALL_SCRIPT := $(INSTALL)
+ INSTALL_DATA := $(INSTALL) -m 644
+ INSTALL_DIR := $(INSTALL) -d
diff --git a/www-servers/webfs/files/webfs.confd b/www-servers/webfs/files/webfs.confd
new file mode 100644
index 000000000000..5c4de3ad9b74
--- /dev/null
+++ b/www-servers/webfs/files/webfs.confd
@@ -0,0 +1,27 @@
+# Configuration for webfsd init script
+
+WEBFS_PORT=80
+WEBFS_DOCROOT=/var/www/localhost/htdocs
+WEBFS_INDEX=index.html
+WEBFS_LOG=/var/log/webfsd.log
+
+# set server name
+#WEBFS_SERVNAME=
+
+# uncomment to chroot to specified dir
+#WEBFS_CHROOT="/var/www/localhost"
+
+# max allowed connections (defaults to 32)
+#WEBFS_MAXCONN=50
+
+# uncomment to enable directory listings
+#WEBFS_DIR_LIST=true
+
+# uncomment to enable SSL (you'll need to add -C <cert> -P <pass> to WEBFS_OPTS)
+#WEBFS_SSL=true
+
+# uncomment to enable ipv6
+#WEBFS_IPV6=true
+
+# Add any extra options here. See webfsd for more information.
+#WEBFS_OPTS=""
diff --git a/www-servers/webfs/files/webfs.initd b/www-servers/webfs/files/webfs.initd
new file mode 100644
index 000000000000..ec328b662f83
--- /dev/null
+++ b/www-servers/webfs/files/webfs.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ WEBFS_OPTS="-p ${WEBFS_PORT:-80} -f ${WEBFS_INDEX:-index.html} ${WEBFS_OPTS}"
+ [ -n "${WEBFS_DOCROOT}" ] && WEBFS_OPTS="${WEBFS_OPTS} -r ${WEBFS_DOCROOT}"
+ [ -n "${WEBFS_CHROOT}" ] && WEBFS_OPTS="${WEBFS_OPTS} -R ${WEBFS_CHROOT}"
+ [ -n "${WEBFS_LOG}" ] && WEBFS_OPTS="${WEBFS_OPTS} -L ${WEBFS_LOG}"
+ [ -n "${WEBFS_MAXCONN}" ] && WEBFS_OPTS="${WEBFS_OPTS} -c ${WEBFS_MAXCONN}"
+ [ -n "${WEBFS_IPV6}" ] && WEBFS_OPTS="${WEBFS_OPTS} -6"
+ [ -n "${WEBFS_SSL}" ] && WEBFS_OPTS="${WEBFS_OPTS} -S"
+ [ -n "${WEBFS_SERVNAME}" ] && WEBFS_OPTS="${WEBFS_OPTS} -n ${WEBFS_SERVNAME}"
+ [ -n "${WEBFS_DIR_LIST}" ] || WEBFS_OPTS="${WEBFS_OPTS} -j"
+
+ ebegin "Starting webfsd"
+ start-stop-daemon --start --quiet --exec /usr/bin/webfsd -- ${WEBFS_OPTS}
+ eend $? "Failed to start webfsd"
+}
+
+stop() {
+ ebegin "Stopping webfsd"
+ start-stop-daemon --stop --quiet --exec /usr/bin/webfsd
+ eend $? "Failed to stop webfsd"
+}
diff --git a/www-servers/webfs/files/webfs.service b/www-servers/webfs/files/webfs.service
new file mode 100644
index 000000000000..f8857655e28f
--- /dev/null
+++ b/www-servers/webfs/files/webfs.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Simple and instant http server.
+Documentation=man:webfsd(1)
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/webfsd -p ${WEBFS_PORT:-80} -f ${WEBFS_INDEX:-index.html} ${WEBFS_OPTS} -F
+
+[Install]
+WantedBy=multi-user.target
diff --git a/www-servers/webfs/files/webfs.service.conf b/www-servers/webfs/files/webfs.service.conf
new file mode 100644
index 000000000000..80daa14dc7ae
--- /dev/null
+++ b/www-servers/webfs/files/webfs.service.conf
@@ -0,0 +1,27 @@
+# Configuration for webfsd
+
+WEBFS_PORT=80
+WEBFS_DOCROOT=/var/www/localhost/htdocs
+WEBFS_INDEX=index.html
+WEBFS_LOG=/var/log/webfsd.log
+
+# set server name
+#WEBFS_SERVNAME=
+
+# uncomment to chroot to specified dir
+#WEBFS_CHROOT="/var/www/localhost"
+
+# max allowed connections (defaults to 32)
+#WEBFS_MAXCONN=50
+
+# uncomment to enable directory listings
+#WEBFS_DIR_LIST=true
+
+# uncomment to enable SSL (you'll need to add -C <cert> -P <pass> to WEBFS_OPTS)
+#WEBFS_SSL=true
+
+# uncomment to enable ipv6
+#WEBFS_IPV6=true
+
+# Add any extra options here. See webfsd for more information.
+#WEBFS_OPTS=""
diff --git a/www-servers/webfs/metadata.xml b/www-servers/webfs/metadata.xml
new file mode 100644
index 000000000000..34f42ecf020c
--- /dev/null
+++ b/www-servers/webfs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/www-servers/webfs/webfs-1.21.ebuild b/www-servers/webfs/webfs-1.21.ebuild
new file mode 100644
index 000000000000..7b512f519cdf
--- /dev/null
+++ b/www-servers/webfs/webfs-1.21.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="Lightweight HTTP server for static content"
+SRC_URI="http://dl.bytesex.org/releases/${PN}/${P}.tar.gz"
+HOMEPAGE="http://linux.bytesex.org/misc/webfs.html"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ssl threads"
+
+DEPEND="ssl? ( dev-libs/openssl:0= )"
+
+RDEPEND="${DEPEND}
+ app-misc/mime-types"
+
+PATCHES=(
+ "${FILESDIR}/${P}-Variables.mk-dont-strip-binaries-on-install.patch"
+ "${FILESDIR}/${P}-CVE-2013-0347.patch"
+)
+
+src_prepare() {
+ sed -e "s:/etc/mime.types:${EPREFIX}\\0:" -i GNUmakefile || die "sed failed"
+ default
+}
+
+src_compile() {
+ local myconf
+ use ssl || myconf="${myconf} USE_SSL=no"
+ use threads && myconf="${myconf} USE_THREADS=yes"
+
+ emake prefix="${EPREFIX}/usr" ${myconf}
+}
+
+src_install() {
+ local myconf
+ use ssl || myconf="${myconf} USE_SSL=no"
+ use threads && myconf="${myconf} USE_THREADS=yes"
+ emake DESTDIR="${D}" install prefix="${EPREFIX}/usr" ${myconf} mandir="${ED}/usr/share/man"
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ systemd_dounit "${FILESDIR}/${PN}.service"
+ systemd_install_serviced "${FILESDIR}/${PN}.service.conf"
+ dodoc README
+}
+
+pkg_preinst() {
+ # Fix existing log permissions for bug #458892.
+ chmod 0600 "${EROOT}/var/log/webfsd.log" 2>/dev/null
+}