Compare commits

..

No commits in common. "rawhide" and "f24" have entirely different histories.

9 changed files with 494 additions and 1 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
/yaws-1.89.tar.gz
/yaws-1.98.tar.gz
*.rpm
/yaws-2.0.tar.gz

View file

@ -1 +0,0 @@
Orphaned for 6+ weeks

1
sources Normal file
View file

@ -0,0 +1 @@
03c9d371e5fe30a017f8a6c64fbb033b yaws-2.0.tar.gz

46
yaws-2.0-no-ssl.patch Normal file
View file

@ -0,0 +1,46 @@
From 61782043c076e0d7760bc10d7f10e7955ecc2bca Mon Sep 17 00:00:00 2001
From: Filip Andres <filip@andresovi.net>
Date: Tue, 28 Jul 2015 10:19:08 +0200
Subject: [PATCH] disable SSL by default
---
scripts/yaws.conf.template | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/scripts/yaws.conf.template b/scripts/yaws.conf.template
index d7a35a8..0a20c6d 100644
--- a/scripts/yaws.conf.template
+++ b/scripts/yaws.conf.template
@@ -134,16 +134,16 @@ keepalive_timeout = 30000
</server>
# Now an SSL server
-
-<server *>
- port = %sslport%
- docroot = %tmpdir%
- listen = 0.0.0.0
- dir_listings = true
- auth_log = true
- <ssl>
- keyfile = %certdir%/yaws-key.pem
- certfile = %certdir%/yaws-cert.pem
- depth = 0
- </ssl>
-</server>
+#
+# <server *>
+# port = %sslport%
+# docroot = %tmpdir%
+# listen = 0.0.0.0
+# dir_listings = true
+# auth_log = true
+# <ssl>
+# keyfile = %certdir%/yaws-key.pem
+# certfile = %certdir%/yaws-cert.pem
+# depth = 0
+# </ssl>
+# </server>
--
2.1.0

175
yaws-2.0-systemd.patch Normal file
View file

