dev-dotnet/xsp -> www-servers/xsp
authorHeather Cynede <cynede@gentoo.org>
Fri, 14 Aug 2015 08:59:41 +0000 (12:59 +0400)
committerHeather Cynede <cynede@gentoo.org>
Fri, 14 Aug 2015 08:59:41 +0000 (12:59 +0400)
14 files changed:
dev-util/monodevelop/monodevelop-5.9.5.5.ebuild
www-servers/xsp/Manifest [new file with mode: 0644]
www-servers/xsp/files/2.2/mod-mono-server-r1.initd [new file with mode: 0644]
www-servers/xsp/files/2.2/mod-mono-server.confd [new file with mode: 0644]
www-servers/xsp/files/2.2/mod-mono-server.initd [new file with mode: 0644]
www-servers/xsp/files/2.2/xsp.confd [new file with mode: 0644]
www-servers/xsp/files/2.2/xsp.initd [new file with mode: 0644]
www-servers/xsp/files/aclocal-fix.patch [new file with mode: 0644]
www-servers/xsp/files/systemd/mono-xsp4.service [new file with mode: 0644]
www-servers/xsp/files/systemd/mono.webapp [new file with mode: 0644]
www-servers/xsp/files/systemd/readme.txt [new file with mode: 0644]
www-servers/xsp/files/xsp-2.10.2-endrequest.patch [new file with mode: 0644]
www-servers/xsp/metadata.xml [new file with mode: 0644]
www-servers/xsp/xsp-2014.12-r2014120900.ebuild [new file with mode: 0644]

index 2e06b6f477418f8fd43e3deff01c62c9e42c07c5..a9aa4141556f8bbb06e841e6e4b9d09391e35fae 100644 (file)
@@ -26,7 +26,7 @@ RDEPEND=">=dev-lang/mono-3.2.8
        >=dev-dotnet/nuget-2.8.3
        gnome? ( >=dev-dotnet/gnome-sharp-2.24.2-r1 )
        >=dev-dotnet/gtk-sharp-2.12.21:2
-       >=dev-dotnet/xsp-2
+       >=www-servers/xsp-2
        dev-util/ctags
        sys-apps/dbus[X]
        subversion? ( dev-vcs/subversion )
