public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mikhail Pukhlikov" <cynede@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/dotnet:master commit in: www-apache/mod_mono/files/2.2/, www-apache/mod_mono/files/, www-apache/mod_mono/
Date: Sun, 31 Jul 2016 08:52:06 +0000 (UTC)	[thread overview]
Message-ID: <1469866108.1989e5f5a0a08818df767edfa1ded68477924674.cynede@gentoo> (raw)

commit:     1989e5f5a0a08818df767edfa1ded68477924674
Author:     ArsenShnurkov <Arsen.Shnurkov <AT> gmail <DOT> com>
AuthorDate: Sat Jul 30 08:08:28 2016 +0000
Commit:     Mikhail Pukhlikov <cynede <AT> gentoo <DOT> org>
CommitDate: Sat Jul 30 08:08:28 2016 +0000
URL:        https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=1989e5f5

version from main tree

 www-apache/mod_mono/files/2.2/70_mod_mono.conf     |  88 +++++++++++++
 .../mod_mono/files/mod_mono-2.10-apache-2.4.patch  | 146 +++++++++++++++++++++
 www-apache/mod_mono/metadata.xml                   |  13 ++
 www-apache/mod_mono/mod_mono-2.10.ebuild           |  64 +++++++++
 4 files changed, 311 insertions(+)

diff --git a/www-apache/mod_mono/files/2.2/70_mod_mono.conf b/www-apache/mod_mono/files/2.2/70_mod_mono.conf
new file mode 100644
index 0000000..f944039
--- /dev/null
+++ b/www-apache/mod_mono/files/2.2/70_mod_mono.conf
@@ -0,0 +1,88 @@
+# For more information on the Mono* directives, see the man page for
+# mod_mono(8)
+
+<IfDefine MONO>
+	# Set this to False if you manage your ASP.Net server manually through
+	# /etc/init.d/mod-mono-server
+	MonoRunXSP True
+
+	# Set this to Enabled if you want to enable AutoHosting.
+	# See http://www.mono-project.com/AutoConfiguration for more info.
+	# Note that if you want your automatically hosted applications
+	# handled by ASP.NET 2.0 engine you have to enable the aspnet2 USE flag.
+	MonoAutoApplication Enabled
+
+	<IfModule !mod_mono.c>
+		LoadModule mono_module /usr/@LIBDIR@/apache2/modules/mod_mono.so
+	</IfModule>
+
+	<IfModule mod_mime.c>
+		AddType application/x-asp-net .aspx
+		AddType application/x-asp-net .asmx
+		AddType application/x-asp-net .ashx
+		AddType application/x-asp-net .asax
+		AddType application/x-asp-net .ascx
+		AddType application/x-asp-net .soap
+		AddType application/x-asp-net .rem
+		AddType application/x-asp-net .axd
+		AddType application/x-asp-net .cs
+		AddType application/x-asp-net .vb
+		AddType application/x-asp-net .master
+		AddType application/x-asp-net .sitemap
+		AddType application/x-asp-net .resources
+		AddType application/x-asp-net .skin
+		AddType application/x-asp-net .browser
+		AddType application/x-asp-net .webinfo
+		AddType application/x-asp-net .resx
+		AddType application/x-asp-net .licx
+		AddType application/x-asp-net .csproj
+		AddType application/x-asp-net .vbproj
+		AddType application/x-asp-net .config
+		AddType application/x-asp-net .Config
+		AddType application/x-asp-net .dll
+		DirectoryIndex index.aspx
+		DirectoryIndex Default.aspx
+		DirectoryIndex default.aspx
+	</IfModule>
+
+### Please also add "-D MONO_DEMO" in order to activate out-of-the-box mono demo
+###
+
+	# Note that the test application runs on a separate mod-mono-server
+	# instance named "testinst". Athought this is not mandatory, it shows how to
+	# distribute workload between multiple mod-mono-servers. For more info see:
+	# http://www.mono-project.com/Mod_mono
+
+	<IfDefine MONO_DEMO>
+		<IfModule mod_alias.c>
+			Alias /mono "/usr/lib/xsp/test"
+		</IfModule>
+
+		# You might want to specify the version of mod-mono-server
+		# instance that will handle your application. The default
+		# value depends on whether the aspnet2 USE flag was set
+		# during compilation
+		#MonoServerPath testinst /usr/lib/mono/1.0/mod-mono-server.exe
+		#MonoServerPath testinst /usr/lib/mono/2.0/mod-mono-server2.exe
+		
+		AddMonoApplications testinst "/mono:/usr/lib/xsp/test"
+
+		<Directory /usr/lib/xsp/test>
+			SetHandler mono
+			MonoSetServerAlias testinst
+
+			<IfModule mod_authz_host.c>
+				Order allow,deny
+				Allow from all
+			</IfModule>
+			<IfModule mod_dir.c>
+				# Sample ASP.NET 1.1/2.0 applications can be accessed
+				# via index2.aspx.
+				DirectoryIndex index.aspx
+				#DirectoryIndex index2.aspx
+			</IfModule>
+		</Directory>
+	</IfDefine>
+### MONO_DEMO end.
+
+</IfDefine>