@ -0,0 +1,175 @@
From 4a5e0ccaf43bc3d83bc7003326cca9670d6f7c24 Mon Sep 17 00:00:00 2001
From: Filip Andres <filip@andresovi.net>
Date: Fri, 24 Jul 2015 11:38:03 +0200
Subject: [PATCH] Do not install any init scripts
---
scripts/Makefile.in | 5 +-
scripts/regular-install | 132 ------------------------------------------------
2 files changed, 2 insertions(+), 135 deletions(-)
delete mode 100755 scripts/regular-install
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 0b01ca4..a7698ab 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -309,7 +309,7 @@ yappdir = @yappdir@
yawsdir = @yawsdir@
EXTRA_DIST = darwin debian freebsd gentoo netbsd openbsd redhat suse \
gen-yaws gen-yaws-conf gen-yaws-generated Subst \
- regular-install make-release make-upload \
+ make-release make-upload \
rebar-pre-script yaws.conf.template yaws.template
all: all-am
@@ -573,8 +573,7 @@ include @top_srcdir@/include.mk
@MINGW_FALSE@ ETCDIR='$(sysconfdir)' \
@MINGW_FALSE@ BINDIR='$(bindir)' \
@MINGW_FALSE@ LOGDIR='$(logdir)' \
-@MINGW_FALSE@ YAWSDIR='$(ERLANG_INSTALL_LIB_DIR_yaws)' \
-@MINGW_FALSE@ ./regular-install)
+@MINGW_FALSE@ YAWSDIR='$(ERLANG_INSTALL_LIB_DIR_yaws)')
# Local Variables:
# tab-width: 8
diff --git a/scripts/regular-install b/scripts/regular-install
deleted file mode 100755
index b1f24b0..0000000
--- a/scripts/regular-install
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/sh
-
-install -d ${DESTDIR}${ETCDIR}
-install -d ${DESTDIR}${LOGDIR}
-
-# Start by detecting if systemd is used
-(which systemctl && systemctl list-units) >/dev/null 2>&1
-if [ $? = 0 ]; then
- install -d ${DESTDIR}${ETCDIR}/systemd/system/
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- systemd/yaws.service > ${DESTDIR}${ETCDIR}/systemd/system/yaws.service
- exit 0
-fi
-
-# Else, looking at distro-specific files
-os=$( uname -s )
-which lsb_release >/dev/null 2>&1
-if [ $? = 0 ]; then
- os=$( lsb_release -si )
-elif [ -f /etc/os-release ]; then
- . /etc/os-release
- os=${ID}
-elif [ -f /etc/arch-release ]; then
- os="arch"
-elif [ -f /etc/gentoo-release ]; then
- os="gentoo"
-elif [ -f /etc/fedora-release ]; then
- os="fedora"
-elif [ -f /etc/centos-release ]; then
- os="centos"
-elif [ -f /etc/redhat-release ]; then
- os="redhat"
-elif [ -f /etc/debian_version ]; then
- os="debian"
-elif [ -f /etc/SuSE-release ]; then
- os="suse"
-elif [ $os = "Darwin" -a $(id -u) = 0 ]; then
- os="darwin"
-elif [ $os = "FreeBSD" ]; then
- os="freebsd"
-elif [ $os = "NetBSD" ]; then
- os="netbsd"
-else
- os="Unknown"
-fi
-
-case $(printf $os | tr '[:upper:]' '[:lower:]') in
- debian | ubuntu)
- install -d ${DESTDIR}${ETCDIR}/init.d
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- debian/yaws.init > ${DESTDIR}${ETCDIR}/init.d/yaws
- chmod +x ${DESTDIR}${ETCDIR}/init.d/yaws
- ;;
-
- gentoo)
- # seems gentoo don't like to be installed in /usr/local/etc since #
- # /sbin/runscript still reads /etc/conf.d
- install -d ${DESTDIR}${ETCDIR}/init.d
- install -d ${DESTDIR}${ETCDIR}/conf.d
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- gentoo/yaws.init > ${DESTDIR}${ETCDIR}/init.d/yaws
- chmod +x ${DESTDIR}${ETCDIR}/init.d/yaws
- ;;
-
- redhat | fedora | centos)
- install -d ${DESTDIR}${ETCDIR}/init.d
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- redhat/yaws.init > ${DESTDIR}${ETCDIR}/init.d/yaws
- chmod +x ${DESTDIR}${ETCDIR}/init.d/yaws
- ;;
-
- *suse*)
- install -d ${DESTDIR}${ETCDIR}/init.d
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- suse/yaws.init > ${DESTDIR}${ETCDIR}/init.d/yaws
- chmod +x ${DESTDIR}${ETCDIR}/init.d/yaws
- ;;
-
-
- darwin)
- startupdir="/Library/StartupItems/Yaws"
- if [ ! -e ${startupdir} ]; then
- mkdir ${startupdir};
- elif [ ! -d ${startupdir} ]; then
- echo "${startupdir} exists but is not a directory, bailing out ..."
- exit 1
- fi
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- darwin/Yaws.StartupItem > ${startupdir}/Yaws
- chmod +x ${startupdir}/Yaws
- cp darwin/Yaws.plist ${startupdir}/StartupParameters.plist
- # MacOS is particular about the ownership of startup items.
- chown -R root:wheel ${startupdir}
- ;;
-
- freebsd)
- install -d ${DESTDIR}${ETCDIR}/rc.d
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- freebsd/yaws > ${DESTDIR}${ETCDIR}/rc.d/yaws
- chmod +x ${DESTDIR}${ETCDIR}/rc.d/yaws
- ;;
-
- netbsd)
- sed -e "s;%prefix%;${PREFIX};g" \
- -e "s;%etcdir%;${ETCDIR};g" \
- -e "s;%bindir%;${BINDIR};g" \
- netbsd/yaws.sh > ${DESTDIR}${ETCDIR}/rc.d/yaws
- chmod +x /etc/rc.d/yaws
- ;;
- *)
- install -d ${DESTDIR}${ETCDIR}
- echo "Don't know how to make /etc/init scripts for this system"
- echo "possibly add ${PREFIX}/bin/yaws --daemon --heart to your /etc/rc.local manually"
- ;;
-esac
-
-
-exit 0
--
2.1.0

11
yaws.logrotate Normal file
View file

