# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/www-apps/otrs/otrs-1.3.1.ebuild,v 1.1 2004/09/26 12:40:40 rl03 Exp $ inherit webapp eutils S=${WORKDIR}/${PN} # Bugs so far: # # - RELEASE is looked at whenever you go to otrs/index.pl so it needs to be # copied to the vhost directory or the application needs to be modified to # look for it in the /usr/share/doc directory # # - Apache2 w/ Mod_perl seems to work but requires some significant editing # until I have template files or a automated way to get the necessary files # to work with webapp-config or just the ebuild itself. The files that need to # be edited or create are: # # - 76_otrs.conf which goes in /etc/apache/conf/modules.d and contains # the information usually placed in the apache conf file. This works well # for a single installation which I'm currently testing but won't function # well for multiple installations so need to find a work around for that. # # - apache2-perl-startup.pl needs to be edited to reflect the actual # location of otrs when it is installed. As with the file above changing # the default script to point to the actual location works but this does # not work with webapp-config. I am not sure if or how mod_perl works # thus I am not sure if we were to call this file multiple times once per # vhost installation if that would bork things or not. # # # added GD to iuse its used for optional stats generation IUSE="mysql postgres fastcgi apache2 ldap gd" DESCRIPTION="OTRS is an Open source Ticket Request System" HOMEPAGE="http://otrs.org/" SRC_URI="ftp://ftp.gwdg.de/pub/misc/${PN}/${P}-01.tar.bz2 http://otrs.behrsolutions.com/${P}-01.tar.bz2 ftp://ftp.samurai.com/pub/${PN}/${P}-01.tar.bz2 ftp://ftp.otrs.org/pub/${PN}/${P}-01.tar.bz2 http://ftp.gwdg.de/pub/misc/${PN}/${P}-01.tar.bz2" KEYWORDS="x86 ~ppc" DEPEND=" =dev-lang/perl-5* dev-perl/Date-Pcalc dev-perl/DBI dev-perl/Digest-MD5 dev-perl/Email-Valid dev-perl/IO-stringy dev-perl/MIME-Base64 dev-perl/MIME-tools dev-perl/MailTools dev-perl/Net-DNS dev-perl/libnet dev-perl/Authen-SASL " # This DEPEND could be optimized but hasn't been, I've actually added some # packages which were not present (Digest-MD5, MIME-Base64, and libnet) but # which were a depend of the software. MIME-tools will pull in: # # dev-perl/libnet # dev-perl/MailTools # dev-perl/IO-stringy # dev-perl/Digest-MD5 # dev-perl/MIME-Base64 # # So theoritically we don't need to call these by themselves though I # believe it is best practice to do so. MIME-Base64 isn't strictly needed # unless we are using perl less than 5.8 # Following are packaged with PERL so shouldn't need to be called but # are noted because they are required # # dev-perl/CGI RDEPEND=" ${DEPEND} virtual/mta ldap? ( dev-perl/perl-ldap ) mysql? ( =dev-db/mysql-4* dev-perl/DBD-mysql ) postgres? ( dev-db/postgresql dev-perl/DBD-Pg ) fastcgi? ( dev-perl/FCGI net-www/mod_fastcgi ) mod_perl2? ( >=dev-perl/mod_perl-1.99.* ) apache2? ( >=net-www/apache-2 ) !apache2? ( =net-www/apache-1* =dev-perl/libapreq-1* ) gd? ( dev-perl/GD dev-perl/GDTextUtil dev-perl/GDGraph ) " # Add in mod perl support but note that it isn't stable # We don't need openldap as a rdepend since that will be pulled # in other packages, perl-ldap doesn't require openldap though # likely if apache isn't pulled in the ldap use flag will pull # openldap in LICENSE="GPL-2" # Per docs, to install you do: # # 1) install dependancies # 2) Create otrs user # - add to webserver group # 3) Untar/gz the otrs app into the homedirectory above overwriting said # home directory # 4) Copy dist files to real files so they can be used # 5) Check if all modules are installed # 6) Setup Webserver # 7) Check and set file perms using tool # 8) Setup database src_compile() { cd ${S} cp ${S}/Kernel/Config.pm.dist ${S}/Kernel/Config.pm # change everything with a name.dist to name cd ${S}/Kernel/Config/ for foo in *.dist; do cp ${foo} `basename ${foo} .dist`; done } pkg_setup() { webapp_pkg_setup einfo einfo "File locations have changed. OTRS now installs into" einfo "/var/www//${P}" einfo enewuser otrs -1 /bin/false /dev/null apache # OTRS does run in mod_perl2 and since the fast cgi really didn't # do anything I modifed the old warning to say this if use apache2; then ewarn "mod_perl2 isn't ready for prime time, users beware" fi } src_install() { webapp_src_preinst # Handle documentation files # # Note: Doc files go into /usr/share/doc/${PN} as normal, they do not # get reinstalled for every vhost for doc in INSTAL* UPGRADING TODO COPYING CHANGES RE* CREDITS; do dodoc ${doc} rm -f ${doc} done # couldn't get this to go into subdirectories with normal commands so # am stuck using this kludge mv doc/manual ${D}/usr/share/doc/${PF}/doc mv doc/otrs-database.dia ${D}/usr/share/doc/${PF}/doc docinto doc for doc in doc/*; do dodoc ${doc} # Don't like this but works, need to find better way to # destory this directory so it doesn't get copied rm -rf ${doc} done # Need to make these none . files but this works for now docinto receiving_emails-sample_files for docsamples in .fetchmailrc .mailfilter .procmailrc; do dodoc ${docsamples} rm -f ${docsamples} done # use this as a hack to get rid of files which we won't need for docdelete in scripts/auto_build* scripts/auto_docbuild* scripts/fedora-* scripts/redhat-* scripts/suse-*; do if use apache2; then docdelete="${docdelete} scripts/apache-*" fi if use !apache2; then docdelete="${docdelete} scripts/apache2-*" fi # again don't like this type of delete but not sure what else to do rm -rf ${docdelete} done # Because pretty much everything in the home directory except the # above files needs to be used for OTRS in the application we'll # keep everything together. # Copy app's main files einfo "Installing OTRS files." cp -r . ${D}${MY_HOSTROOTDIR}/${PN} # We do need to identify configuration files that shouldn't be overwritten # if they exist this gets all the actual and potential configuration files local configs="Kernel/Config.pm Kernel/Config/*.pm" for file in ${configs}; do webapp_configfile ${MY_HOSTROOTDIR}/${PN}/${file} done # Add the post installation instructions webapp_postinst_txt en ${FILESDIR}/postinstall-en-${PV}.txt # All done engage the AI webapp_src_install }