<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f8f90a5c308b10b53459d47d726c89d86ca23f55">https://github.com/macports/macports-ports/commit/f8f90a5c308b10b53459d47d726c89d86ca23f55</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f8f90a5c308b10b53459d47d726c89d86ca23f55
</span>Author: Marius Schamschula <mps@macports.org>
AuthorDate: Sun Oct 7 07:35:36 2018 -0500

<span style='display:block; white-space:pre;color:#404040;'>    www/apache: remove obsolete port
</span>---
 www/apache/Portfile                                |  12 -
 .../patch-src_Configure-remove-flat_namespace.diff |  15 --
 ...e.c-remove-rename-static-getline-functions.diff |  78 ------
 www/apache/files/update-apachemodules.pl           | 266 ---------------------
 4 files changed, 371 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/apache/Portfile b/www/apache/Portfile
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1ae79ab..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/apache/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortSystem      1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-replaced_by     apache2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup       obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name            apache
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version         1.3.41
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision        2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-categories      www
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Remove after October 7, 2018
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/apache/files/patch-src_Configure-remove-flat_namespace.diff b/www/apache/files/patch-src_Configure-remove-flat_namespace.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6b2e43b..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/apache/files/patch-src_Configure-remove-flat_namespace.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,15 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/Configure.old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/Configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1146,11 +1146,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       LD_SHLIB="cc"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       CFLAGS_SHLIB=""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       case "$PLAT" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          *-apple-rhapsody* | *-apple-darwin1.[0-3]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined suppress'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           * )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined suppress -flat_namespace'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined dynamic_lookup'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/apache/files/patch-src_support_htdigest_htpasswd_logresolve.c-remove-rename-static-getline-functions.diff b/www/apache/files/patch-src_support_htdigest_htpasswd_logresolve.c-remove-rename-static-getline-functions.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index c849da1..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/apache/files/patch-src_support_htdigest_htpasswd_logresolve.c-remove-rename-static-getline-functions.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,78 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/support/htdigest.c.old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/support/htdigest.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -71,7 +71,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     while ((line[y++] = line[x++]));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int getline(char *s, int n, FILE *f)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int htdigest_getline(char *s, int n, FILE *f)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     register int i = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -158,7 +158,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     static char line[MAX_STRING_LEN];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    while (!(getline(line, MAX_STRING_LEN, source))) {  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    while (!(htdigest_getline(line, MAX_STRING_LEN, source))) {  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   putline(target, line);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -216,7 +216,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ap_cpystrn(realm, argv[2], sizeof(realm));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     found = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    while (!(getline(line, MAX_STRING_LEN, f))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    while (!(htdigest_getline(line, MAX_STRING_LEN, f))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (found || (line[0] == '#') || (!line[0])) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       putline(tfp, line);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       continue;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/support/htpasswd.c.old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/support/htpasswd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,7 +98,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Get a line of input from the user, not including any terminating
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * newline.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int getline(char *s, int n, FILE *f)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int htpasswd_getline(char *s, int n, FILE *f)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     register int i = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -547,7 +547,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   char scratch[MAX_STRING_LEN];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   fpw = fopen(pwfilename, "r");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  while (! (getline(line, sizeof(line), fpw))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  while (! (htpasswd_getline(line, sizeof(line), fpw))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       char *colon;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       if ((line[0] == '#') || (line[0] == '\0')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/support/logresolve.c.old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/support/logresolve.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -71,7 +71,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* !MPE && !WIN32*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void cgethost(struct in_addr ipnum, char *string, int check);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int getline(char *s, int n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int logresolve_getline(char *s, int n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void stats(FILE *output);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -278,7 +278,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * gets a line from stdin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int getline (char *s, int n)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int logresolve_getline (char *s, int n)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     char *cp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -326,7 +326,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     for (i = 0; i < MAX_ERR + 2; i++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   errors[i] = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    while (getline(line, MAXLINE)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    while (logresolve_getline(line, MAXLINE)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (line[0] == '\0')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       continue;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   entries++;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/apache/files/update-apachemodules.pl b/www/apache/files/update-apachemodules.pl
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b589625..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/apache/files/update-apachemodules.pl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,266 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#!/opt/local/bin/perl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# update-apachemodules.pl - Apache module installation for darwinports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Copyright (C) Benoit Chesneau <bchesneau@mac.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This program is free software; you can redistribute it and/or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# modify it under the terms of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# as published by the Free Software Foundation; either version 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# of the License, or (at your option) any later version.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This program is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# along with this program; if not, write to the Free Software
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-require 5.003;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use strict;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-no strict 'vars';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# config var
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my         $prefix                 =       "__PREFIX";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $modules_path   =       "libexec/__NAME";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $modulesd_path  =       "etc/__NAME/modules.d";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $config_path    =       "etc/__NAME";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $config_file    =       "httpd.conf";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# main
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $file='';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my %modconf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my @lmd = ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my @amd = ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my @imd = ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#parse files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-opendir (REP, "$prefix/$modulesd_path") or die " $modulesd_path doesn't exist";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-while (defined ($file = readdir(REP))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   next if $file=~ /^\.\.?$/;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %modconf = parse_conffile($file);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if ($modconf{'name'}) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $cname='';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ((!$modconf{'cname'}) || ($modconf{'cname'} eq '')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   $cname='mod_' . $modconf{'name'} . '.c';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   $cname=$modconf{'cname'};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if (($modconf{'load'}) && ($modconf{'load'} eq 'no')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   push (@lmd, sprintf('#LoadModule %-18s %s', $modconf{'name'} . "_module",  "$modules_path/" . $modconf{'dso_name'} . ".so"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   push (@amd, sprintf('#AddModule %s', $cname));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   push (@lmd, sprintf('LoadModule %-18s %s',$modconf{'name'} . "_module", "$modules_path/" . $modconf{'dso_name'} . ".so"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   push (@amd, sprintf('AddModule %s', $cname));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ($modconf{'conf_file'}) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   push (@imd, sprintf("Include '$prefix/$config_path/extras-conf/%s'", $modconf{'conf_file'}));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   print "Parsed " . $modconf{"name"} . "\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-closedir (REP);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# activate modules (code based on apache apxs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if (not -f "$prefix/$config_path/$config_file") {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   print STDERR "Error: Config file $config_file not foud!\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-open (FP, "< $prefix/$config_path/$config_file") or die "can't open $config_file \n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $content = join ('', <FP>);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-close (FP);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if ($content !~ m|\n#?\s*LoadModule\s+|) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   print STDERR "Error: Activation failed for custom $config_file file.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   print STDERR "Error: At least one `LoadModule' directive already has to exist.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach $lmd (@lmd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   print $lmd . "\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (substr($lmd,0,1) eq "#") {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           substr($lmd, 0, 1) = "";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $c = '#';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if ($content !~ m|\n#?\s*$lmd|) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # check for open <containers>, so that the new LoadModule
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # directive always appears *outside* of an <container>.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # the '()=' trick forces list context and the scalar
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # assignment counts the number of list members (aka number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # of matches) then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ($cntopen == $cntclose) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               # fine. Last LoadModule is contextless.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               $content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } elsif ($cntopen < $cntclose) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               print STDERR 'Configuration file is not valid. There are '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            . "sections closed before opened.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               # put our cmd after the section containing the last
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               # LoadModule.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               my $found =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               $content =~ s!\A (               # string and capture start
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             (?:(?:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                               ^\s*             # start of conf line with a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                               (?:[^<]|<[^/])   # directive which does not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # start with '</'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                               .*(?:$)\n        # rest of the line.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # the '$' is in parentheses
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # to avoid misinterpreting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # the string "$\" as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # perl variable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                               )*               # catch as much as possible
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # of such lines. (including
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # zero)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                               ^\s*</.*(?:$)\n? # after the above, we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # expect a config line with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # a closing container (</)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             ) {$cntopen}       # the whole pattern (bunch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # of lines that end up with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # a closing directive) must
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # be repeated $cntopen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # times. That's it.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                # Simple, eh? ;-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             )               # capture end
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            !$1$c$lmd\n!mx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               unless ($found) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   print STDERR 'Configuration file is not valid. There '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                . "are sections opened and not closed.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # replace already existing LoadModule line
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $lmd =~ m|LoadModule\s+(.+?)_module.*|;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #print STDERR "[$what module `$1' in $config_file]\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $amd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach $amd (@amd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (substr($amd,0,1) eq "#") {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           substr($amd, 0, 1) = "";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $c = '#';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if ($content !~ m|\n#?\s*$amd|) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # check for open <containers> etc. see above for explanations.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $before = ($content =~ m|^(.*\n)#?\s*AddModule\s+[^\n]+\n|s)[0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ($cntopen == $cntclose) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               $content =~ s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } elsif ($cntopen < $cntclose) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               # cannot happen here, but who knows ...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               print STDERR 'Configuration file is not valid. There are '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            . "sections closed before opened.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               unless ($content =~ s!\A((?:(?:^\s*(?:[^<]|<[^/]).*(?:$)\n)*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                     ^\s*</.*(?:$)\n?){$cntopen})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                    !$1$c$amd\n!mx) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   # cannot happen here, anyway.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   print STDERR 'Configuration file is not valid. There '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                . "are sections opened and not closed.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           # replace already existing AddModule line
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-my $imd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach $imd (@imd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if ($content !~ m|\n#?\s*$imd|) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $content .= $imd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if (@lmd or @amd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (open(FP, "> $prefix/$config_path/$config_file.new")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           print FP $content;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           close(FP);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           system ("cp $prefix/$config_path/$config_file $prefix/$config_path/$config_file.bak");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           system ("cp $prefix/$config_path/$config_file.new $prefix/$config_path/$config_file");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           #push(@cmds, "del \"$prefix/$config_path/$config_file.new\"");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       print STDERR "Error: unable to open configuration file\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# subs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-sub parse_conffile () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $file = shift;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   my %data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   open (CONFFILE, "$prefix/$modulesd_path/$file") or die "can't open $file \n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   while (<CONFFILE>) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           chomp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           s/#.*//;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           s/^\s+//;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           s/\s+$//;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           next unless length;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           my ($k,$v) = split(/\s*=\s*/,$_, 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $data{$k}=$v;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   close (CONFFILE)        ;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return %data;   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span></pre><pre style='margin:0'>

</pre>