@ -0,0 +1,11 @@
/var/log/yaws/*.log /var/log/yaws/*.access {
weekly
rotate 2
missingok
sharedscripts
notifempty
sharedscripts
postrotate
/sbin/service yaws reload >/dev/null 2>&1 || :
endscript
}

17
yaws.service Normal file
View file

@ -0,0 +1,17 @@
# REMOVEME: This file is only for backward compatibility
# REMOVEME: It should be remove for releases after epel7
[Unit]
Description=The Yaws Web Server instance
After=network.target
[Service]
User=root
Type=notify
Environment="HOME=/var/lib/yaws"
Type=simple
ExecStart=/usr/bin/yaws --erlarg -noinput --daemon --conf /etc/yaws/.conf
ExecReload=/usr/bin/yaws --hup
ExecStop=/usr/bin/yaws --stop
[Install]
WantedBy=multi-user.target

225
yaws.spec Normal file
View file

@ -0,0 +1,225 @@
%bcond_without docs
Name: yaws
Version: 2.0
Release: 2%{?dist}
Summary: Web server for dynamic content written in Erlang
Group: System Environment/Daemons
# BSD: see LICENSE
# ERPL: json.erl, benchmarks/bench.erl, benchmarks/bench.hrl,
# benchmarks/all.erl, haxe.erl
# Copyright only: priv/soap.xsd, priv/wsdl.xsd
# W3C: priv/envelope.xsd
License: BSD and ERPL and Copyright only and W3C
URL: http://yaws.hyber.org/
Source0: http://yaws.hyber.org/download/%{name}-%{version}.tar.gz
Source1: yaws.logrotate
Source2: yaws@.service
Source3: yaws.service
Patch0: yaws-2.0-systemd.patch
Patch1: yaws-2.0-no-ssl.patch
BuildRequires: systemd-units
BuildRequires: erlang-erts
BuildRequires: erlang-erlsom
BuildRequires: erlang-kernel
BuildRequires: erlang-mnesia
BuildRequires: erlang-sasl
BuildRequires: erlang-ssl
BuildRequires: erlang-stdlib
BuildRequires: pam-devel
%if %{with docs}
BuildRequires: tex(latex)
BuildRequires: tex(dvips)
BuildRequires: tex-epstopdf
BuildRequires: latex2html
%endif
Requires: erlang >= R13B
Requires: erlang-erlsom
Requires: erlang-ibrowse
Requires: erlang-xmlrpc
Requires: logrotate
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
%description
HTTP 1.0 and HTTP 1.1 web server capable of both static content page
delivery and dynamic content generation using embedded Erlang code in the
HTML pages. It provides virtual hosting capabilities and implements
HTTP tracing and other debugging functionality such as interactive
interpreter environment. Performance can be boosted with built-in support
for RAM caching and streaming capabilities of dynamically generated
content. Among security features are SSL and support for WWW-Authenticated
pages.
%package devel
Summary: Development Files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
This package contains a pkg-config configuration for %{name}.
%prep
%setup -q
%patch0 -p1 -b .no_systemd
%patch1 -p1 -b .no_ssl
# This requires egssapi which is not yet available
rm -f src/authmod_gssapi.erl
# Weird file name in Change Log is latin1-encoded
iconv -f iso8859-1 -t utf8 ChangeLog >ChangeLog.utf8
touch -r ChangeLog ChangeLog.utf8
mv ChangeLog.utf8 ChangeLog
# These are corrupted
find . -name '*.dia' -delete
%build
export wwwdir=%{_localstatedir}/lib/%{name}/www
export appsdir=%{_localstatedir}/lib/%{name}
export yawsdir=%{_libdir}/erlang/lib/%{name}-%{version}/
%configure
make %{?_smp_mflags} all
%if %{with docs}
# fails to build with smp_mflags sometimes
make docs EPSTOPDF=epstopdf
%endif
%install
make install DESTDIR=$RPM_BUILD_ROOT
# Logrotate configuration
install -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
install -p -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/yaws
# The systemd bits
install -d $RPM_BUILD_ROOT/%{_unitdir}
cp -p %{SOURCE2} $RPM_BUILD_ROOT/%{_unitdir}
# Backward compatibility: keep "systemctl start yaws"
# This should be removed in the future
install -p -m0644 %{SOURCE3} $RPM_BUILD_ROOT/%{_unitdir}/yaws.service
# Remove some unneeded stuff
rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}-{cert,key}.pem
rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf.template
%post
%systemd_post yaws@yaws.service
%preun
%systemd_preun yaws@yaws.service
%postun
%systemd_postun
%files
%defattr(-,root,root,-)
%{_unitdir}/yaws@.service
%{_unitdir}/yaws.service
%dir %{_sysconfdir}/yaws
%config(noreplace) %{_sysconfdir}/yaws/yaws.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/yaws
%dir %{_localstatedir}/log/%{name}
%{_localstatedir}/lib/yaws
%{_bindir}/yaws
%{_libdir}/erlang/lib/%{name}-%{version}
%if %{with docs}
%doc %{_docdir}/yaws/yaws.pdf
%endif
%doc %{_datadir}/man/man1/yaws.1*
%doc %{_datadir}/man/man5/yaws.conf.5*
%doc %{_datadir}/man/man5/yaws_api.5*
%doc %{_datadir}/man/man5/yaws_soap_lib.5*
%doc README.md ChangeLog
%license LICENSE
%files devel
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/yaws.pc
%changelog
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jul 24 2015 Filip Andres <filip@andresovi.net> - 2.0-1
- Ver. 2.0
* Mon Jul 13 2015 Dan Horák <dan[at]danny.cz> - 1.98-7
- skip -m32 also on s390
* Fri Jun 26 2015 Filip Andres <filip@andresovi.net> - 1.98-6
- Do not use -m32 flag on armv7 builds
* Sun Apr 5 2015 Antoine Catton <devel@antoine.catton.fr> - 1.98-5
- Tested with SELinux
* Wed Dec 31 2014 Antoine Catton <devel@antoine.catton.fr> - 1.98-4
- Remove "--deamon" option (which was forking)
* Sat Dec 06 2014 Antoine Catton <devel@antoine.catton.fr> - 1.98-3
- Rename unit file to allow to specify an instance (while keeping backward compatible instance file)
- Add ability stop and reload yaws with systemctl
- Support running multiple instance
- Do not fork from systemd
* Fri Feb 21 2014 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.98-2
- sysvinit -> systemd
- Remove old RPM artifacts
* Thu Feb 13 2014 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.98-1
- Rebase
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.92-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.92-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Jan 03 2012 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.92-1
- Update
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.89-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Nov 18 2010 Peter Lemenkov <lemenkov@gmail.com> - 1.89-3
- Make building docs conditional
- Added one more module to package
- Added missing runtime dependency - erlang-xmlrpc
* Thu Oct 21 2010 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.89-2
- Require newer Erlang (Peter Lemenkov)
- Exclude examples/ and src/
* Wed Oct 20 2010 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.89-1
- Rebase to 1.89
- No longer required patch for compiling using system-wide erlsom (Peter Lemenkov)
- Ver. 1.89 now requires erlang-ibrowse library (Peter Lemenkov)
- Shorten the dependency chain (Peter Lemenkov)
* Mon Sep 13 2010 Lubomir Rintel (GoodData) <lkundrak@v3.sk> - 1.88-1
- Rebase to 1.88
- Look for erlsom in system-wide location (Peter Lemenkov)
- Drop authmod_gssapi, dependencies not satisfied
* Sat Nov 21 2009 Lubomir Rintel (Good Data) <lkundrak@v3.sk> - 1.85-2
- Install to erlang lib directory, make arch dependent
- Install the source code
* Mon Nov 02 2009 Lubomir Rintel (Good Data) <lkundrak@v3.sk> - 1.85-1
- Initial packaging, partly based on Hans Ulrich Niedermann's package

15
yaws@.service Normal file
View file

@ -0,0 +1,15 @@
[Unit]
Description=The Yaws Web Server instance
After=network.target
[Service]
User=root
Type=notify
Environment="HOME=/var/lib/yaws"
Type=simple
ExecStart=/usr/bin/yaws --erlarg -noinput --id %i --conf /etc/yaws/%i.conf
ExecReload=/usr/bin/yaws --hup --id %i
ExecStop=/usr/bin/yaws --stop --id %i
[Install]
WantedBy=multi-user.target