Revision bump to include virtualmin.
authorJeremy Huddleston <eradicator@gentoo.org>
Thu, 18 Nov 2004 07:00:31 +0000 (07:00 +0000)
committerJeremy Huddleston <eradicator@gentoo.org>
Thu, 18 Nov 2004 07:00:31 +0000 (07:00 +0000)
app-admin/webmin/ChangeLog
app-admin/webmin/Manifest
app-admin/webmin/files/digest-webmin-1.170-r1 [new file with mode: 0644]
app-admin/webmin/files/virtual-server-2.31-checkip.patch [new file with mode: 0644]
app-admin/webmin/files/virtual-server-2.31-namevirtual.patch [new file with mode: 0644]
app-admin/webmin/files/virtual-server-2.31-nocgibin.patch [new file with mode: 0644]
app-admin/webmin/files/virtual-server-2.31-pgsql.patch [new file with mode: 0644]
app-admin/webmin/files/webmin-1.170-postfix.patch [new file with mode: 0644]
app-admin/webmin/webmin-1.170-r1.ebuild [new file with mode: 0644]

index 1acc99e8e43fb64862397d4338d6fd0871f72e62..50ef3aa064f8533685cc3e4e9d4169962aac0809 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for app-admin/webmin
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/webmin/ChangeLog,v 1.64 2004/11/17 23:17:10 eradicator Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/webmin/ChangeLog,v 1.65 2004/11/18 07:00:30 eradicator Exp $
+
+*webmin-1.170-r1 (17 Nov 2004)
+
+  17 Nov 2004; Jeremy Huddleston <eradicator@gentoo.org>
+  +files/virtual-server-2.31-checkip.patch,
+  +files/virtual-server-2.31-namevirtual.patch,
+  +files/virtual-server-2.31-nocgibin.patch,
+  +files/virtual-server-2.31-pgsql.patch, +files/webmin-1.170-postfix.patch,
+  +webmin-1.170-r1.ebuild:
+  Revision bump to include virtualmin.
 
 *webmin-1.170 (17 Nov 2004)
 
index 290d6b1757ffa0e96c07b70466fd2c8fc10d5c47..1dae68c7090e439da5bf1e1853900b74019cbf08 100644 (file)
@@ -1,22 +1,29 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 b8b44bcc49f4b5b2cedc35976bd58120 ChangeLog 9255
+MD5 9ea95b229415a3baf4fec53d8548cf66 ChangeLog 9625
 MD5 3923b6ae9bc25fc124e24e7747c8a802 metadata.xml 226
 MD5 14973a6b696c3410874c04a2210b20ba webmin-1.170.ebuild 2697
+MD5 8a42b8adb36ad6509a9596b367dcd1c0 webmin-1.170-r1.ebuild 3381
 MD5 a21a0a8a415d1e5a1764199b0b4eeed2 webmin-1.160.ebuild 2685
 MD5 7d80c86adbd36eeb8f220b9efdd30819 files/webmin-pam 101
 MD5 7be7bafd8b2e3d886fef0a055078b226 files/init.d.webmin 860
 MD5 58f9530c780e652271313555858ad909 files/digest-webmin-1.170 138
+MD5 6d9dfc76f788500ff3c85cbb42667487 files/digest-webmin-1.170-r1 209
 MD5 17e9cccc95647ba080bd69785db85ac1 files/digest-webmin-1.160 137
 MD5 bc8eb1c9de103599fc00b140b0ed1f9f files/uninstall.sh 260
 MD5 bb2acab90ada721c723d91a5a97c193c files/webmin-1.130-webalizer.patch 615
 MD5 a01d77a867d5469c7211685bfd04f6f6 files/webmin-1.140-apache2.patch 1227
 MD5 e7e3780c0bf03968b380535064c54213 files/webmin-gentoo-init 859
