[PATCH] git-instaweb: detect difference between mod_cgi and mod_cgid for apache2

Subsystems: the rest

STALE3732d

2 messages, 1 author, 2016-06-15 · open the first message on its own page

[PATCH] git-instaweb: detect difference between mod_cgi and mod_cgid for apache2

From: Mark A Rada <hidden>
Date: 2016-06-15 22:47:12

I'm not sure if this should have been two patches or just one.

First I changed the check of whether mod_cgi is built in or not from  
matching against
'mod_cgi.c' to 'mod_cgi' because I made the assumption that mod_cgid  
would be called
'mod_cgid.c' (I haven't actually checked this, but it sounds  
reasonable). Then, the
second change handles the two cases when no cgi module is built in,  
which I  did try
(for mod_cgid that is).

Also, should the socket needed for mod_cgid be put in $GIT_DIR or  
somewhere else?


tl;dr I only actually tried 1/4 cases, everything else looks reasonable


--
Mark A Rada (ferrous26)
marada@uwaterloo.ca


--->8---
Some people have mod_cgid in place of mod_cgi, this will check which one
the user has available to them first, and then act accordingly.

Signed-off-by: Mark Rada <redacted>
---
  git-instaweb.sh |   10 ++++++++--
  1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/git-instaweb.sh b/git-instaweb.sh
index 5f5cac7..fdac0d0 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -297,8 +297,14 @@ EOF
  		# plain-old CGI
  		resolve_full_httpd
  		list_mods=$(echo "$full_httpd" | sed "s/-f$/-l/")
-		$list_mods | grep 'mod_cgi\.c' >/dev/null 2>&1 || \
-		echo "LoadModule cgi_module $module_path/mod_cgi.so" >> "$conf"
+		$list_mods | grep 'mod_cgi' >/dev/null 2>&1 || \
+		if test -f "$module_path/mod_cgi.so"
+		then
+			echo "LoadModule cgi_module $module_path/mod_cgi.so" >> "$conf"
+		else
+			echo "LoadModule cgi_module $module_path/mod_cgid.so" >> "$conf"
+			echo "ScriptSock $GIT_DIR/gitweb.sock" >> "$conf"
+		fi
  		cat >> "$conf" <<EOF
  AddHandler cgi-script .cgi
  <Location /gitweb.cgi>
-- 
1.6.4

Re: [PATCH] git-instaweb: detect difference between mod_cgi and mod_cgid for apache2

From: Mark A Rada <hidden>
Date: 2016-06-15 22:47:13

If you haven't already, ignore this patch, I'm pretty sure it won't  
work for cases where mod_cgid
is built in. I think it should be including the ScriptSock directive  
when built in as well, but I don't
have a setup to test that on, and the apache documentation isn't very  
specific.

I'll try again later, sorry for the spam.


--
Mark A Rada (ferrous26)
marada@uwaterloo.ca


On 10-Aug-09, at 1:19 AM, Mark A Rada wrote:
quoted hunk
I'm not sure if this should have been two patches or just one.

First I changed the check of whether mod_cgi is built in or not from  
matching against
'mod_cgi.c' to 'mod_cgi' because I made the assumption that mod_cgid  
would be called
'mod_cgid.c' (I haven't actually checked this, but it sounds  
reasonable). Then, the
second change handles the two cases when no cgi module is built in,  
which I  did try
(for mod_cgid that is).

Also, should the socket needed for mod_cgid be put in $GIT_DIR or  
somewhere else?


tl;dr I only actually tried 1/4 cases, everything else looks  
reasonable


--
Mark A Rada (ferrous26)
marada@uwaterloo.ca


--->8---
Some people have mod_cgid in place of mod_cgi, this will check which  
one
the user has available to them first, and then act accordingly.

Signed-off-by: Mark Rada <redacted>
---
git-instaweb.sh |   10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/git-instaweb.sh b/git-instaweb.sh
index 5f5cac7..fdac0d0 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -297,8 +297,14 @@ EOF
		# plain-old CGI
		resolve_full_httpd
		list_mods=$(echo "$full_httpd" | sed "s/-f$/-l/")
-		$list_mods | grep 'mod_cgi\.c' >/dev/null 2>&1 || \
-		echo "LoadModule cgi_module $module_path/mod_cgi.so" >> "$conf"
+		$list_mods | grep 'mod_cgi' >/dev/null 2>&1 || \
+		if test -f "$module_path/mod_cgi.so"
+		then
+			echo "LoadModule cgi_module $module_path/mod_cgi.so" >> "$conf"
+		else
+			echo "LoadModule cgi_module $module_path/mod_cgid.so" >> "$conf"
+			echo "ScriptSock $GIT_DIR/gitweb.sock" >> "$conf"
+		fi
		cat >> "$conf" <<EOF
AddHandler cgi-script .cgi
<Location /gitweb.cgi>
-- 
1.6.4

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help