diff --git a/www-servers/xsp/Manifest b/www-servers/xsp/Manifest
new file mode 100644 (file)
index 0000000..43adeba
--- /dev/null
@@ -0,0 +1 @@
+DIST xsp-2014.12.zip 632555 SHA256 1d115e3fe0bbcb3957be20e670e086ebddff3acaa5f641a9c143ea46d12e055c SHA512 a9d298079cfae4bacac1575f04e58c3106f532c1f283cc243a8a6560561c0a6b535320d1d3e925c7383bd1f7510f31f115d8e85506e31623c175d7f3f606ab91 WHIRLPOOL a5e06f72f51717682d80f6ac6554320db72a05d6d6c40439196073d118706607f99bf810d82e8cc68cf9e54bd0f7d176cc882fa74babb8d78308cbe7c4d9d8cc
diff --git a/www-servers/xsp/files/2.2/mod-mono-server-r1.initd b/www-servers/xsp/files/2.2/mod-mono-server-r1.initd
new file mode 100644 (file)
index 0000000..6ce6a60
--- /dev/null
@@ -0,0 +1,83 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: mod-mono-server-r1.initd,v 1.1 2012/01/22 12:54:29 pacho Exp $
+
+depend() {
+       use net
+       after dotnet
+}
+
+start() {
+       [ -z "$MonoServerRootDir" ] && \
+       MonoServerRootDir="/usr/lib/xsp/test"
+       [ -z "$MonoApplications" ] && \
+       MonoApplications="/mono:/usr/lib/xsp/test,/:."
+       [ -z "$UnixSocketFileName" ] && \
+       UnixSocketFileName="/tmp/mod_mono_server"
+       [ -z "$MonoServerAddress" ] && \
+       MonoServerAddress=127.0.0.1
+       [ -z "$MonoServerPort" ] && \
+       MonoServerPort=8080
+       [ -z "$MonoServerVersion" ] && \
+       MonoServerVersion=1
+
+       MONO_SERVER_OPTS="--root ${MonoServerRootDir} \
+--applications ${MonoApplications} --nonstop"
+
+       [ -n "$MonoApplicationsConfigDir" ] && \
+       MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--appconfigdir ${MonoApplicationsConfigDir}"
+
+       case "$MonoServerChannel" in
+       "tcp" )
+               MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--address ${MonoServerAddress} --port ${MonoServerPort}"
+               ;;
+       
+       "unix" )
+               [ -f "$UnixSocketFileName" ] && rm -f $UnixSocketFileName
+               MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--filename ${UnixSocketFileName}"
+               ;;
+
+       * )
+               eerror "Please set a valid value for MonoServerChannel"
+               return 1
+               ;;
+       esac
+
+       if [ ${MonoServerVersion} -eq 1 ]; then
+               modmonoserverpath=1.0/mod-mono-server.exe
+       elif [ ${MonoServerVersion} -eq 2 ]; then
+               modmonoserverpath=2.0/mod-mono-server2.exe
+       elif [ ${MonoServerVersion} -eq 4 ]; then
+               modmonoserverpath=4.0/mod-mono-server4.exe
+       else
+               eerror "MonoServerVersion was not properly set. Check your /etc/conf.d/mod-mono-server"
+               return 1
+       fi
+
+       export MONO_SHARED_DIR=/tmp
+
+       ebegin "Starting mod-mono-server"
+
+       start-stop-daemon --quiet --start \
+               --background \
+               --make-pidfile \
+               --pidfile /var/run/aspnet/mod-mono-server.pid \
+               --user aspnet \
+               --exec /usr/bin/mono /usr/lib/mono/${modmonoserverpath} \
+               -- $MONO_SERVER_OPTS
+
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping mod-mono-server"
+
+       start-stop-daemon --quiet --stop \
+               --pidfile /var/run/aspnet/mod-mono-server.pid
+
+       eend $?
+}
diff --git a/www-servers/xsp/files/2.2/mod-mono-server.confd b/www-servers/xsp/files/2.2/mod-mono-server.confd
new file mode 100644 (file)
index 0000000..7cefdbe
--- /dev/null
@@ -0,0 +1,34 @@
+# Config file for /etc/init.d/mod-mono-server
+# $Id: mod-mono-server.confd,v 1.1 2009/01/18 17:44:04 loki_val Exp $
+
+# Configuration directives for mod-mono-server.exe. For more information on
+# these variables, see the man page for xsp(1).
+
+# This is the document root; trailing slash is not necessary
+#MonoServerRootDir="/usr/lib/xsp/test"
+
+# Directory to search for files with an `.webapp' extension.
+#MonoApplicationsConfigDir="/usr/lib/xsp/test"
+
+# Comma separated list of directories (in the form virtual:real) for all
+# applications managed by the server. For example:
+#   /app1:/var/www/localhost/htdocs/app1,/app2:/var/www/localhost/htdocs/app2
+MonoApplications="/mono:/usr/lib/xsp/test"
+
+# The communication channel used between mod-mono-server and mod_mono.
+#   unix - A unix socket
+#   tcp  - A TCP connection
+MonoServerChannel="unix"
+
+# When the comm. channel is "unix", the local filename used by the socket.
+UnixSocketFileName="/tmp/mod_mono_server"
+
+# When the comm. channel is "tcp", IP address for the server to listen on.
+#MonoServerAddress=127.0.0.1
+
+# When the comm. channel is "tcp", port for the server to listen on.
+#MonoServerPort=8080
+
+# If you want to host .NET 2.0 applications you have to set this to 2.
+# Otherwise, leave it unchaged
+MonoServerVersion=1
diff --git a/www-servers/xsp/files/2.2/mod-mono-server.initd b/www-servers/xsp/files/2.2/mod-mono-server.initd
new file mode 100644 (file)
index 0000000..49119e5
--- /dev/null
@@ -0,0 +1,81 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: mod-mono-server.initd,v 1.1 2009/01/18 17:44:04 loki_val Exp $
+
+depend() {
+       use net
+       after dotnet
+}
+
+start() {
+       [ -z "$MonoServerRootDir" ] && \
+       MonoServerRootDir="/usr/lib/xsp/test"
+       [ -z "$MonoApplications" ] && \
+       MonoApplications="/mono:/usr/lib/xsp/test,/:."
+       [ -z "$UnixSocketFileName" ] && \
+       UnixSocketFileName="/tmp/mod_mono_server"
+       [ -z "$MonoServerAddress" ] && \
+       MonoServerAddress=127.0.0.1
+       [ -z "$MonoServerPort" ] && \
+       MonoServerPort=8080
+       [ -z "$MonoServerVersion" ] && \
+       MonoServerVersion=1
+
+       MONO_SERVER_OPTS="--root ${MonoServerRootDir} \
+--applications ${MonoApplications} --nonstop"
+
+       [ -n "$MonoApplicationsConfigDir" ] && \
+       MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--appconfigdir ${MonoApplicationsConfigDir}"
+
+       case "$MonoServerChannel" in
+       "tcp" )
+               MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--address ${MonoServerAddress} --port ${MonoServerPort}"
+               ;;
+       
+       "unix" )
+               [ -f "$UnixSocketFileName" ] && rm -f $UnixSocketFileName
+               MONO_SERVER_OPTS="${MONO_SERVER_OPTS} \
+--filename ${UnixSocketFileName}"
+               ;;
+
+       * )
+               eerror "Please set a valid value for MonoServerChannel"
+               return 1
+               ;;
+       esac
+
+       if [ ${MonoServerVersion} -eq 1 ]; then
+               modmonoserverpath=1.0/mod-mono-server.exe
+       elif [ ${MonoServerVersion} -eq 2 ]; then
+               modmonoserverpath=2.0/mod-mono-server2.exe
+       else
+               eerror "MonoServerVersion was not properly set. Check your /etc/conf.d/xsp"
+               return 1
+       fi
+
+       export MONO_SHARED_DIR=/tmp
+
+       ebegin "Starting mod-mono-server"
+
+       start-stop-daemon --quiet --start \
+               --background \
+               --make-pidfile \
+               --pidfile /var/run/aspnet/mod-mono-server.pid \
+               --chuid aspnet \
+               --exec /usr/bin/mono /usr/lib/mono/${modmonoserverpath} \
+               -- $MONO_SERVER_OPTS
+
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping mod-mono-server"
+
+       start-stop-daemon -o --quiet --stop \
+               --pidfile /var/run/aspnet/mod-mono-server.pid
+
+       eend $?
+}
diff --git a/www-servers/xsp/files/2.2/xsp.confd b/www-servers/xsp/files/2.2/xsp.confd
new file mode 100644 (file)
index 0000000..45a79a5
--- /dev/null
@@ -0,0 +1,12 @@
+# Config file for /etc/init.d/xsp
+# $Id: xsp.confd,v 1.1 2009/01/18 17:44:04 loki_val Exp $
+
+# This is the document root; trailing slash is not necessary
+MonoServerRoot=/usr/lib/xsp/test
+
+# Port for the server to run on
+MonoServerPort=8000
+
+# If you want to host .NET 2.0 applications you have to set this to 2.
+# Otherwise, leave it unchanged
+MonoServerVersion=1
diff --git a/www-servers/xsp/files/2.2/xsp.initd b/www-servers/xsp/files/2.2/xsp.initd
new file mode 100644 (file)
index 0000000..0432bca
--- /dev/null
@@ -0,0 +1,38 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: xsp.initd,v 1.1 2009/01/18 17:44:04 loki_val Exp $
+
+depend() {
+       need net
+       after dotnet
+}
+
+start() {
+       ebegin "Starting xsp"
+
+       if [ ${MonoServerVersion} -eq 1 ]; then
+               xsppath=1.0/xsp.exe
+       elif [ ${MonoServerVersion} -eq 2 ]; then
+               xsppath=2.0/xsp2.exe
+       else
+               eerror "MonoServerVersion was not properly set. Check your config file"
+               return 1
+       fi
+
+       start-stop-daemon --quiet --start \
+               --background \
+               --make-pidfile \
+               --pidfile /var/run/aspnet/xsp.pid \
+               --chuid aspnet \
+               --exec /usr/bin/mono /usr/lib/mono/${xsppath} -- --root ${MonoServerRoot} --port ${MonoServerPort} --nonstop
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping xsp"
+       start-stop-daemon -o --quiet --stop \
+               --pidfile /var/run/aspnet/xsp.pid
+       eend $?
+}
+
diff --git a/www-servers/xsp/files/aclocal-fix.patch b/www-servers/xsp/files/aclocal-fix.patch
new file mode 100644 (file)
index 0000000..49a0005
--- /dev/null
@@ -0,0 +1,13 @@
+--- Makefile_old.am    2013-07-30 09:11:50.033962122 +0400
++++ Makefile.am        2013-07-30 09:12:20.843574793 +0400
+@@ -1,10 +1,2 @@
+ SUBDIRS=build man src test tools scripts packaging lib
+ ACLOCAL_AMFLAGS += -I build/m4
+-
+-if UNITTESTS
+-SUBDIRS += unittests
+-endif
+-
+-if BUILD_DOCS
+-SUBDIRS += docs
+-endif
diff --git a/www-servers/xsp/files/systemd/mono-xsp4.service b/www-servers/xsp/files/systemd/mono-xsp4.service
new file mode 100644 (file)
index 0000000..3e5f602
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+Description=XSP 4.0 WebServer
+Wants=network.target
+ConditionFileNotEmpty=/etc/xsp4/mono.webapp
+ConditionDirectoryNotEmpty=/etc/xsp4/conf.d
+
+[Service]
+Type=simple
+User=aspnet
+Group=aspnet
+ExecStart=/usr/bin/xsp4 --port 8084 --address 0.0.0.0 --appconfigdir /etc/xsp4 --nonstop
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/www-servers/xsp/files/systemd/mono.webapp b/www-servers/xsp/files/systemd/mono.webapp
new file mode 100644 (file)
index 0000000..3f611b1
--- /dev/null
@@ -0,0 +1,10 @@
+<web-application>
+        <name>Root</name>
+        <vpath>/</vpath>
+        <path>/usr/lib64/xsp/test</path>
+       <!-- vhost and port are ignored in xsp.exe -->
+        <vhost>my.host.name</vhost>
+        <vport>8084</vport>
+       <!-- <enabled> is true by default -->
+       <!-- <enabled>false</enabled> -->
+</web-application>
diff --git a/www-servers/xsp/files/systemd/readme.txt b/www-servers/xsp/files/systemd/readme.txt
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/www-servers/xsp/files/xsp-2.10.2-endrequest.patch b/www-servers/xsp/files/xsp-2.10.2-endrequest.patch
new file mode 100644 (file)
index 0000000..ff702d3
--- /dev/null
@@ -0,0 +1,35 @@
+From d2c4a279942a4575b80618719646d0767c077e96 Mon Sep 17 00:00:00 2001
+From: Guillaume Pitel <guillaume.pitel@exensa.com>
+Date: Tue, 6 Mar 2012 17:20:24 +0100
+Subject: [PATCH] Added try/catch around EndRequest Record sending (Bug 3765
+ https://bugzilla.xamarin.com/show_bug.cgi?id=3765)
+
+---
+ src/Mono.WebServer.FastCgi/Connection.cs |   11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/Mono.WebServer.FastCgi/Connection.cs b/src/Mono.WebServer.FastCgi/Connection.cs
+index 6c70824..0e9ef64 100644
+--- a/src/Mono.WebServer.FastCgi/Connection.cs
++++ b/src/Mono.WebServer.FastCgi/Connection.cs
+@@ -319,10 +319,13 @@ public void Run ()
+               {
+                       EndRequestBody body = new EndRequestBody (appStatus,
+                               protocolStatus);
+-                      
+-                      if (IsConnected)
+-                              new Record (1, RecordType.EndRequest, requestID,
+-                                          body.GetData ()).Send (socket);
++                      try {   
++                              if (IsConnected)
++                                      new Record (1, RecordType.EndRequest, requestID,
++                                                  body.GetData ()).Send (socket);
++                      } catch (System.Net.Sockets.SocketException) {
++                      }
++                              
+                       
+                       int index = GetRequestIndex (requestID);
+                       
+-- 
+1.7.10
+
diff --git a/www-servers/xsp/metadata.xml b/www-servers/xsp/metadata.xml
new file mode 100644 (file)
index 0000000..4a25235
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <herd>dotnet</herd>
+       <longdescription lang="en">
+               XSP is a standalone web server written in C# that can be used to run
+               your ASP.NET applications.
+       </longdescription>
+       <use>
+               <flag name='developer'>creates .mdb files for either Release and Debug</flag>
+       </use>
+</pkgmetadata>
diff --git a/www-servers/xsp/xsp-2014.12-r2014120900.ebuild b/www-servers/xsp/xsp-2014.12-r2014120900.ebuild
new file mode 100644 (file)
index 0000000..cb38e33
--- /dev/null
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+USE_DOTNET="net35 net40 net45"
+PATCHDIR="${FILESDIR}/2.2/"
+
+inherit base eutils systemd dotnet user autotools autotools-utils
+
+DESCRIPTION="XSP is a small web server that can host ASP.NET pages"
+HOMEPAGE="http://www.mono-project.com/ASP.NET"
+
+EGIT_COMMIT="e272a2c006211b6b03be2ef5bbb9e3f8fefd0768"
+SRC_URI="http://github.com/mono/xsp/archive/${EGIT_COMMIT}.zip -> ${P}.zip"
+S="${WORKDIR}/xsp-${EGIT_COMMIT}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="doc test developer"
+
+RDEPEND="dev-db/sqlite:3"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+       epatch "${FILESDIR}/aclocal-fix.patch"
+
+       if [ -z "$LIBTOOL" ]; then
+               LIBTOOL=`which glibtool 2>/dev/null`
+               if [ ! -x "$LIBTOOL" ]; then
+                       LIBTOOL=`which libtool`
+               fi
+       fi
+       eaclocal -I build/m4/shamrock -I build/m4/shave $ACLOCAL_FLAGS
+       if test -z "$NO_LIBTOOLIZE"; then
+               ${LIBTOOL}ize --force --copy
+       fi
+       eautoconf
+}
+
+src_configure() {
+       myeconfargs=("--enable-maintainer-mode")
+       use test && myeconfargs+=("--with_unit_tests")
+       use doc || myeconfargs+=("--disable-docs")
+       eautomake --gnu --add-missing --force --copy #nowarn
+       autotools-utils_src_configure
+       ./configure || die
+}
+
+METAFILETOBUILD=xsp.sln
+
+src_compile() {
+       exbuild xsp.sln
+       if use developer; then
+               exbuild /p:DebugSymbols=True ${METAFILETOBUILD}
+       else
+               exbuild /p:DebugSymbols=False ${METAFILETOBUILD}
+       fi
+}
+
+pkg_preinst() {
+       enewgroup aspnet
+       enewuser aspnet -1 -1 /tmp aspnet
+
+       # enewuser www-data
+       # www-data - is from debian, i think it's the same as aspnet here
+}
+
+src_install() {
+       mv_command="cp -ar" autotools-utils_src_install
+       newinitd "${PATCHDIR}"/xsp.initd xsp
+       newinitd "${PATCHDIR}"/mod-mono-server-r1.initd mod-mono-server
+       newconfd "${PATCHDIR}"/xsp.confd xsp
+       newconfd "${PATCHDIR}"/mod-mono-server.confd mod-mono-server
+
+       insinto /etc/xsp4
+       doins "${FILESDIR}"/systemd/mono.webapp
+       insinto /etc/xsp4/conf.d
+       doins "${FILESDIR}"/systemd/readme.txt
+       # mono-xsp4.service was original name from 
+       # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770458;filename=mono-xsp4.service;att=1;msg=5
+       # I think that using the same commands as in debian 
+       #     systemctl start mono-xsp4.service
+       #     systemctl start mono-xsp4
+       # is better than to have shorter command
+       #     systemctl start xsp
+       #
+       # insinto /usr/lib/systemd/system
+       systemd_dounit "${FILESDIR}"/systemd/mono-xsp4.service
+
+       keepdir /var/run/aspnet
+}