#! /bin/bash # # Determine package dependencies from installed-pkg-config file # # Copyright (C) 2006-2007 Arjan Oosting # # This program is free software; you can redistribute it and/or modify # it under the terms of either: # # 1) The terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # 2) BSD 3-clause license. # # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # * The names of contributors may not be used to endorse or promote # products derived from this software without specific prior # written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set -e . /usr/share/haskell-devscripts/Dh_Haskell.sh # PS4=" + dh_haskell_depends> " # set -x for pkg in `dh_listpackages $args`; do sfile=debian/$pkg.substvars touch $sfile hc=`package_hc ${pkg}` ext=`package_ext ${pkg}` case "$hc,$ext" in ghc,dev|ghc,prof|ghcjs,dev|ghcjs,prof) if [ -z "$files" ] ; then cfiles=`find_config_for_ghc $pkg` else cfiles="$files" fi if [ -z "$cfiles" ] ; then echo "dh_haskell_depends - no installed package description files found" >&2 exit 1 fi case "$ext" in dev) grep -v -a \ -e ^haskell:Extra-Depends \ -e ^haskell:Depends \ -e ^haskell:Recommends \ -e ^haskell:Suggests \ $sfile > $sfile.tmp || true depends="`depends_for_ghc ${hc} $cfiles`" echo "haskell:Depends=$depends" >> $sfile.tmp echo "haskell:Recommends=" >> $sfile.tmp doc=`echo $pkg | sed -e 's/-dev$/-doc/'` prof=`echo $pkg | sed -e 's/-dev$/-prof/'` grep -av '^#' debian/control | grep $doc > /dev/null \ && suggests="$doc" \ || suggests="" if grep -av '^#' debian/control | grep $prof > /dev/null then [ "$suggests" = "" ] \ && suggests="$prof" \ || suggests="$suggests, $prof" fi echo "haskell:Suggests=$suggests" >> $sfile.tmp ;; prof) grep -a -v \ -e ^haskell:Extra-Depends \ -e ^haskell:Depends \ -e ^haskell:Recommends \ -e ^haskell:Suggests \ $sfile > $sfile.tmp || true dev=`echo $pkg | sed -e 's/-prof$/-dev/'` version='(=${binary:Version})' depends="$dev ${version}, `depends_for_ghc_prof ${hc} $cfiles`" echo "haskell:Depends=$depends" >> $sfile.tmp echo "haskell:Recommends=" >> $sfile.tmp echo "haskell:Suggests=" >> $sfile.tmp ;; esac ;; hugs,*) grep -a -v \ -e ^haskell:Extra-Depends \ -e ^haskell:Depends \ -e ^haskell:Recommends \ -e ^haskell:Suggests \ $sfile > $sfile.tmp || true echo "haskell:Depends=`depends_for_hugs`" >> $sfile.tmp echo "haskell:Recommends=" >> $sfile.tmp echo "haskell:Suggests=" >> $sfile.tmp ;; ghc,doc|ghcjs,doc) grep -a -v \ -e ^haskell:Extra-Depends \ -e ^haskell:Depends \ -e ^haskell:Recommends \ -e ^haskell:Suggests \ $sfile > $sfile.tmp || true depends=haddock-interface-`haddock --interface-version` echo "haskell:Depends=$depends" >> $sfile.tmp recommends=` \ find debian/$pkg -name \*.html -exec hxwls -r \{\} \; \ | sed -e 's,^file:/,,' \ | grep ^/ \ | cut -d# -f1 \ | LANG=C sort -u \ | xargs -r dpkg -S \ | cut -d: -f1 \ | sort -u \ | sed -e :a -e '$!N; s/\n/, /; ta'` dev=`echo $pkg | sed -e 's/^[^-]\+-\(.\+\)-doc/lib${hc}-\1-dev/'` grep -av '^#' debian/control | grep $dev > /dev/null \ && recommends="$recommends, $dev" \ || recommends="$recommends" echo "haskell:Recommends=$recommends" >> $sfile.tmp echo "haskell:Suggests=$suggests" >> $sfile.tmp ;; *) cp $sfile $sfile.tmp ;; esac echo "haskell:Extra-Depends=`cat debian/extra-depends-${hc}`" >> $sfile.tmp mv $sfile.tmp $sfile done