git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path
@ 2018-08-07  7:25 Sebastian Kisela
  2018-08-07  7:25 ` [PATCH 2/2] git-instaweb: fix apache2 config with apache >= 2.4 Sebastian Kisela
  2018-08-07 21:25 ` [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Junio C Hamano
  0 siblings, 2 replies; 6+ messages in thread
From: Sebastian Kisela @ 2018-08-07  7:25 UTC (permalink / raw)
  To: git; +Cc: skisela

On Fedora-derived systems, the apache httpd package installs modules
under /usr/lib{,64}/httpd/modules, depending on whether the system is
32- or 64-bit.  A symlink from /etc/httpd/modules is created which
points to the proper module path.  Use it to support apache on Fedora,
CentOS, and Red Hat systems.

Written with assistance of Todd Zullinger <tmz@pobox.com>

Signed-off-by: Sebastian Kisela <skisela@redhat.com>
---
 git-instaweb.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/git-instaweb.sh b/git-instaweb.sh
index 47e38f34c..e42e58528 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -332,6 +332,8 @@ apache2_conf () {
 			module_path="/usr/lib/httpd/modules"
 		test -d "/usr/lib/apache2/modules" &&
 			module_path="/usr/lib/apache2/modules"
+		test -d "/etc/httpd/modules" &&
+			module_path="/etc/httpd/modules"
 	fi
 	bind=
 	test x"$local" = xtrue && bind='127.0.0.1:'
-- 
2.18.0.99.gd2ee41e0e


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] git-instaweb: fix apache2 config with apache >= 2.4
  2018-08-07  7:25 [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Sebastian Kisela
@ 2018-08-07  7:25 ` Sebastian Kisela
  2018-08-07 21:25 ` [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Junio C Hamano
  1 sibling, 0 replies; 6+ messages in thread
From: Sebastian Kisela @ 2018-08-07  7:25 UTC (permalink / raw)
  To: git; +Cc: skisela

The generated apache2 config fails with apache >= 2.4.  The error log
states:

    AH00136: Server MUST relinquish startup privileges before accepting
    connections.  Please ensure mod_unixd or other system security
    module is loaded.
    AH00016: Configuration Failed

Fix this by loading the unixd module.  This works with older httpd as
well, so no IfVersion conditional is needed.  (Tested with httpd-2.2.15
on CentOS-6.)

Written with assistance of Todd Zullinger <tmz@pobox.com>

Signed-off-by: Sebastian Kisela <skisela@redhat.com>
---
 git-instaweb.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-instaweb.sh b/git-instaweb.sh
index e42e58528..b1da2c374 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -358,7 +358,7 @@ EOF
 			break
 		fi
 	done
-	for mod in mime dir env log_config authz_core
+	for mod in mime dir env log_config authz_core unixd
 	do
 		if test -e $module_path/mod_${mod}.so
 		then
-- 
2.18.0.99.gd2ee41e0e


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path
  2018-08-07  7:25 [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Sebastian Kisela
  2018-08-07  7:25 ` [PATCH 2/2] git-instaweb: fix apache2 config with apache >= 2.4 Sebastian Kisela
@ 2018-08-07 21:25 ` Junio C Hamano
  2018-08-07 22:11   ` Junio C Hamano
  1 sibling, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2018-08-07 21:25 UTC (permalink / raw)
  To: Sebastian Kisela; +Cc: git, Todd Zullinger

Sebastian Kisela <skisela@redhat.com> writes:

> On Fedora-derived systems, the apache httpd package installs modules
> under /usr/lib{,64}/httpd/modules, depending on whether the system is
> 32- or 64-bit.  A symlink from /etc/httpd/modules is created which
> points to the proper module path.  Use it to support apache on Fedora,
> CentOS, and Red Hat systems.
>
> Written with assistance of Todd Zullinger <tmz@pobox.com>
>
> Signed-off-by: Sebastian Kisela <skisela@redhat.com>
> ---
>  git-instaweb.sh | 2 ++
>  1 file changed, 2 insertions(+)

Thanks for a patch, and welcome to the Git development community.

> diff --git a/git-instaweb.sh b/git-instaweb.sh
> index 47e38f34c..e42e58528 100755
> --- a/git-instaweb.sh
> +++ b/git-instaweb.sh
> @@ -332,6 +332,8 @@ apache2_conf () {
>  			module_path="/usr/lib/httpd/modules"
>  		test -d "/usr/lib/apache2/modules" &&
>  			module_path="/usr/lib/apache2/modules"
> +		test -d "/etc/httpd/modules" &&
> +			module_path="/etc/httpd/modules"

The original already has the same issue with two entries but this
patch makes it even worse by adding yet another one.  The longer the
code follows a bad pattern, the more it encourages future developers
to follow the same bad pattern, and usually the best time to do a
clean up like the following

	if test -z "$module_path"
	then
		for candidate in \
			/etc/httpd \
			/usr/lib/apache2 \
			/usr/lib/httpd \
		do
			if test -d "$candidate/modules"
			then
				module_path="$candidate/modules"
				break
			fi
		done
	fi

is when you go from 2 to 3.  Two points to note are:

 - It would be easier to add the fourth one this way

 - The explicit "break" makes it clear that the paths are listed in
   decreasing order of precedence (i.e. /etc/httpd if exists makes
   /usr/lib/httpd ignored even if the latter exists); the original
   "test -d X && M=X ; test -d Y && M=Y" gives higher precedence to
   the later items but readers need to wonder if it is intended or
   the code is simply being sloppy.

Hope this helps.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path
  2018-08-07 21:25 ` [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Junio C Hamano
@ 2018-08-07 22:11   ` Junio C Hamano
  2018-08-08  8:49     ` Sebastian Kisela
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2018-08-07 22:11 UTC (permalink / raw)
  To: Sebastian Kisela; +Cc: git, Todd Zullinger

Junio C Hamano <gitster@pobox.com> writes:

> 	if test -z "$module_path"
> 	then
> 		for candidate in \
> 			/etc/httpd \
> 			/usr/lib/apache2 \
> 			/usr/lib/httpd \

I obviously missed semicolon here...

> 		do
> 			if test -d "$candidate/modules"
> 			then
> 				module_path="$candidate/modules"
> 				break
> 			fi

One more thing to note is that the fourth candidate might not end
with "/modules" and force us to update these existing three to have
"/modules" at the end and lose appending "/modules" from these two
lines to compensate.  That is sort of deliberate (i.e. as long as we
can share "/modules" as a common substring at the end, it is OK to
take advantage of that).

> 		done
> 	fi
>
> is when you go from 2 to 3.  Two points to note are:
>
>  - It would be easier to add the fourth one this way
>
>  - The explicit "break" makes it clear that the paths are listed in
>    decreasing order of precedence (i.e. /etc/httpd if exists makes
>    /usr/lib/httpd ignored even if the latter exists); the original
>    "test -d X && M=X ; test -d Y && M=Y" gives higher precedence to
>    the later items but readers need to wonder if it is intended or
>    the code is simply being sloppy.
>
> Hope this helps.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path
  2018-08-07 22:11   ` Junio C Hamano
@ 2018-08-08  8:49     ` Sebastian Kisela
  2018-08-08  8:49       ` Sebastian Kisela
  0 siblings, 1 reply; 6+ messages in thread
From: Sebastian Kisela @ 2018-08-08  8:49 UTC (permalink / raw)
  To: git; +Cc: skisela

Junio thanks for the tip! Your suggestion definitely looks better.

BTW. I apologize for polluting the git mailing list with the recent
email. I am still new to git-send-email.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path
  2018-08-08  8:49     ` Sebastian Kisela
@ 2018-08-08  8:49       ` Sebastian Kisela
  0 siblings, 0 replies; 6+ messages in thread
From: Sebastian Kisela @ 2018-08-08  8:49 UTC (permalink / raw)
  To: git; +Cc: skisela

On Fedora-derived systems, the apache httpd package installs modules
under /usr/lib{,64}/httpd/modules, depending on whether the system is
32- or 64-bit.  A symlink from /etc/httpd/modules is created which
points to the proper module path.  Use it to support apache on Fedora,
CentOS, and Red Hat systems.

Written with assistance of Todd Zullinger <tmz@pobox.com> and
Junio C Hamano <gitster@pobox.com>.

Signed-off-by: Sebastian Kisela <skisela@redhat.com>
---
 git-instaweb.sh | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/git-instaweb.sh b/git-instaweb.sh
index 47e38f34c..675add184 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -326,13 +326,17 @@ EOF
 }
 
 apache2_conf () {
-	if test -z "$module_path"
-	then
-		test -d "/usr/lib/httpd/modules" &&
-			module_path="/usr/lib/httpd/modules"
-		test -d "/usr/lib/apache2/modules" &&
-			module_path="/usr/lib/apache2/modules"
-	fi
+	for candidate in \
+		/etc/httpd \
+		/usr/lib/apache2 \
+		/usr/lib/httpd ;
+	do
+		if test -d "$candidate/modules"
+		then
+			module_path="$candidate/modules"
+			break
+		fi
+	done
 	bind=
 	test x"$local" = xtrue && bind='127.0.0.1:'
 	echo 'text/css css' > "$fqgitdir/mime.types"
-- 
2.14.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-08-08  8:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-07  7:25 [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Sebastian Kisela
2018-08-07  7:25 ` [PATCH 2/2] git-instaweb: fix apache2 config with apache >= 2.4 Sebastian Kisela
2018-08-07 21:25 ` [PATCH 1/2] git-instaweb: support Fedora/Red Hat apache module path Junio C Hamano
2018-08-07 22:11   ` Junio C Hamano
2018-08-08  8:49     ` Sebastian Kisela
2018-08-08  8:49       ` Sebastian Kisela

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).