# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils DESCRIPTION="VHCS is a Professional Control Panel Software for server management" HOMEPAGE="http://www.vhcs.net/" SRC_URI="mirror://sourceforge/${PN}/${PN}2-${PV}.tar.bz2 mirror://sourceforge/${PN}/${PN}_patch_2006-02-09.tar.bz2" # SLOT="0" LICENSE="GPL-2" KEYWORDS="~x86 ~amd64" IUSE="crypt mysql postgres" DEPEND=">=sys-apps/sed-4 >=dev-lang/perl-5.8.2" RDEPEND=" >=sys-apps/coreutils-5.0-r3 dev-perl/MIME-tools virtual/perl-MIME-Base64 virtual/perl-Digest-MD5 dev-perl/crypt-cbc dev-perl/Crypt-Blowfish dev-perl/DBI mta? ( mail-mta/postfix ) ftp? ( net-ftp/proftpd ) mail? ( net-mail/courier-imap ) dns? ( net-dns/bind ) net-firewall/iptables net-www/apache virtual/php dev-php/adodb crypt? ( dev-libs/libmcrypt ) mysql? ( >=dev-db/mysql-4.0.1 >=dev-perl/DBD-mysql ) postgres? ( >=dev-db/postgresql-8.0 dev-perl/DBD-Pg >=dev-perl/DBD-Pg-1.31 )" S="${WORKDIR}/${PN}2-${PV}" pkg_setup() { # if use apache # then # require_php_with_use wddx # fi enewgroup vhcs enewuser vhcs -1 -1 /var/lib/vhcs vhcs } src_unpack() { unpack ${A} cd ${S} # Install security patch # http://vhcs.net/new/modules/news/article.php?storyid=25 einfo "Install security patch" cp ../${PN}_patch_2006-02-09/gui/include/login.php gui/include/login.php } src_compile() { # Since VHCS build tool are totaly broken, we had to do it manualy # Build daemon cd ${S}/tools/daemon emake # Build geygen cd ${S}/keys if use crypt then gcc -O2 -ansi -Wall -Wstrict-prototypes -pedantic -lmcrypt -o gen-keys gen-keys.c else gcc -O2 -ansi -Wall -Wstrict-prototypes -pedantic -o gen-keys gen-keys.c fi } src_install() { # Since VHCS build tool are totaly broken, we had to do it manualy, again into /var/www/vhcs2 dobin ${S}/tools/daemon/vhcs2_daemon dobin ${S}/keys/gen-keys dobin ${S}/keys/rpl.pl dodir /var/www/vhcs2/engine/backup dodir /var/www/vhcs2/engine/quota dodir /var/www/vhcs2/engine/traffic dodir /var/www/vhcs2/engine/messager dodir /var/www/vhcs2/engine/setup dodir /var/www/vhcs2/engine/tools ### Install engine related files cd ${S}/engine dodir /var/www/vhcs2/engine exeinto /var/www/vhcs2/engine insinto /var/www/vhcs2/engine doexe traffic/maillogconvert/maillogconvert.pl doexe vhcs2_common_code.pl vhcs2-db-keys.pl doins *-mngr vhcs2-db-passwd dosym /var/www/vhcs2/engine/vhcs2-db-keys.pl /var/www/vhcs2/engine/messager/ insinto /var/www/vhcs2/engine/backup doins backup/vhcs2-bk-task insinto /var/www/vhcs2/engine/tools doins backup/vhcs2-backup-all tools/vhcs2-httpd-logs-mngr insinto /var/www/vhcs2/engine/quota doins quota/vhcs2-dsk-quota insinto /var/www/vhcs2/engine/traffic doins traffic/vhcs2-srv-traff traffic/vhcs2-vrl-traff exeinto /var/www/vhcs2/engine/messager doexe messager/vhcs2-arpl-msgr cd ${S}/engine/setup exeinto /var/www/vhcs2/engine/setup doexe set-engine-permissions.sh set-gui-permissions.sh vhcs2-setup vhcs2-uninstall ### Install gui files cd ${S}/gui insinto /var/www/vhcs2/gui doins chk_login.php index.php lostpw.php dodir /var/www/vhcs2/gui/admin insinto /var/www/vhcs2/gui/admin doins admin/*.php dodir /var/www/vhcs2/gui/reseller insinto /var/www/vhcs2/gui/reseller doins reseller/*.php dodir /var/www/vhcs2/gui/client insinto /var/www/vhcs2/gui/client doins client/*.php dodir /var/www/vhcs2/gui/domain_default_page insinto /var/www/vhcs2/gui/domain_default_page doins domain_default_page/*.html dodir /var/www/vhcs2/gui/errordocs insinto /var/www/vhcs2/gui/errordocs doins errordocs/*.php dodir /var/www/vhcs2/gui/include insinto /var/www/vhcs2/gui/include doins include/*.php cp -R images ${D}/var/www/vhcs2/gui/ cp -R themes ${D}/var/www/vhcs2/gui/ cp -R tools ${D}/var/www/vhcs2/gui/ dodir /var/www/vhcs2/gui/orderpanel insinto /var/www/vhcs2/gui/orderpanel doins orderpanel/*.php ### Install config files # TODO ! Seems to be an Ugly conf cd ${S}/configs dodir /etc/vhcs2/ insinto /etc/vhcs2 doins vhcs2.conf # APACHE dodir /etc/vhcs2/apache insinto /etc/vhcs2/apache cp -R apache/backup ${D}/etc/vhcs2/apache cp -R apache/parts ${D}/etc/vhcs2/apache cp -R apache/working ${D}/etc/vhcs2/apache doins apache/httpd.conf # BIND dodir /etc/vhcs2/bind insinto /etc/vhcs2/bind cp -R bind/backup ${D}/etc/vhcs2/bind cp -R bind/parts ${D}/etc/vhcs2/bind cp -R bind/working ${D}/etc/vhcs2/bind doins bind/named.conf # Courier dodir /etc/vhcs2/courier insinto /etc/vhcs2/courier cp -R courier/backup ${D}/etc/vhcs2/courier cp -R courier/working ${D}/etc/vhcs2/courier doins courier/authdaemonrc courier/authmodulelist courier/imapd doins courier/pop3d courier/userdb # crontab dodir /etc/vhcs2/crontab insinto /etc/vhcs2/crontab cp -R crontab/backup ${D}/etc/vhcs2/crontab cp -R crontab/parts ${D}/etc/vhcs2/crontab cp -R crontab/working ${D}/etc/vhcs2/crontab doins crontab/crontab.conf # SQL dodir /etc/vhcs2/database insinto /etc/vhcs2/database doins database/*.sql # postfix dodir /etc/vhcs2/postfix cp -R postfix/backup ${D}/etc/vhcs2/postfix cp -R postfix/parts ${D}/etc/vhcs2/postfix cp -R postfix/vhcs2 ${D}/etc/vhcs2/postfix cp -R postfix/working ${D}/etc/vhcs2/postfix cp ${FILESDIR}/postfix-main.cf ${D}/etc/vhcs2/postfix/main.cf cp ${FILESDIR}/postfix-master.cf ${D}/etc/vhcs2/postfix/master.cf # ProFTPd dodir /etc/vhcs2/proftpd insinto /etc/vhcs2/proftpd cp -R proftpd/backup ${D}/etc/vhcs2/proftpd doins proftpd/proftpd.conf # Setup a real key cd ${D}/var/www/vhcs2/bin/ rpl.pl ${D}/var/www/vhcs2/gui/include/vhcs2-db-keys.php \ ${D}/var/www/vhcs2/engine/vhcs2-db-keys.pl ### - System wide configuration stuff newinitd ${FILESDIR}/${PN}-init.d ${PN} newconfd ${FILESDIR}/${PN}-conf.d ${PN} insinto /etc/logrotate.d doins ${S}/configs/logrotate/vhcs2 dodoc ${S}/CHANGELOG } pkg_postinst() { einfo "VHCS2 now installed on your computer !" einfo "" einfo "There still some step to have a running installation." einfo "Install missing Perl modules with g-cpan (emerge g-cpan):" einfo " g-cpan -i Crypt::PasswdMD5 Term::ReadPassword" einfo "" einfo "Setup Databases :" einfo " TODO" einfo "" einfo "now run vhcs setup tool :" einfo "/var/www/vhcs2/engine/setup/vhcs2-setup" } pkg_config() { # Now we had to replace the initial setup script einfo "Make sure that the /etc/vhcs2/vhcs2.conf file is setup correcly" einfo "If not, press Control-C now ..." # epause 4 # enewuser vmail # Postfix (MTA) # conf=`cat /etc/vhcs2/vhcs2.conf| egrep "^MTA" | # awk '{if($2 == "=") print "s:{" $1 "}:" $3 ":;"}'` # eval sed -i \'$conf\' /etc/vhcs2/postfix/main.cf # mta_uid=`cat /etc/vhcs2/vhcs2.conf| grep MTA_MAILBOX_UID_NAME | awk '{print $3}'` # mta_gid=`cat /etc/vhcs2/vhcs2.conf| grep MTA_MAILBOX_GID_NAME | awk '{print $3}'` # mta_hostname=`cat /etc/vhcs2/vhcs2.conf| grep SERVER_HOSTNAME | awk '{print $3}'` # mta_domain=`cat /etc/vhcs2/vhcs2.conf| grep MTA_DOMAIN | awk '{print $3}'` mta_uid=`getent passwd vmail | cut -d':' -f3` mta_gid=`getent passwd vmail | cut -d':' -f4` chown vmail:mail /var/www/vhcs2/engine/messager/vhcs2-arpl-msgr sed -i 's/xXMTA_UID_MAPXx/$mta_uid/' /etc/vhcs2/postfix/main.cf sed -i 's/xXMTA_GID_MAPXx/$mta_gid/' /etc/vhcs2/postfix/main.cf }