+MD5 0ebd73f1cd5948ec1c3532a2f59f2c53 files/webmin-1.170-postfix.patch 868
+MD5 cad6a5577a4c4b3773702ab1bd8d6461 files/virtual-server-2.31-nocgibin.patch 1073
+MD5 082b9fc08240293b2b7b3609ba8e0cfd files/virtual-server-2.31-checkip.patch 607
+MD5 4f5dc10c2c1d19218cecfc2a678a0ce4 files/virtual-server-2.31-pgsql.patch 579
+MD5 cc16dcb159f84c912365504002444a08 files/virtual-server-2.31-namevirtual.patch 2951
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (GNU/Linux)
 
-iD8DBQFBnDn8ArHZZzCEUG0RAl3rAJ4kIKHKgnxuUdUgDlKR/w9K9+sECgCghCpn
-7/Zt0zo7HYCP1mRapiZtw4A=
-=cSjM
+iD8DBQFBnEidArHZZzCEUG0RAjSfAJ4ocADrs7PnXCWSvPWG5kbNVo2YMQCeNAeG
+BHjp1xp6nAB64YObbff9p1A=
+=IGGZ
 -----END PGP SIGNATURE-----
diff --git a/app-admin/webmin/files/digest-webmin-1.170-r1 b/app-admin/webmin/files/digest-webmin-1.170-r1
new file mode 100644 (file)
index 0000000..c4fddb6
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 a2bc5d04524c52af8955c703179e8af4 webmin-1.170-minimal.tar.gz 1011002
+MD5 418a62c76b8ba4e0c9532e654167c49c webmin-1.170.tar.gz 7833477
+MD5 ebb3798d202ed0dff66263c2b4809a72 virtual-server-2.31.wbm.gz 177487
diff --git a/app-admin/webmin/files/virtual-server-2.31-checkip.patch b/app-admin/webmin/files/virtual-server-2.31-checkip.patch
new file mode 100644 (file)
index 0000000..3464927
--- /dev/null
@@ -0,0 +1,16 @@
+diff -Naur virtual-server.orig/virtual-server-lib.pl virtual-server/virtual-server-lib.pl
+--- virtual-server.orig/virtual-server-lib.pl  2004-10-11 21:30:51.000000000 -0700
++++ virtual-server/virtual-server-lib.pl       2004-11-17 22:22:52.997058167 -0800
+@@ -1563,7 +1563,12 @@
+       $vmax = $b->{'virtual'}
+               if ($b->{'name'} eq $iface->{'name'} &&
+                   $b->{'virtual'} > $vmax);
++
++      if($b->{'address'} eq $_[0]->{'ip'}) {
++              print "IP address is already active.<p>\n";
++              return;
+       }
++}
+ local $virt = { 'address' => $_[0]->{'ip'},
+               'netmask' => $net::virtual_netmask || $iface->{'netmask'},
+               'broadcast' =>
diff --git a/app-admin/webmin/files/virtual-server-2.31-namevirtual.patch b/app-admin/webmin/files/virtual-server-2.31-namevirtual.patch
new file mode 100644 (file)
index 0000000..0669a84
--- /dev/null
@@ -0,0 +1,62 @@
+diff -Naur virtual-server.orig/feature-ssl.pl virtual-server/feature-ssl.pl
+--- virtual-server.orig/feature-ssl.pl 2004-09-11 00:34:25.000000000 -0700
++++ virtual-server/feature-ssl.pl      2004-11-17 22:48:20.000000000 -0800
+@@ -10,6 +10,24 @@
+ local $web_sslport = $tmpl->{'web_sslport'} || 443;
+ &require_apache();
+ local $conf = &apache::get_config();
++
++# add NameVirtualHost if needed
++if ($_[0]->{'name'}) {
++      local $found;
++      local @nv = &apache::find_directive("NameVirtualHost", $conf);
++      foreach $nv (@nv) {
++              $found++ if ($nv eq $_[0]->{'ip'} ||
++                      $nv =~ /^(\S+):(\S+)/ && $1 eq $_[0]->{'ip'} && $2 eq "443" ||
++                      $nv eq '*');
++      }
++      if(!$foundssl) {
++              &apache::save_directive("NameVirtualHost",
++                                      [ @nv, $_[0]->{'ip'}.":443" ],
++                                      $conf, $conf);
++              &flush_file_lines();
++              }
++      }
++
+ if ($apache::config{'virt_file'}) {
+       $f = -d $apache::config{'virt_file'} ?
+               "$apache::config{'virt_file'}/www.$_[0]->{'dom'}.conf" :
+diff -Naur virtual-server.orig/feature-web.pl virtual-server/feature-web.pl
+--- virtual-server.orig/feature-web.pl 2004-10-07 17:07:06.000000000 -0700
++++ virtual-server/feature-web.pl      2004-11-17 22:52:13.024826263 -0800
+@@ -40,7 +40,7 @@
+       local @nv = &apache::find_directive("NameVirtualHost", $conf);
+       foreach $nv (@nv) {
+               $found++ if ( #$nv eq $_[0]->{'ip'} ||
+-                           $nv =~ /^(\S+):(\S+)/ && $1 eq $_[0]->{'ip'} ||
++                           $nv =~ /^(\S+):(\S+)/ && $1 eq $_[0]->{'ip'} && $2 eq $web_port ||
+                            $nv eq '*');
+               $found_no_port++ if $nv eq $_[0]->{'ip'};
+               $nvstar++ if ($nv eq "*");
+@@ -248,7 +248,7 @@
+               &$first_print($text{'save_apache'});
+               local $lref = &read_file_lines($virt->{'file'});
+               $lref->[$virt->{'line'}] =
+-                      $_[0]->{'name'} ? "<VirtualHost *>" :
++                      $_[0]->{'name'} && !$config{'all_namevirtual'} ? "<VirtualHost *>" :
+                               "<VirtualHost $_[0]->{'ip'}:$_[1]->{'web_port'}>";
+               &flush_file_lines();
+               $rv++;
+diff -Naur virtual-server.orig/help/iface.html virtual-server/help/iface.html
+--- virtual-server.orig/help/iface.html        2004-02-09 23:13:33.000000000 -0800
++++ virtual-server/help/iface.html     2004-11-17 22:53:18.404198519 -0800
+@@ -1,5 +1,9 @@
+ <header>Network Interface</header>
+ 
++If you chose 'Create all webs as NameVirtualHost?' in the module configuration, this option will let you select the IP address to use for this site. <p>
++
++If you did not choose 'Create all webs as NameVirtualHost?' in the module configuration, you will have two options here: <p>
++
+ If you want to set up an IP-based virtual host (required for SSL websites or virtual FTP hosting), this option must be set to <b>Virtual interface with IP</b> and an un-used address entered. Virtualmin will activate this IP on your system when the server is created, and associate it with the server. <p>
+ 
+ If the <b>Shared</b> option is selected, the system's primary network interface address will be used for this server's website and DNS domain instead. <p>
diff --git a/app-admin/webmin/files/virtual-server-2.31-nocgibin.patch b/app-admin/webmin/files/virtual-server-2.31-nocgibin.patch
new file mode 100644 (file)
index 0000000..8802d83
--- /dev/null
@@ -0,0 +1,26 @@
+diff -Naur virtual-server.orig/feature-dir.pl virtual-server/feature-dir.pl
+--- virtual-server.orig/feature-dir.pl 2004-10-02 04:02:15.000000000 -0700
++++ virtual-server/feature-dir.pl      2004-11-17 22:19:58.647512703 -0800
+@@ -37,8 +37,8 @@
+ 
+ # Setup web directories
+ local $d;
++#            [ 'cgi-bin', '755' ],
+ foreach $d ( [ &public_html_dir($_[0], 1), '755' ],
+-             [ 'cgi-bin', '755' ],
+              [ 'logs', '755' ],
+              [ $config{'homes_dir'}, '755' ] ) {
+         &system_logged("mkdir -p $qh/$d->[0] 2>/dev/null");
+diff -Naur virtual-server.orig/import.cgi virtual-server/import.cgi
+--- virtual-server.orig/import.cgi     2004-09-23 00:08:54.000000000 -0700
++++ virtual-server/import.cgi  2004-11-17 22:18:26.223592493 -0800
+@@ -157,8 +157,8 @@
+ 
+       # Setup web directories
+       print $text{'import_dirs'},"<br>\n";
++#                  [ 'cgi-bin', '755' ],
+       foreach $d ( [ $config{'html_dir'} || 'public_html', '755' ],
+-                   [ 'cgi-bin', '755' ],
+                    [ 'logs', '755' ],
+                    [ $config{'homes_dir'}, '755' ] ) {
+               if (!-d "$uinfo{'home'}/$d->[0]") {
diff --git a/app-admin/webmin/files/virtual-server-2.31-pgsql.patch b/app-admin/webmin/files/virtual-server-2.31-pgsql.patch
new file mode 100644 (file)
index 0000000..9710924
--- /dev/null
@@ -0,0 +1,15 @@
+diff -Naur virtual-server.orig/domain_setup.cgi virtual-server/domain_setup.cgi
+--- virtual-server.orig/domain_setup.cgi       2004-10-10 16:25:43.000000000 -0700
++++ virtual-server/domain_setup.cgi    2004-11-17 22:41:50.285398317 -0800
+@@ -70,6 +70,11 @@
+               $user =~ /^[^\t :]+$/ || &error($text{'setup_euser2'});
+               defined(getpwnam($user)) && &error($text{'setup_euser'});
+               }
++
++      if ($config{'postgres'} && $in{'postgres'}) {
++              $user =~ /^[A-Za-z]/ || &error("Username must begin with a letter if you are using postgres.");
++      }
++
+       if ($in{'mgroup_def'}) {
+               $group = $user;
+               }
diff --git a/app-admin/webmin/files/webmin-1.170-postfix.patch b/app-admin/webmin/files/webmin-1.170-postfix.patch
new file mode 100644 (file)
index 0000000..002cb7d
--- /dev/null
@@ -0,0 +1,19 @@
+diff -Naur webmin-1.170.orig/postfix/postfix-lib.pl webmin-1.170/postfix/postfix-lib.pl
+--- webmin-1.170.orig/postfix/postfix-lib.pl   2004-11-12 20:00:28.000000000 -0800
++++ webmin-1.170/postfix/postfix-lib.pl        2004-11-17 22:10:48.298393107 -0800
+@@ -604,12 +604,12 @@
+ {
+ &get_maps($_[0], $_[2]);      # force cache init
+ my @maps_files = $_[2] ? @{$_[2]} : &get_maps_files(&get_real_value($_[0]));
+-local $lref = &read_file_lines($maps_files[0]);
++local $lref = &read_file_lines($maps_files[$#maps_files]);
+ push(@$lref, "$_[1]->{'name'}\t$_[1]->{'value'}");
+ &flush_file_lines();
+ 
+-$_[1]->{'map_file'} = $maps_files[0];
+-$_[1]->{'file'} = $maps_files[0];
++$_[1]->{'map_file'} = $maps_files[$#maps_files];
++$_[1]->{'file'} = $maps_files[$#maps_files];
+ $_[1]->{'line'} = @$lref - 1;
+ $_[1]->{'number'} = scalar(@{$maps_cache{$_[0]}});
+ push(@{$maps_cache{$_[0]}}, $_[1]);
diff --git a/app-admin/webmin/webmin-1.170-r1.ebuild b/app-admin/webmin/webmin-1.170-r1.ebuild
new file mode 100644 (file)
index 0000000..36aeb4a
--- /dev/null
@@ -0,0 +1,123 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-admin/webmin/webmin-1.170-r1.ebuild,v 1.1 2004/11/18 07:00:30 eradicator Exp $
+
+IUSE="ssl apache2 webmin-minimal"
+
+inherit eutils
+
+VM_V="2.31"
+
+DESCRIPTION="Webmin, a web-based system administration interface"
+HOMEPAGE="http://www.webmin.com/"
+SRC_URI="webmin-minimal? ( mirror://sourceforge/webadmin/${P}-minimal.tar.gz )
+        !webmin-minimal? ( mirror://sourceforge/webadmin/${P}.tar.gz 
+                          http://www.webmin.com/download/virtualmin/virtual-server-${VM_V}.wbm.gz )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~s390 ~sparc ~x86 ~mips"
+
+DEPEND="dev-lang/perl"
+RDEPEND="ssl? ( dev-perl/Net-SSLeay )
+       dev-perl/XML-Generator"
+
+src_unpack() {
+       unpack ${A}
+
+       # in webmin-minimal webalizer and apache2 are not present
+       if ! use webmin-minimal ; then
+               cd ${S}
+               # Bug #47020
+               epatch ${FILESDIR}/${PN}-1.130-webalizer.patch
+
+               # Bug #50810, #51943
+               if use apache2; then
+                       epatch ${FILESDIR}/${PN}-1.140-apache2.patch
+               fi
+
+               # Postfix should modify the last entry of the maps file
+               epatch ${FILESDIR}/${PN}-1.170-postfix.patch
+
+               mv ${WORKDIR}/virtual-server-${VM_V}.wbm ${T}/vs.tar
+               tar -xf ${T}/vs.tar
+
+               # Don't create ${HOME}/cgi-bin on new accounts
+               epatch ${FILESDIR}/virtual-server-2.31-nocgibin.patch
+
+               # Check if a newly added IP is already active
+               epatch ${FILESDIR}/virtual-server-2.31-checkip.patch
+
+               # Verify Postgres usernames
+               epatch ${FILESDIR}/virtual-server-2.31-pgsql.patch
+
+               # Fix some all name virtual items
+               epatch ${FILESDIR}/virtual-server-2.31-namevirtual.patch
+       fi
+}
+
+src_install() {
+       rm -f mount/freebsd-mounts*
+       rm -f mount/openbsd-mounts*
+       rm -f mount/macos-mounts*
+       (find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
+       dodir /usr/libexec/webmin
+       dodir /etc/init.d
+       dodir /var
+       dodir /etc/pam.d
+       cp -rp * ${D}/usr/libexec/webmin
+
+       # in webmin-minimal openslp is not present
+       if [ ! -f "${D}/usr/libexec/webmin/openslp/config-gentoo-linux" ] ; then
+               cp ${D}/usr/libexec/webmin/openslp/config \
+                       ${D}/usr/libexec/webmin/openslp/config-gentoo-linux
+       fi
+
+       exeinto /etc/init.d
+       newexe ${FILESDIR}/init.d.webmin webmin
+
+       insinto /etc/pam.d/
+       newins ${FILESDIR}/webmin-pam webmin
+       echo gentoo > ${D}/usr/libexec/webmin/install-type
+
+       exeinto /etc/webmin
+       doexe ${FILESDIR}/uninstall.sh
+}
+
+pkg_postinst() {
+       /etc/init.d/webmin stop >/dev/null 2>&1
+       stopstatus=$?
+       cd /usr/libexec/webmin
+       config_dir=/etc/webmin
+       var_dir=/var/log/webmin
+       perl=/usr/bin/perl
+       autoos=1
+       port=10000
+       login=root
+       crypt=`grep "^root:" /etc/shadow | cut -f 2 -d :`
+       host=`hostname`
+       use ssl && ssl=1 || ssl=0
+       atboot=0
+       nostart=1
+       nochown=1
+       autothird=1
+       nouninstall=1
+       noperlpath=1
+       export config_dir var_dir perl autoos port login crypt host ssl nochown autothird nouninstall nostart noperlpath
+       perl /usr/libexec/webmin/maketemp.pl
+       ./setup.sh >/tmp/.webmin/webmin-setup.out 2>&1
+
+       if [ "$stopstatus" = "0" ]; then
+               # Start if it was running before
+               /etc/init.d/webmin start
+       fi
+
+       sed -i 's:^pidfile=.*$:pidfile=/var/run/webmin.pid:' /etc/webmin/miniserv.conf
+
+       einfo "Add webmin to your boot-time services with 'rc-update add webmin'."
+       einfo "Point your web browser to http://localhost:10000 to use webmin."
+}
+
+pkg_prerm() {
+       /etc/init.d/webmin stop >& /dev/null
+}