#!/bin/sh # # dh-make-pear creates a debian package from a pear package # # Copyright (C) 2005-2006 by Uwe Steinmann # under the GNU GPL license version 2.0 or 2.1. # You should have received a copy of the GPL license # along with this program if you did not you can find it # at http://www.gnu.org/. PROGNAME=dh-make-pear PROGVERSION=0.2.0 PREFIX=/usr PHP_PKG_LOWNAME=mdb2 VERSION=2.4.0 DEBPACKAGEPREFIX=php DEBTEMPDIR=${PREFIX}/share/dh-make-php/pear.template PACKAGEDOCFILES="README readme CREDITS TODO AUTHORS" # if you change the examples directory make sure to adjust the # regular expression to set the PACKAGEDOCFILES PACKAGEEXPFILES="examples" # There has been versions of xmlstarlet which were called xml # instead of xmlstarlet if [ -x /usr/bin/xmlstarlet ]; then XMLSTARLET=/usr/bin/xmlstarlet else XMLSTARLET=/usr/bin/xml fi DEBMAINTAINER="Fuleki Miklos " DEPENDS= DEPARCH=all . ${PREFIX}/share/dh-make-php/dh-make-php.lib # usage() {{{ # print summary of options usage() { cat < Usage: ${PROGNAME} [options] pear-package pear-package is a tgz file as it is downloaded by 'pear download'. Options: --help | -h show this usage information --version | -v show version of program --maintainer maintainer of the debian package --arch set architecture (defaults to 'all') --depends set more depends aside php --prefix set prefix for package name (default is '${DEBPACKAGEPREFIX}') --templatedir set alternative directory for templates (default is ${DEBTEMPDIR}) eof } # }}} # command line options {{{ if [ $# = 0 ]; then usage exit 0 fi while case $1 in --help|-h) # print usage usage exit 0 ;; --version|-v) # show version echo ${PROGVERSION} exit 0 ;; --maintainer) # set maintainer of debian package DEBMAINTAINER="$2"; shift ;; --arch) # set architecture of debian package DEBARCH="$2"; shift ;; --depends) # set extra depends for debian package DEPENDS=", $2"; shift ;; --prefix) # set prefix for name of debian package DEBPACKAGEPREFIX="$2"; shift ;; --templatedir) # set alternative template dir DEBTEMPDIR="$2"; shift ;; "") break ;; *) PEARPACKAGENAME="$1" break ;; esac do test $# -gt 0 && shift; done # }}} if [ -n "${PEARPACKAGENAME}" ]; then if [ -f ${PEARPACKAGENAME} ]; then tar xzf ${PEARPACKAGENAME} else if TEMPMSG=$(pear download ${PEARPACKAGENAME} 2> /dev/null); then echo ${TEMPMSG} PEARPACKAGENAME=$(echo ${TEMPMSG} | awk -F ' ' '{print $2'}) tar xzf ${PEARPACKAGENAME} else echo "Downloading pear package '${PEARPACKAGENAME}' failed!"; echo "Check http://pear.php.net/ for available packages."; exit 0 fi fi else usage exit 0 fi # get information about package from package.xml eval_package echo "Creating debian source package: ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}" echo "Upstream is: ${UPSTREAM}" get_maintainer if [ -d ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION} ] ; then echo "Directory '${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}' already exits." exit fi ln -s ${PEARPACKAGENAME} ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}_${VERSION}.orig.tar.gz mkdir ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION} mv ${PHP_PKG_NAME}-${VERSION} ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION} mv package.xml ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION} #tar czf ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}_${VERSION}.orig.tar.gz ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION} mkdir -p ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian cp ${DEBTEMPDIR}/compat ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian cp ${DEBTEMPDIR}/dirs ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian install_docfiles install_expfiles PACKAGEXML=${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/package.xml sed -e "s/##date##/`(LC_ALL=C; date -R)`/g" \ -e "s/##maintainer##/${DEBMAINTAINER}/g" \ -e "s/##upstream##/${UPSTREAM}/g" \ -e "s/##license##/${LICENSE}/g" \ -e "s/##pearpkgname##/${PHP_PKG_NAME}/g" \ ${DEBTEMPDIR}/copyright > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/copyright if [ -n "${LICENSEFILE}" ]; then cat "${LICENSEFILE}" >> ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/copyright fi sed -e "s/##packagename##/${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}/g" \ -e "s/##maintainer##/${DEBMAINTAINER}/g" \ -e "s§##summary##§${SUMMARY}§g" \ -e "s/##depends##/${DEPENDS}/g" \ -e "s/##architecture##/${DEPARCH}/g" \ ${DEBTEMPDIR}/control > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/control xsltproc --nonet --novalid --param Element "/*/description" ${PREFIX}/share/dh-make-php/xslt/common.xsl ${PACKAGEXML} | fold -s -w 70|sed -e "s§^[ \t]*$§.§g" -e "s§^§ §g" >> ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/control # sgrep -e '""__""' ${PACKAGEXML} | fold -s -w 70|sed -e "s§^[ \t]*$§.§g" -e "s§^§ §g" >> ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian /control sed -e "s/##packagename##/${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}/g" \ -e "s/##version##/${VERSION}/g" \ -e "s/##pearpkgname##/${PHP_PKG_NAME}/g" \ ${DEBTEMPDIR}/rules > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/rules chmod 755 ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/rules sed -e "s/##packagename##/${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}/g" \ -e "s/##date##/`(LC_ALL=C; date -R)`/g" \ -e "s/##maintainer##/${DEBMAINTAINER}/g" \ -e "s/##version##/${VERSION}/g" \ ${DEBTEMPDIR}/changelog > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/changelog sed -e "s/##packagename##/${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}/g" \ -e "s/##date##/`(LC_ALL=C; date -R)`/g" \ -e "s/##maintainer##/${DEBMAINTAINER}/g" \ ${DEBTEMPDIR}/README.Debian > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/README.Debian sed -e "s/##pearpkgname##/${PHP_PKG_NAME}/g" \ ${DEBTEMPDIR}/watch > ${DEBPACKAGEPREFIX}-${PHP_PKG_LOWNAME}-${VERSION}/debian/watch