# Distributed under the terms of the GNU General Public License v2 # $Header: MY_P=${P/netbackup/NetBackup} DESCRIPTION="Veritas NetBackup" HOMEPAGE="http://www.symantec.com/business/netbackup" SRC_URI="${MY_P/-/_}_CLIENTS2.tar.gz doc? (${MY_P/-/_}_Docs.tar.gz)" MY_DOWNLOAD_URL="https://fileconnect.symantec.com" LICENSE="commersial" SLOT="0" IUSE="" KEYWORDS="-amd64 ~ia64 x86" IUSE="java doc" RESTRICT="fetch nostrip" #I dont see why we would need the xorg crap DEPEND="sys-libs/lib-compat virtual/libstdc++ sys-apps/xinetd virtual/jre" RDEPEND="${DEPEND}" pkg_nofetch() { einfo "The following files need to be aquired from ${MY_DOWNLOAD_URL}" einfo "and place the file in ${DISTDIR}" einfo "\t${MY_P/-/_}_CLIENTS2.tar.gz" if use doc ; then einfo "\t${MY_P/-/_}_Docs.tar.gz" fi } src_unpack() { # FIXME Use sed to clean off that date at the end of the folder? MY_WORKDIR="${WORKDIR}/NB_${PV/./}_CLIENTS2_20070723" if [ ! -d ${MY_S} ] ; then die "Expected extraction directory does not exist." fi unpack "${MY_P/-/_}_CLIENTS2.tar.gz" if use doc ; then unpack ${MY_P/-/_}_Docs.tar.gz fi if use x86 ; then # Maybe amd64 useing bin 32 libs. cd "${MY_WORKDIR}/NBClients/anb/Clients/usr/openv/netbackup/client/Linux/RedHat2.6" tar xzf "client_bin.tar.Z" -C ${WORKDIR} elif use ia64 ; then cd "${MY_WORKDIR}/NBClients/anb/Clients/usr/openv/netbackup/client/Linux-IA64/RedHat2.6" tar xzf "client_bin.tar.Z" -C ${WORKDIR} else die "Unknwon archicture" fi cp -f version ${WORKDIR}/openv cp -f tar ${WORKDIR}/openv # FIXME if java? cd "${MY_WORKDIR}/NBClients/anb/Clients/usr/openv" tar xzf "NB-Java.tar.Z" -C ${WORKDIR}/openv cp -Rf netbackup/help ${WORKDIR}/openv/netbackup } src_install() { # FIXME if use java ? dodir /usr/openv mv ${WORKDIR}/openv/java ${D}/usr/openv # Setup some destionation dirs dodir /usr/openv/netbackup dodir /usr/openv/netbackup/dbext dodir /usr/openv/netbackup/hardlink_info dodir /usr/openv/netbackup/tir_info dodir /usr/openv/netbackup/logs dodir /usr/openv/netbackup/logs/user_ops mv ${WORKDIR}/openv/netbackup/help ${D}/usr/openv/netbackup # Take care of bpcd and vnetd first. Then the libs. mv -f ${WORKDIR}/openv/netbackup/bin ${D}/usr/openv/netbackup mv -f ${D}/usr/openv/netbackup/bin/bpcd_new ${D}/usr/openv/netbackup/bin/bpcd chmod 500 ${D}/usr/openv/netbackup/bin/bpcd # Fix what looks like another compatiblity issue cd ${D}/usr/openv/netbackup/bin ln -s bpbackup bparchive # Fix what looks like another compatiblity issue cd ${D}/usr/openv/netbackup/bin/goodies ln -s /usr/openv/netbackup/bin/bp.kill_all bp.kill_all # FIXME if use java ? ln -s /usr/openv/java/jbpSA jbpSA ln -s /usr/openv/java/jnbSA jnbSA # FIXME prevent overwrite if file exists, should be handled by etc-update or such. cp ${WORKDIR}/openv/netbackup/nblog.conf.template ${D}/usr/openv/netbackup sed -e s/YYYYY/"so"/ ${D}/usr/openv/netbackup/nblog.conf.template > ${D}/usr/openv/netbackup/nblog.conf chmod 644 ${D}/usr/openv/netbackup/nblog.conf* # Copy version data to netbackup client folder cp ${WORKDIR}/openv/version ${D}/usr/openv/netbackup/bin chmod 444 ${D}/usr/openv/netbackup/bin/version cp ${WORKDIR}/openv/tar ${D}/usr/openv/netbackup/bin mv ${WORKDIR}/openv/resources ${D}/usr/openv dodir /usr/openv/share dodir /usr/openv/tmp dodir /usr/openv/logs mv ${WORKDIR}/openv/msg ${D}/usr/openv mv ${WORKDIR}/openv/bin ${D}/usr/openv mv ${D}/usr/openv/bin/vnetd_new ${D}/usr/openv/bin/vnetd mv ${WORKDIR}/openv/var ${D}/usr/openv dodir /usr/openv/var/global dodir /usr/openv/var/vxss dodir /usr/openv/var/vxss/credentials dodir /usr/openv/var/vnetd chmod 700 ${D}/usr/openv/var/vnetd for template in ${D}/usr/openv/var/auth/template.*.txt do libpath=${D}/usr/openv/var/auth/${template/template./} cp -f ${template} ${D}/usr/openv/var/auth/${libpath##*/} chmod 644 ${D}/usr/openv/var/auth/${libpath##*/} done # Create init scripts newinitd "${FILESDIR}"/nbclient.initd nbclient insinto /etc/xinetd.d newins "${FILESDIR}"/bpcd.xinetd bpcd newins "${FILESDIR}"/bpjava-msvc.xinetd bpjava-msvc newins "${FILESDIR}"/vnetd.xinetd vnetd newins "${FILESDIR}"/vopied.xinetd vopied # Work out all the libraries dodir /usr/lib/openv for lib in ${WORKDIR}/openv/lib/*.so_new do libpath=${D}/usr/lib/${lib/_new/} mv -f ${lib} ${D}/usr/lib/openv/${libpath##*/} chmod 555 ${D}/usr/lib/openv/${libpath##*/} done # ACE libraries are versioned. Need a different loop for them. # VxUL libraries are now versioned. Need a different loop for them. for lib in ${WORKDIR}/openv/lib/*.so.?_new do libpath=${D}/usr/lib/${lib/_new/} mv -f ${lib} ${D}/usr/lib/openv/${libpath##*/} chmod 555 ${D}/usr/lib/openv/${libpath##*/} done # The rest of the libraries for lib in ${WORKDIR}/openv/lib/*.so do libpath=${D}/usr/lib/${lib/_new/} mv -f ${lib} ${D}/usr/lib/openv/${libpath##*/} chmod 555 ${D}/usr/lib/openv/${libpath##*/} done for lib in ${WORKDIR}/openv/lib/*.so.? do libpath=${D}/usr/lib/${lib/_new/} mv -f ${lib} ${D}/usr/lib/openv/${libpath##*/} chmod 555 ${D}/usr/lib/openv/${libpath##*/} done # Scheduling broke backward compatibility as far as the JNI # library name. Create a symbolic link as a workaround. cd ${D}/usr/lib/openv ln -s libvxSigScheduleJNI2.so libSigScheduleJNI.so } pkg_config() { einfo "Updating /etc/services" { grep -v ^bpcd /etc/services | grep -v ^vopied | grep -v nbdb | grep -v nomdb ; echo -e "bpcd\t\t13782/tcp\t\t\t# VERITAS NetBackup" ; echo -e "bpcd\t\t13782/udp\t\t\t# VERITAS NetBackup" ; echo -e "vopied\t\t13783/tcp\t\t\t# VOPIED Protocol" ; echo -e "vopied\t\t13783/udp\t\t\t# VOPIED Protocol" ; echo -e "nbdb\t\t13785/tcp\t\t\t# NetBackup Database" ; echo -e "nbdb\t\t13785/udp\t\t\t# NetBackup Database" ; echo -e "nomdb\t\t13786/tcp\t\t\t# Veritas-nomdb" ; echo -e "nomdb\t\t13786/udp\t\t\t# Veritas-nomdb" } > /etc/services } pkg_postinst() { einfo "Please check the following files and enable the ones you need." einfo "\t/etc/xinetd.d/bpcd" einfo "\t/etc/xinetd.d/bpjava-msvc" einfo "\t/etc/xinetd.d/vnetd" einfo "\t/etc/xinetd.d/vopied" }