diff --git a/www-apache/mod_mono/files/mod_mono-2.10-apache-2.4.patch b/www-apache/mod_mono/files/mod_mono-2.10-apache-2.4.patch
new file mode 100644
index 0000000..86694bf
--- /dev/null
+++ b/www-apache/mod_mono/files/mod_mono-2.10-apache-2.4.patch
@@ -0,0 +1,146 @@
+Sólo en mod_mono-2.10.new/: attachment.cgi?id=402888
+diff -ur mod_mono-2.10/configure.in mod_mono-2.10.new/configure.in
+--- mod_mono-2.10/configure.in	2011-01-13 23:32:35.000000000 +0100
++++ mod_mono-2.10.new/configure.in	2015-06-07 21:09:26.417127319 +0200
+@@ -336,6 +336,16 @@
+ ], [
+ ])
+ 
++AC_TRY_RUN([
++	#include <ap_release.h>
++	int main ()
++	{
++		return (AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER == 4) ? 0 : 1;
++	}
++], [
++	APACHE_VER=2.4
++], [
++])
+ fi
+ 
+ if test ! "$APACHE_VER" = "1.3" -a ! "$APACHE_VER" = "retry" ; then
+@@ -385,6 +395,10 @@
+ 	AC_DEFINE([APACHE22],,[Compiling for Apache >= 2.2 ])
+ fi
+ 
++if test "$APACHE_VER" = "2.4" ; then
++	AC_DEFINE([APACHE24],,[Compiling for Apache >= 2.4 ])
++fi
++
+ # check for --with-mono-default-config-dir
+ DFLT_MONO_CONFIG_DIR=`$APXS -q SYSCONFDIR`/mod-mono-applications
+ AC_ARG_WITH(mono-default-config-dir,
+diff -ur mod_mono-2.10/src/mod_mono.c mod_mono-2.10.new/src/mod_mono.c
+--- mod_mono-2.10/src/mod_mono.c	2011-01-13 23:32:35.000000000 +0100
++++ mod_mono-2.10.new/src/mod_mono.c	2015-06-07 21:09:26.421127351 +0200
+@@ -386,7 +386,11 @@
+ apache_get_userid ()
+ {
+ #ifdef HAVE_UNIXD
+-	return unixd_config.user_id;
++#if defined(APACHE24)
++  return ap_unixd_config.user_id;
++#else
++  return unixd_config.user_id;
++#endif
+ #else
+ 	return ap_user_id;
+ #endif
+@@ -396,7 +400,11 @@
+ apache_get_groupid ()
+ {
+ #ifdef HAVE_UNIXD
+-	return unixd_config.group_id;
++#if defined(APACHE24)
++	return ap_unixd_config.user_id;
++#else
++  return unixd_config.user_id;
++#endif
+ #else
+ 	return ap_group_id;
+ #endif
+@@ -406,7 +414,11 @@
+ apache_get_username ()
+ {
+ #ifdef HAVE_UNIXD
++#if defined(APACHE24)
++	return ap_unixd_config.user_name;
++#else 
+ 	return unixd_config.user_name;
++#endif
+ #else
+ 	return ap_user_name;
+ #endif
+@@ -485,8 +497,12 @@
+ 
+ #if defined (AP_NEED_SET_MUTEX_PERMS) && defined (HAVE_UNIXD)
+ 		DEBUG_PRINT (1, "Setting mutex permissions for %s", xsp->dashboard_lock_file);
++#if defined(APACHE24)
++		rv = ap_unixd_set_global_mutex_perms (xsp->dashboard_mutex);
++#else 
+ 		rv = unixd_set_global_mutex_perms (xsp->dashboard_mutex);
+-		if (rv != APR_SUCCESS) {
++#endif
++    if (rv != APR_SUCCESS) {
+ 			ap_log_error (APLOG_MARK, APLOG_CRIT, STATCODE_AND_SERVER (rv),
+ 				      "Failed to set mutex permissions for %s",
+ 				      xsp->dashboard_lock_file);
+@@ -850,10 +866,14 @@
+ #if defined(APACHE22)
+ 	return c->remote_addr->port;
+ #else
++#if defined(APACHE24)
++  return c->client_addr->port;
++#else 
+ 	apr_port_t port;
+ 	apr_sockaddr_port_get (&port, c->remote_addr);
+ 	return port;
+ #endif
++#endif
+ 
+ }
+ 
+@@ -863,10 +883,14 @@
+ #if defined(APACHE22)
+ 	return r->connection->local_addr->port;
+ #else
++#if defined(APACHE24)
++	return r->connection->local_addr->port;
++#else
+ 	apr_port_t port;
+ 	apr_sockaddr_port_get (&port, r->connection->local_addr);
+ 	return port;
+ #endif
++#endif
+ }
+ 
+ static const char *
+@@ -1977,9 +2001,12 @@
+ 	size += info.local_ip_len + sizeof (int32_t);
+ 
+ 	size += sizeof (int32_t);
+-
+-	info.remote_ip_len = strlen (r->connection->remote_ip);
+-	size += info.remote_ip_len + sizeof (int32_t);
++#if defined(APACHE24)
++  info.remote_ip_len = strlen (r->connection->client_ip);
++#else 
++  info.remote_ip_len = strlen (r->connection->remote_ip);
++#endif
++  size += info.remote_ip_len + sizeof (int32_t);
+ 
+ 	size += sizeof (int32_t);
+ 
+@@ -2026,7 +2053,11 @@
+ 	i = LE_FROM_INT (i);
+ 	memcpy (ptr, &i, sizeof (i));
+ 	ptr += sizeof (int32_t);
++#if defined(APACHE24)
++	ptr += write_string_to_buffer (ptr, 0, r->connection->client_ip, info.remote_ip_len);
++#else 
+ 	ptr += write_string_to_buffer (ptr, 0, r->connection->remote_ip, info.remote_ip_len);
++#endif
+ 	i = connection_get_remote_port (r->connection);
+ 	i = LE_FROM_INT (i);
+ 	memcpy (ptr, &i, sizeof (i));
+Sólo en mod_mono-2.10.new/src: mod_mono.c.orig

diff --git a/www-apache/mod_mono/metadata.xml b/www-apache/mod_mono/metadata.xml
new file mode 100644
index 0000000..153f190
--- /dev/null
+++ b/www-apache/mod_mono/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="project">
+		<email>dotnet@gentoo.org</email>
+		<name>Gentoo Dotnet Project</name>
+	</maintainer>
+	<longdescription lang="en">
+		The module allows Apache (https://httpd.apache.org/) to serve ASP.NET
+		pages by proxying the requests to a slightly modified version of our XSP
+		called mod-mono-server that is installed along with XSP.
+	</longdescription>
+</pkgmetadata>

diff --git a/www-apache/mod_mono/mod_mono-2.10.ebuild b/www-apache/mod_mono/mod_mono-2.10.ebuild
new file mode 100644
index 0000000..a6285fd
--- /dev/null
+++ b/www-apache/mod_mono/mod_mono-2.10.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Watch the order of these!
+inherit autotools apache-module multilib eutils go-mono mono
+
+KEYWORDS="amd64 ppc x86"
+
+DESCRIPTION="Apache module for Mono"
+HOMEPAGE="http://www.mono-project.com/Mod_mono"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="debug"
+
+DEPEND="=dev-dotnet/xsp-${GO_MONO_REL_PV}*"
+RDEPEND="${DEPEND}"
+
+APACHE2_MOD_CONF="2.2/70_${PN}"
+APACHE2_MOD_DEFINE="MONO"
+
+DOCFILES="AUTHORS ChangeLog COPYING INSTALL NEWS README"
+
+need_apache2
+
+src_prepare() {
+	sed -e "s:@LIBDIR@:$(get_libdir):" "${FILESDIR}/${APACHE2_MOD_CONF}.conf" \
+		> "${WORKDIR}/${APACHE2_MOD_CONF##*/}.conf" || die
+
+	epatch "${FILESDIR}"/${PN}-2.10-apache-2.4.patch
+
+	eautoreconf
+	go-mono_src_prepare
+}
+
+src_configure() {
+	export LIBS="$(pkg-config --libs apr-1)"
+	go-mono_src_configure \
+		$(use_enable debug) \
+		--with-apxs="${APXS}" \
+		--with-apr-config="/usr/bin/apr-1-config" \
+		--with-apu-config="/usr/bin/apu-1-config"
+}
+src_compile() {
+	go-mono_src_compile
+}
+
+src_install() {
+	go-mono_src_install
+	find "${D}" -name 'mod_mono.conf' -delete || die "failed to remove mod_mono.conf"
+	insinto "${APACHE_MODULES_CONFDIR}"
+	newins "${WORKDIR}/${APACHE2_MOD_CONF##*/}.conf" "${APACHE2_MOD_CONF##*/}.conf" \
+		|| die "internal ebuild error: '${FILESDIR}/${APACHE2_MOD_CONF}.conf' not found"
+}
+
+pkg_postinst() {
+	apache-module_pkg_postinst
+
+	elog "To enable mod_mono, add \"-D MONO\" to your Apache's"
+	elog "conf.d configuration file. Additionally, to view sample"
+	elog "ASP.NET applications, add \"-D MONO_DEMO\" too."
+}


                 reply	other threads:[~2016-07-31  8:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=1469866108.1989e5f5a0a08818df767edfa1ded68477924674.cynede@gentoo \
    --to=cynede@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