# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="2" inherit linux-mod DESCRIPTION="ispCP Omega delivers a complete hosting automation appliance" HOMEPAGE="http://www.isp-control.net/" SRC_URI="mirror://sourceforge/project/ispcp/ispCP%20Omega/ispCP%20Omega%20${PV}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="ocr" DEPEND=">=sys-libs/db-4.7.25_p4 dev-libs/openssl" RDEPEND="${DEPEND} ocr? ( mail-filter/spamassassin-fuzzyocr ) app-forensics/chkrootkit sys-apps/rng-tools app-forensics/rkhunter app-admin/apachetop app-crypt/mcrypt app-text/htmltidy dev-lang/php[cgi,crypt,ctype,filter,ftp,gd,gdbm,mysql,pdo,session,simplexml,ssl,truetype] dev-libs/geoip dev-libs/libIDL dev-libs/apr-util[mysql] dev-libs/cyrus-sasl[authdaemond,mysql] dev-perl/Crypt-Blowfish dev-perl/Mail-SPF dev-perl/Encode-Detect dev-perl/Crypt-PasswdMD5 dev-perl/IP-Country dev-perl/Mail-DomainKeys dev-perl/Net-Ident dev-perl/Term-ReadPassword dev-perl/XML-Parser dev-perl/crypt-cbc dev-perl/MIME-tools dev-perl/DateManip dev-perl/IO-Tty dev-perl/Parse-Yapp dev-perl/XML-DOM dev-python/pyzor mail-filter/amavisd-new[courier,dkim,mysql,razor,spamassassin] mail-filter/dcc mail-filter/postgrey mail-filter/procmail mail-mta/postfix[-mysql,-pam,sasl,ssl] media-libs/gd[jpeg,png,truetype] net-firewall/iptables net-dns/bind[idn,mysql,ssl] net-dns/bind-tools[idn] net-ftp/proftpd[mysql,softquota,ssl] net-libs/courier-authlib[crypt,gdbm,-mysql,-pam] net-mail/courier-imap[gdbm] sys-devel/gettext www-apache/mod_fcgid dev-lang/php[apache2,berkdb,bzip2,cgi,cli,crypt,ctype,curl,exif,filter,gd,gdbm,iconv,imap,ipv6,mysql,mysqli,ncurses,nls,pcre,pdo,readline,reflection,session,simplexml,sockets,spl,ssl,threads,truetype,unicode,xml,zip,zlib] www-client/lynx[ssl] www-servers/apache[apache2_modules_actions,apache2_modules_alias,apache2_modules_auth_basic,apache2_modules_auth_digest,apache2_modules_authn_anon,apache2_modules_authn_dbd,apache2_modules_authn_dbm,apache2_modules_authn_default,apache2_modules_authn_file,apache2_modules_authz_dbm,apache2_modules_authz_default,apache2_modules_authz_groupfile,\ apache2_modules_authz_host,apache2_modules_authz_owner,apache2_modules_authz_user,apache2_modules_autoindex,apache2_modules_dav,apache2_modules_dav_fs,apache2_modules_dav_lock,apache2_modules_dbd,apache2_modules_deflate,apache2_modules_dir,apache2_modules_env,apache2_modules_expires,apache2_modules_ext_filter,apache2_modules_filter,apache2_modules_headers,apache2_modules_ident,apache2_modules_imagemap,apache2_modules_include,apache2_modules_info,apache2_modules_log_config,apache2_modules_logio,apache2_modules_mime,apache2_modules_mime_magic,\ apache2_modules_negotiation,apache2_modules_proxy,apache2_modules_proxy_ajp,apache2_modules_proxy_balancer,apache2_modules_proxy_connect,apache2_modules_proxy_http,apache2_modules_rewrite,apache2_modules_setenvif,apache2_modules_speling,apache2_modules_status,apache2_modules_unique_id,apache2_modules_userdir,apache2_modules_usertrack,apache2_modules_vhost_alias,apache2_mpms_worker,ssl,threads,suexec] mail-filter/policyd-weight www-misc/awstats[apache2,geoip] dev-db/mysql[ssl] app-admin/logrotate www-apache/mod_cband mail-filter/policyd mail-filter/spamassassin[mysql] app-antivirus/clamav mail-filter/postgrey sys-fs/quota app-arch/zip app-arch/unzip virtual/cron sys-libs/db[tcl] app-admin/syslog-ng[ssl] sys-apps/lsb-release" #force-cgi-redirect pkg_setup() { ebegin "Checking kernel config" linux-info_pkg_setup linux_chkconfig_present QUOTA eend $? if [[ $? -ne 0 ]] ; then eerror "ispCP needs QUOTA support!" eerror "Please enable QUOTA support in your kernel config, found at:" eerror eerror " File systems" eerror " [*] Quota support" eerror eerror "and recompile your kernel ..." die "QUOTA support not detected!" fi } src_unpack(){ unpack "${A}" cd "${S}" #epatch "${FILESDIR}/ispcp-${PV}_ispcp_daemon.diff" #epatch "${FILESDIR}/ispcp-${PV}_set-gui-permissions.sh.diff" } # src_compile(){ # emake INST_PREF="${D}" -f Makefile.gentoo || die "Failed to compile" # } src_install(){ emake INST_PREF="${D}" -f Makefile.gentoo install || die "make failed" #insinto /etc/conf.d/ #newins "${FILESDIR}/ispcp-${PV}_apache2" "apache2" || die "Failed to install /etc/conf.d/apache" #newins "${FILESDIR}/ispcp-${PV}_postgrey" "postgrey" || die "Failed to install /etc/conf.d/postgrey" insinto /etc/apache2/modules.d/ #newins "${FILESDIR}/ispcp-${PV}_10_mod_cband.conf" "10_mod_cband.conf" || die "Failed to install /etc/apache2/modules.d/10_mod_cband.conf" #newins "${FILESDIR}/ispcp-${PV}_00_default_settings.conf" "00_default_settings.conf" || die "Failed to install /etc/apache2/modules.d/00_default_settings.conf" insinto /etc/sasl2/ newins "${FILESDIR}/ispcp-${PV}_smtpd.conf" #sed -e 's/-D PHP5/-D FCGID/' -i "${D}/etc/conf.d/apache2" || die "Failed to change ${D}/etc/conf.d/apache2" } pkg_postinst() { einfo einfo "You can find these steps here: http://isp-control.net/documentation/doku.php?id=start:installation:gentoo" einfo "The ebuild will try to do most of this for you" einfo einfo "1. Modify Apache's configuration." einfo " Edit /etc/conf.d/apache2 you need to add these to the APACHE2_OPTS line" einfo " -D PROXY -D CBAND -D FCGID" einfo einfo " Edit /etc/apache2/modules.d/10_mod_cband.conf and add allow from etc.." einfo " so no one can reset your clients stats" einfo " " einfo " SetHandler cband-status" einfo " Order deny,allow" einfo " Deny from all" einfo " Allow from 127.0.0.1" einfo " " einfo einfo "2. Change POSTGREY_PORT in /etc/conf.d/postgrey to 60000" einfo einfo "3. Change \"\$myhostname\" in /etc/amavisd.conf to your FQDN" einfo einfo "4. Setup Quoto support" einfo " Add \"usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0\" to fstab for \${YOUR_MOUNTPOINT}" einfo " # touch \${YOUR_MOUNTPOINT}/{aquota.user,aquota.group}" einfo " # chmod 600 \${YOUR_MOUNTPOINT}/{aquota.user,aquota.group}" einfo einfo "5. Create SSL certificates to use IMAP/POP3/FTP over SSL" einfo " Edit /etc/courier-imap/{imapd.cnf,pop3d.cnf}, run:" einfo " # mkimapdcert && mkpop3dcert" einfo einfo " # cd /etc/proftpd/" einfo " # openssl genrsa -des3 -out ssl.key 5120" einfo " # openssl rsa -noout -text -in ssl.key" einfo " # openssl req -new -x509 -days 365 -key ssl.key -out ssl.crt" einfo " # openssl x509 -noout -text -in ssl.crt" einfo " # cp ssl.key ssl.key.orig" einfo " # openssl rsa -in ssl.key.orig -out ssl.key" einfo " Uncomment \"TLSEngine on\" in /etc/proftpd/proftpd.conf" einfo einfo "6. Setup MySQL" einfo " # /usr/bin/mysql_install_db" einfo " # /etc/init.d/mysql restart" einfo " # /usr/bin/mysql_secure_installation" einfo " # /etc/init.d/mysql restar" einfo einfo "7. It's time to set up the frontend. Change into the engine directory:" einfo " # cd /var/www/ispcp/engine/setup" einfo " # /etc/init.d/rngd start" einfo einfo "8. Start the engine setup:" einfo " # ./ispcp-setup or when upgrading run ./ispcp-update" einfo einfo "9. Grant 'apache' access to the ispcp GUI" einfo " # chmod -R g+rw /var/www/ispcp/gui/phptmp" einfo " # chmod -R g+rw /var/www/ispcp/gui/tools/webmail/data" einfo " # chmod -R g+rw /var/www/ispcp/gui/include/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer" einfo einfo "10. To disable the annoying admin email notices, edit" einfo " /var/www/ispcp/gui/include/ispcp-lib.php on line 141 change" einfo "\$cfg['LOG_LEVEL'] = E_USER_NOTICE; to \$cfg['LOG_LEVEL'] = E_USER_ERROR;" einfo einfo "11. Start required services, and set them to start on boot:" einfo " You can run:" einfo " # emerge --config =${CATEGORY}/${PF}" einfo " instead of doing it manually" einfo einfo " # rc-update add vixie-cron default" einfo " # rc-update add syslog-ng default" einfo " # rc-update add apache2 default" einfo " # rc-update add mysql default" einfo " # rc-update add named default" einfo " # rc-update add postfix default" einfo " # rc-update add proftpd default" einfo " # rc-update add courier-authlib default" einfo " # rc-update add courier-imapd default" einfo " # rc-update add courier-pop3d default" einfo " # rc-update add courier-imapd-ssl default" einfo " # rc-update add courier-pop3d-ssl default" einfo " # rc-update add amavisd default" einfo " # rc-update add clamd default" einfo " # rc-update add policyd default" einfo " # rc-update add policyd-weight default" einfo " # rc-update add saslauthd default" einfo " # rc-update add spamd default" einfo " # rc-update add postgrey default" einfo " # rc-update add quota boot" einfo " # rc-update add rngd boot" einfo " # rc-update add ispcp_daemon default" einfo " # rc-update add ispcp_network default" einfo einfo " # /etc/init.d/vixie-cron restart" einfo " # /etc/init.d/syslog-ng restart" einfo " # /etc/init.d/rngd restart" einfo " # /etc/init.d/apache2 restart" einfo " # /etc/init.d/mysql restart" einfo " # /etc/init.d/named restart" einfo " # /etc/init.d/postfix restart" einfo " # /etc/init.d/proftpd restart" einfo " # /etc/init.d/courier-authlib restart" einfo " # /etc/init.d/courier-imapd restart" einfo " # /etc/init.d/courier-pop3d restart" einfo " # /etc/init.d/courier-imapd-ssl restart" einfo " # /etc/init.d/courier-pop3d-ssl restart" einfo " # /etc/init.d/amavisd restart" einfo " # /etc/init.d/clamd restart" einfo " # /etc/init.d/policyd restart" einfo " # /etc/init.d/policyd-weight restart" einfo " # /etc/init.d/saslauthd restart" einfo " # /etc/init.d/spamd restart" einfo " # /etc/init.d/postgrey restart" einfo " # /etc/init.d/ispcp_daemon restart" einfo " # /etc/init.d/ispcp_network restart" einfo } pkg_config() { einfo einfo "Adding required services to the default runlevel" rc-update add vixie-cron default || die "Failed to add vixie-cron to runlevel" rc-update add syslog-ng default || die "Failed to add syslog-ng to runlevel" rc-update add apache2 default || die "Failed to add apache2 to runlevel" rc-update add mysql default || die "Failed to add mysql to runlevel" rc-update add named default || die "Failed to add named to runlevel" rc-update add postfix default || die "Failed to add postfix to runlevel" rc-update add proftpd default || die "Failed to add proftpd to runlevel" rc-update add courier-authlib default || die "Failed to add courier-authlib to runlevel" rc-update add courier-imapd default || die "Failed to add courier-imapd to runlevel" rc-update add courier-pop3d default || die "Failed to add courier-pop3d to runlevel" rc-update add courier-imapd-ssl default || die "Failed to add courier-imapd-ssl to runlevel" rc-update add courier-pop3d-ssl default || die "Failed to add courier-pop3d-ssl to runlevel" rc-update add amavisd default || die "Failed to add amavisd to runlevel" rc-update add clamd default || die "Failed to add clamd to runlevel" rc-update add policyd default || die "Failed to add policyd to runlevel" rc-update add policyd-weight default || die "Failed to add policyd-weight to runlevel" rc-update add saslauthd default || die "Failed to add saslauthd to runlevel" rc-update add spamd default || die "Failed to add spamd to runlevel" rc-update add postgrey default || die "Failed to add postgrey to runlevel" rc-update add quota boot || die "Failed to add quota to runlevel" rc-update add rngd boot || die "Failed to add rngd to runlevel" rc-update add ispcp_daemon default || die "Failed to add ispcp_daemon to runlevel" rc-update add ispcp_network default || die "Failed to add ispcp_network to runlevel" einfo einfo "Starting all required services" /etc/init.d/vixie-cron restart || die "Failed to restart vixie-cron" /etc/init.d/syslog-ng restart || die "Failed to restart syslog-ng" /etc/init.d/rngd start || die "Failed to restart rngd" /etc/init.d/apache2 restart || die "Failed to restart apache2" /etc/init.d/mysql restart || die "Failed to restart mysql" /etc/init.d/named restart || die "Failed to restart named" /etc/init.d/postfix restart || die "Failed to restart postfix" /etc/init.d/proftpd restart || die "Failed to restart proftpd" /etc/init.d/courier-authlib restart || die "Failed to restart courier-authlib" /etc/init.d/courier-imapd restart || die "Failed to restart courier-imapd" /etc/init.d/courier-pop3d restart || die "Failed to restart courier-pop3d" /etc/init.d/courier-imapd-ssl restart || die "Failed to restart courier-imapd-ssl" /etc/init.d/courier-pop3d-ssl restart || die "Failed to restart courier-pop3d-ssl" /etc/init.d/amavisd restart || die "Failed to restart amavisd" /etc/init.d/clamd restart || die "Failed to restart clamd" /etc/init.d/policyd restart || die "Failed to restart policyd" /etc/init.d/policyd-weight restart || die "Failed to restart policyd-weight" /etc/init.d/saslauthd restart || die "Failed to restart saslauthd" /etc/init.d/spamd restart || die "Failed to restart spamd" /etc/init.d/postgrey restart || die "Failed to restart postgrey" /etc/init.d/quota restart || die "Failed to restart quota" einfo einfo "Starting ispCP daemon and network" /etc/init.d/ispcp_daemon restart || die "Failed to restart ispcp_daemon" /etc/init.d/ispcp_network restart || die "Failed to restart ispcp_network" einfo }