112 lines
5.1 KiB
Plaintext
112 lines
5.1 KiB
Plaintext
|
diff -uNr httpd-2.2.0.orig/support/apxs.in httpd-2.2.0/support/apxs.in
|
||
|
--- httpd-2.2.0.orig/support/apxs.in 2005-06-10 11:18:14.000000000 +0200
|
||
|
+++ httpd-2.2.0/support/apxs.in 2005-12-07 11:04:38.337999601 +0100
|
||
|
@@ -527,105 +527,14 @@
|
||
|
|
||
|
# activate module via LoadModule/AddModule directive
|
||
|
if ($opt_a or $opt_A) {
|
||
|
- if (not -f "$CFG_SYSCONFDIR/$CFG_TARGET.conf") {
|
||
|
- error("Config file $CFG_SYSCONFDIR/$CFG_TARGET.conf not found");
|
||
|
- exit(1);
|
||
|
- }
|
||
|
-
|
||
|
- open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die;
|
||
|
- my $content = join('', <FP>);
|
||
|
- close(FP);
|
||
|
-
|
||
|
- if ($content !~ m|\n#?\s*LoadModule\s+|) {
|
||
|
- error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file.");
|
||
|
- error("At least one `LoadModule' directive already has to exist.");
|
||
|
- exit(1);
|
||
|
- }
|
||
|
|
||
|
my $lmd;
|
||
|
my $c = '';
|
||
|
$c = '#' if ($opt_A);
|
||
|
foreach $lmd (@lmd) {
|
||
|
- my $what = $opt_A ? "preparing" : "activating";
|
||
|
- if ($content !~ m|\n#?\s*$lmd|) {
|
||
|
- # check for open <containers>, so that the new LoadModule
|
||
|
- # directive always appears *outside* of an <container>.
|
||
|
-
|
||
|
- my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0];
|
||
|
-
|
||
|
- # the '()=' trick forces list context and the scalar
|
||
|
- # assignment counts the number of list members (aka number
|
||
|
- # of matches) then
|
||
|
- my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
|
||
|
- my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
|
||
|
-
|
||
|
- if ($cntopen == $cntclose) {
|
||
|
- # fine. Last LoadModule is contextless.
|
||
|
- $content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|s;
|
||
|
- }
|
||
|
- elsif ($cntopen < $cntclose) {
|
||
|
- error('Configuration file is not valid. There are sections'
|
||
|
- . ' closed before opened.');
|
||
|
- exit(1);
|
||
|
- }
|
||
|
- else {
|
||
|
- # put our cmd after the section containing the last
|
||
|
- # LoadModule.
|
||
|
- my $found =
|
||
|
- $content =~ s!\A ( # string and capture start
|
||
|
- (?:(?:
|
||
|
- ^\s* # start of conf line with a
|
||
|
- (?:[^<]|<[^/]) # directive which does not
|
||
|
- # start with '</'
|
||
|
-
|
||
|
- .*(?:$)\n # rest of the line.
|
||
|
- # the '$' is in parentheses
|
||
|
- # to avoid misinterpreting
|
||
|
- # the string "$\" as
|
||
|
- # perl variable.
|
||
|
-
|
||
|
- )* # catch as much as possible
|
||
|
- # of such lines. (including
|
||
|
- # zero)
|
||
|
-
|
||
|
- ^\s*</.*(?:$)\n? # after the above, we
|
||
|
- # expect a config line with
|
||
|
- # a closing container (</)
|
||
|
-
|
||
|
- ) {$cntopen} # the whole pattern (bunch
|
||
|
- # of lines that end up with
|
||
|
- # a closing directive) must
|
||
|
- # be repeated $cntopen
|
||
|
- # times. That's it.
|
||
|
- # Simple, eh? ;-)
|
||
|
-
|
||
|
- ) # capture end
|
||
|
- !$1$c$lmd\n!mx;
|
||
|
-
|
||
|
- unless ($found) {
|
||
|
- error('Configuration file is not valid. There are '
|
||
|
- . 'sections opened and not closed.');
|
||
|
- exit(1);
|
||
|
- }
|
||
|
- }
|
||
|
- } else {
|
||
|
- # replace already existing LoadModule line
|
||
|
- $content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|s;
|
||
|
- }
|
||
|
- $lmd =~ m|LoadModule\s+(.+?)_module.*|;
|
||
|
- notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");
|
||
|
+ print "activating " . $name . "\n";
|
||
|
+ system("a2enmod " . $name);
|
||
|
}
|
||
|
- if (@lmd) {
|
||
|
- if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) {
|
||
|
- print FP $content;
|
||
|
- close(FP);
|
||
|
- system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " .
|
||
|
- "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " .
|
||
|
- "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new");
|
||
|
- } else {
|
||
|
- notice("unable to open configuration file");
|
||
|
- }
|
||
|
- }
|
||
|
}
|
||
|
}
|
||
|
|