haskell-devscripts/0000755000000000000000000000000012251716011011547 5ustar haskell-devscripts/dh_haskell_provides.pod0000644000000000000000000000173512173013727016301 0ustar =head1 NAME dh_haskell_provides - calculates Haskell virtual package names on Cabalized libraries =head1 SYNOPSIS B [S>] [B<-X>I] [B<--exclude=>I] [S> ...] =head1 DESCRIPTION dh_haskell_provides is a debhelper program that calculates the correct virtual package to provide, so that dependencies can guarantee ABI stability. For a package with an idea of package-version-longhashstring, it generates a virtual package of the form libghc-package-dev-version-longh for the -dev package and libghc-package-prof-version-longh for the prof package respectively. This script writes the debian/$package.substvars file, including in it the haskell:Provides. So, to use this package, include in the Provides: field in debian/control ${haskell:Provides}. =head1 SEE ALSO L L L =head1 AUTHOR Joachim Breitner Based on ideas in dh_ocaml. haskell-devscripts/dh_haskell_shlibdeps.pod0000644000000000000000000000175712217357220016425 0ustar =encoding utf8 =head1 NAME dh_haskell_shlibdeps - calculates Haskell external dependencies on Cabalized libraries =head1 SYNOPSIS B [S>] [B<-X>I] [B<--exclude=>I] [S> ...] =head1 DESCRIPTION dh_haskell_shlibdeps is a debhelper program that helps with calculating external dependencies for building Haskell libraries. It automates building libraries for the different supported Haskell systems in Debian. This script writes the debian/$package.substvars file, including in it the shlibs:Depends variable. So, to use this package, include in the Depends: field in debian/control ${shlibs:Depends}. =head1 BUGS hugs and ghc are the only supported targets at the moment. Cabal does not yet support nhc98. =head1 SEE ALSO L L L =head1 AUTHOR Marco Túlio Gontijo e Silva Based on ideas in mk-haskell-depends by Martin Sjögren haskell-devscripts/dh_haskell_blurbs.pod0000644000000000000000000000170312173013727015732 0ustar =head1 NAME dh_haskell_blurb - standard haskell package description blurbs =head1 SYNOPSIS B [S>] [B<-X>I] [B<--exclude=>I] [S> ...] =head1 DESCRIPTION dh_haskell_blurbs is a debhelper program provides substvars for the standard blurbs occurring in Haskell package descriptions. To use it, move the common parts of the description to the source stanza: X-Description: Cool library This is a pure Haskell implementation of coolness. It is cooler than implementation via foreign languages, because we can. And then use the following for every Haskell library package stanza, C, C and C: Description: ${haskell:ShortDescription}${haskell:ShortBlurb} ${haskell:LongDescription} . ${haskell:Blurb} =head1 SEE ALSO L L L L =head1 AUTHOR Joachim Breitner haskell-devscripts/COPYING0000644000000000000000000004314712173013726012621 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. # arch-tag: Main license file haskell-devscripts/dh_haskell_provides0000644000000000000000000000744712173013727015526 0ustar #! /bin/sh # # Calculated provides substvars for haskell library packages. # # Copyright (C) 2006-2007 Arjan Oosting # Copyright (C) 2009,2013 Joachim Breitner # # 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 if test -e debian/Dh_Haskell.sh then . debian/Dh_Haskell.sh else . /usr/share/haskell-devscripts/Dh_Haskell.sh fi for pkg in `dh_listpackages $args`; do sfile=debian/$pkg.substvars touch $sfile case "$pkg" in libghc-*-dev|libghc-*-prof|ghc|ghc-prof) if [ -z "$files" ] ; then cfiles=`find_config_for_ghc $pkg` else cfiles="$files" fi if [ -z "$cfiles" ] ; then echo "No installed package description files can not be found" >&2 exit 1 fi case "$pkg" in libghc-*-dev|ghc) grep -v \ -e ^haskell:Provides \ $sfile > $sfile.tmp || true echo "haskell:Provides=`provides_for_ghc $cfiles`" >> $sfile.tmp mv $sfile.tmp $sfile grep -v \ -e ^haskell:ghc-package \ $sfile > $sfile.tmp || true echo "haskell:ghc-package=`cabal_package_ids $cfiles`" >> $sfile.tmp mv $sfile.tmp $sfile ;; libghc-*-prof|ghc-prof) grep -v \ -e ^haskell:Provides \ $sfile > $sfile.tmp || true echo "haskell:Provides=`provides_for_ghc_prof $cfiles`" >> $sfile.tmp mv $sfile.tmp $sfile ;; esac ;; *) ;; esac done haskell-devscripts/dh_haskell_depends0000644000000000000000000001375312173013727015312 0ustar #! /bin/sh # # 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 for pkg in `dh_listpackages $args`; do sfile=debian/$pkg.substvars touch $sfile case "$pkg" in libghc-*-dev|libghc-*-prof) if [ -z "$files" ] ; then cfiles=`find_config_for_ghc $pkg` else cfiles="$files" fi if [ -z "$cfiles" ] ; then echo "No installed package description files can not be found" >&2 exit 1 fi case "$pkg" in libghc-*-dev) grep -v \ -e ^haskell:Depends \ -e ^haskell:Recommends \ -e ^haskell:Suggests \ $sfile > $sfile.tmp || true echo "haskell:Depends=`depends_for_ghc $cfiles`" >> $sfile.tmp echo "haskell:Recommends=" >> $sfile.tmp doc=`echo $pkg | sed -e 's/-dev$/-doc/'` prof=`echo $pkg | sed -e 's/-dev$/-prof/'` grep -v '^#' debian/control | grep $doc > /dev/null \ && suggests="$doc" \ || suggests="" if grep -v '^#' debian/control | grep $prof > /dev/null then [ "$suggests" = "" ] \ && suggests="$prof" \ || suggests="$suggests, $prof" fi echo "haskell:Suggests=$suggests" >> $sfile.tmp ;; libghc-*-prof) grep -v \ -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 $cfiles`" echo "haskell:Depends=$depends" >> $sfile.tmp echo "haskell:Recommends=" >> $sfile.tmp echo "haskell:Suggests=" >> $sfile.tmp ;; esac ;; libhugs-*) grep -v \ -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 ;; libghc-*-doc|haskell-*-doc) grep -v \ -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 \{\} \; \ | grep ^/ \ | cut -d# -f1 \ | sort -u \ | xargs dpkg -S \ | cut -d: -f1 \ | sort -u \ | sed -e :a -e '$!N; s/\n/, /; ta'` dev=`echo $pkg | sed -e 's/^[^-]\+-\(.\+\)-doc/libghc-\1-dev/'` grep -v '^#' 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`" >> $sfile.tmp mv $sfile.tmp $sfile done haskell-devscripts/dh_haskell_extra_depends.pod0000644000000000000000000000217212173013727017267 0ustar =head1 NAME dh_haskell_extra_depends - generate the extra-depends file in Haskell packages =head1 SYNOPSIS B [S>] [B<-X>I] [B<--exclude=>I] [S> ...] =head1 DESCRIPTION dh_haskell_extra_depends is a debhelper program that helps with calculating dependencies for building Haskell libraries. Since Haskell libraries are statically linked, packagers that use Haskell libraries cannot rely on the fact that dynamical libraries are dependencies of their packages to be sure that possible runtime data packages are installed at execution time. The extra dependencies mechanism allows libraries to declare some packages that are to be added to the dependency list of each package that uses them to build. This script scans the Haskell dependencies and harvest extra dependencies information, putting them in the file debian/extra-depends, which is later used by dh_haskell_depends to be included in the substvars file. =head1 BUGS None, as far as we know. :-) =head1 SEE ALSO L L =head1 AUTHOR Giovanni Mascellani haskell-devscripts/Dh_Haskell.sh0000644000000000000000000001276012173013726014115 0ustar strip_hash(){ echo "$1" | sed 's/-................................$//' } sort_uniq(){ { for i in "$@" ; do echo $i done } | sort -u | tr "\n" " " } dependency(){ local package local version local next_upstream_version package=$1 version=`dpkg-query --showformat='${Version}' -W $package` next_upstream_version=`echo $version | sed -e 's/-[^-]*$//' -e 's/$/+/'` echo "$package (>= $version), $package (<< $next_upstream_version)" } ghc_pkg_field(){ ghc-pkg --global field $@ | head -n1 } providing_package_for_ghc(){ local package local dep local dir local dirs local lib dep=`strip_hash $1` dirs=`ghc_pkg_field $dep library-dirs | grep -i ^library-dirs | cut -d':' -f 2` lib=`ghc_pkg_field $dep hs-libraries | grep -i ^hs-libraries | sed -e 's|hs-libraries: *\([^ ]*\).*|\1|' ` for dir in $dirs ; do if [ -e "${dir}/lib${lib}.a" ] ; then package=`dpkg-query -S ${dir}/lib${lib}.a | cut -d':' -f 1` || exit $? continue fi done echo $package } providing_package_for_ghc_prof(){ local package local dep local dir local dirs local lib dep=`strip_hash $1` dirs=`ghc_pkg_field $dep library-dirs | grep -i ^library-dirs | cut -d':' -f 2` lib=`ghc_pkg_field $dep hs-libraries | grep -i ^hs-libraries | sed -e 's|hs-libraries: *\([^ ]*\).*|\1|' ` for dir in $dirs ; do if [ -e "${dir}/lib${lib}_p.a" ] ; then package=`dpkg-query -S ${dir}/lib${lib}_p.a | cut -d':' -f 1` || exit $? continue fi done echo $package } cabal_package_ids(){ local config local package_ids until [ -z "$1" ] do config=$1 package_ids="$package_ids `grep-dctrl -n -i -s Id "" $config`" shift done echo $package_ids } cabal_depends(){ local config local dep local depends local final_depends until [ -z "$1" ] do config=$1 depends="$depends `grep-dctrl -n -i -s Depends "" $config | tr "," " "`" shift done for dep in `sort_uniq $depends` ; do # The package is not mentioned in the ignored package list with the same version # or mentioned without any version in the ignored package list? if echo " $ignores " | grep -qv " $dep " && echo " $ignores " | grep -qv " `echo $dep | sed s%-[0-9][.0-9a-zA-Z]*$%%` " ; then final_depends="$final_depends $dep" fi done echo $final_depends } hashed_dependency(){ local type local pkgid local virpkg type=$1 pkgid=$2 virtual_pkg=`package_id_to_virtual_package $type $pkgid` # As a transition measure, check if dpkg knows about this virtual package if dpkg-query -W $virtual_pkg >/dev/null 2>/dev/null; then echo $virtual_pkg fi } depends_for_ghc(){ local dep local packages local pkgid for pkgid in `cabal_depends $@` ; do dep=`hashed_dependency dev $pkgid` if [ -z "$dep" ] then pkg=`providing_package_for_ghc $pkgid` if [ -n "$pkg" ] then dep=`dependency $pkg` packages="$packages, $dep" else echo "WARNING: No Debian package provides haskell package $pkgid." >&2 fi else packages="$packages, $dep" fi done echo $packages | sed -e 's/^,[ ]*//' } depends_for_ghc_prof(){ local dep local packages local pkgid for pkgid in `cabal_depends $@` ; do dep=`hashed_dependency prof $pkgid` if [ -z "$dep" ] then pkg=`providing_package_for_ghc_prof $pkgid` if [ -n "$pkg" ] then dep=`dependency $pkg` packages="$packages, $dep" else echo "WARNING: No Debian package provides haskell package $pkgid." >&2 fi else packages="$packages, $dep" fi done echo $packages | sed -e 's/^,[ ]*//' } provides_for_ghc(){ local dep local packages for package_id in `cabal_package_ids $@` ; do packages="$packages, `package_id_to_virtual_package dev $package_id`" done echo $packages | sed -e 's/^,[ ]*//' } provides_for_ghc_prof(){ local dep local packages for package_id in `cabal_package_ids $@` ; do packages="$packages, `package_id_to_virtual_package prof $package_id`" done echo $packages | sed -e 's/^,[ ]*//' } package_id_to_virtual_package(){ local type type="$1" echo $2 | tr A-Z a-z | \ grep '[a-z0-9]\+-[0-9\.]\+-................................' | \ perl -pe 's/([a-z0-9-]+)-([0-9\.]+)-(.....).........................../libghc-\1-'$type'-\2-\3/' } depends_for_hugs(){ local version local upstream_version version=`dpkg-query --showformat='${Version}' -W hugs` upstream_version=`echo $version | sed -e 's/-[^-]*$//'` echo "hugs (>= $upstream_version)" } find_config_for_ghc(){ local f local pkg pkg=$1 case "$pkg" in ghc-prof) pkg=ghc ;; libghc-*-prof) pkg=`echo $pkg | sed -e 's/-prof$/-dev/'` ;; *) ;; esac for f in debian/$pkg/var/lib/ghc/package.conf.d/*.conf ; do if [ -f "$f" ] ; then echo $f echo " " fi done } if ! [ `which grep-dctrl` > /dev/null ] ; then echo "grep-dctrl is missing" >&2 exit 1 fi args= ignores= files= until [ -z "$1" ] do case "$1" in -X*) pkg=${1##-X} ignores="$ignores $pkg" ;; --exclude=*) pkg=${1##--exclude=} ignores="$ignores $pkg" ;; -*) args="$args $1" ;; *) if [ -f $1 ] ; then files="$files $1" else echo "Installed package description file $1 can not be found" >&2 exit 1 fi ;; esac shift done haskell-devscripts/README0000644000000000000000000000500312173013726012433 0ustar HASKELL-DEVSCRIPTS ================== INTRODUCTION ------------ Builds Cabalized libraries, calculates Haskell dependencies, and adds postinst and prerm Haskell scripts. haskell-devscripts is a package that helps with building Haskell libraries. It does several things. It can generate postinst and prerm scripts when necessary. It automates building libraries for the different supported Haskell systems in Debian. It generates substvars for your control file so that the library packages depend on the appropriate packages. In short, it can drive the entire process. REQUIREMENTS ------------ dh_haskell assumes that your packages are adhering to the draft Haskell policy. Your control file must build the binary library files using packages named libghc--, where is the name of your package; and is dev, prof or doc. These packages should be Architecture: any (dev, and proc) or all (doc). The package contains profiling enabled libraries. Currently only GHC supports profiling. Due to restrictions of the GHC compiler, if you provide a package you should also provide a corresponding package. If you build a Hugs package, name it libhugs-. Most Hugs packages should be Architecture: all. If your package uses foreign methods, maybe it should be Architecture: any (please let me know if you have an answer to that). dh_haskell assumes that the Haskell Cabal (see www.haskell.org/cabal) can be used to build your package. It obtains package name and version information from the Cabal file. HOW TO PACKAGE A HASKELL LIBRARY -------------------------------- Start from a basic debian/ directory. Add entries to Build-Depends for haskell-devscripts, cdbs and the compilers for any binaries you will build. In the clause in control for each binary package, make sure to add ${haskell:Depends} to the Depends: line, ${haskell:Recommends} to the Recommends line, and ${haskell:Suggests} to the Suggests line. In rules, include /usr/share/cdbs/1/rules/debhelper.mk and v/usr/share/cdbs/1/class/hlibrary.mk. That's it. haskell-devscripts does the rest. EXAMPLES -------- See the Debian source packages for haskell-src-exts, haskell-ghc-paths. BUGS ---- hugs and ghc are the only supported targets at the moment. Cabal does not yet support nhc98. SEE ALSO -------- The manpages of dh_haskell_depends(1), dh_haskell_provides(1) and dh_haskell_shlibdeps(1). AUTHOR ------ John Goerzen Based on ideas in dh_python by Josselin Mouette haskell-devscripts/dh_haskell_blurbs0000644000000000000000000000365412251715663015165 0ustar #! /bin/sh # # Create substvars for the Haskell package description blurbs # # Copyright (C) 2013 Joachim Breitner set -e for pkg in `dh_listpackages $args`; do case "$pkg" in libghc-*-dev) what=Dev ;; libghc-*-prof) what=Prof ;; libghc-*-doc) what=Doc ;; esac if [ -z "$what" ]; then continue; fi sfile=debian/$pkg.substvars touch $sfile grep -v \ -e ^haskell:Blurb \ -e ^haskell:ShortBlurb \ -e ^haskell:LongDescription \ -e ^haskell:ShortDescription \ $sfile > $sfile.tmp || true case "$pkg" in libghc-*-dev) cat >> $sfile.tmp <<'__END__' ;; haskell:ShortBlurb= haskell:Blurb=This package provides a library for the Haskell programming language.${Newline}See http://www.haskell.org/ for more information on Haskell. __END__ libghc-*-prof) cat >> $sfile.tmp <<'__END__' ;; haskell:ShortBlurb=; profiling libraries haskell:Blurb=This package provides a library for the Haskell programming language, compiled${Newline}for profiling. See http://www.haskell.org/ for more information on Haskell. __END__ libghc-*-doc) cat >> $sfile.tmp <<'__END__' ;; haskell:ShortBlurb=; documentation haskell:Blurb=This package provides the documentation for a library for the Haskell${Newline}programming language.${Newline}See http://www.haskell.org/ for more information on Haskell. __END__ esac shortDescription="$( cat debian/control | grep-dctrl -F Source '' -s X-Description -n| head -n1 )" longDescription="$( cat debian/control | grep-dctrl -F Source '' -s X-Description -n| sed 's/^[\t ]//;s/^\.$//'| # remove initial space tail -n +2| # skip short description perl -pe 's/\n$/\${Newline}/'| # prepare for dpkg-gencontrol perl -pe 's/\${Newline}$//' # but not final lineline )" cat >> $sfile.tmp <<__END__ haskell:ShortDescription=$shortDescription haskell:LongDescription=$longDescription __END__ mv $sfile.tmp $sfile done haskell-devscripts/dh_haskell_depends.pod0000644000000000000000000000212212173013727016057 0ustar =head1 NAME dh_haskell_depends - calculates Haskell dependencies on Cabalized libraries =head1 SYNOPSIS B [S>] [B<-X>I] [B<--exclude=>I] [S> ...] =head1 DESCRIPTION dh_haskell_depends is a debhelper program that helps with calculating dependencies for building Haskell libraries. It automates building libraries for the different supported Haskell systems in Debian. This script writes the debian/$package.substvars file, including in it the haskell:Depends, haskell:Recommends, haskell:Suggests and haskell:Extra-Depends variable. So, to use this package, include in the Depends: field in debian/control ${haskell:Depends}, and do the same for Recommends, Suggests and Extra-Depends. =head1 BUGS hugs and ghc are the only supported targets at the moment. Cabal does not yet support nhc98. =head1 SEE ALSO L L L L =head1 AUTHOR John Goerzen Based on ideas in dh_python by Josselin Mouette haskell-devscripts/dh_haskell_shlibdeps0000644000000000000000000000676112173013727015646 0ustar #!/bin/sh # arch-tag: Debhelper script for Haskell # # Copyright (C) 2009 Marco Túlio Gontijo e Silva # Based on mk-haskell-depends by Martin Sjögren # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. set -e . /usr/share/haskell-devscripts/Dh_Haskell.sh pkgs=`dh_listpackages $args` for pkg in $pkgs do case "$pkg" in libghc-*-dev) if [ -z "$files" ] ; then files=`find_config_for_ghc $pkg` fi ;; esac done if [ -z "$files" ] then echo "No installed package description files can not be found" >&2 exit 1 fi T_DIR=debian/dh_haskell_shlibdeps mkdir $T_DIR 2> /dev/null || true echo '[]' > $T_DIR/package.conf for file in $files do pkg=`echo $file | cut -d/ -f2 | cut -d- -f2- | sed -e 's/-[^-]\+$//'` pkgconflocal=$T_DIR/$pkg.package.conf cat $file | sed -e \ "/^\(import\|library\|include\)-dirs: / { \ s#/usr/lib/haskell-packages#$PWD/debian/libghc-$pkg-dev/usr/lib/haskell-packages#g }" \ > $pkgconflocal ghc-pkg -f $T_DIR/package.conf register $pkgconflocal --force \ 2>&1 > /dev/null || true done for pkg in $pkgs do case "$pkg" in libghc-*-dev) sfile=debian/$pkg.substvars pkgname=`basename debian/$pkg/usr/lib/haskell-packages/ghc/lib/* | sed -e 's/-[^-]\+$//'` touch $sfile echo "{-# LANGUAGE NoImplicitPrelude #-}" >$T_DIR/a.hs echo "{-# LANGUAGE PackageImports #-}" >>$T_DIR/a.hs echo "module Main where" >> $T_DIR/a.hs echo "import \"base\" Prelude" >> $T_DIR/a.hs echo "main = return ()" >> $T_DIR/a.hs # We do not want this package to depend on libffi* and libgmp*, as this dependency # most likely comes from the RTS, see http://bugs.debian.org/639015 ghc --make $T_DIR/a.hs -o $T_DIR/a.out plain_depends=$(dpkg-shlibdeps -Tdebian/$pkg.substvars $T_DIR/a.out -O) libffi=$(echo $plain_depends | sed -n '/^shlibs:Depends/s/.*\(libffi[0-9][0-9]*\).*/\1/p') rm -f a.out if [ -z "$libffi" ] then echo "libffi not used any more?" exit 1 fi libgmp=$(echo $plain_depends | sed -n '/^shlibs:Depends/s/.*\(libgmp[0-9][0-9]*\).*/\1/p') if [ -z "$libgmp" ] then echo "libgmp not used any more?" exit 1 fi ghc --make $T_DIR/a.hs -o $T_DIR/a.out\ -package-db $T_DIR/package.conf -package $pkgname dpkg-shlibdeps -x$libffi -x$libgmp -Tdebian/$pkg.substvars $T_DIR/a.out ;; esac done haskell-devscripts/hlibrary.mk0000644000000000000000000002027712176015470013733 0ustar # -*- mode: makefile -*- # Copyright 2008 Kari Pahula # Description: A class for Haskell library packages # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, 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., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA. export GREP_OPTIONS := # Set a dummy HOME variable upon build. Some build daemons do not set HOME, but # cabal expects it to be available. export HOME = /homedoesnotexistatbuildtime DEB_CABAL_PACKAGE ?= $(shell cat *.cabal |\ perl -ne \ 'if (/^name\s*:\s*(.*?)\s*$$/i) {$$_ = $$1; tr/A-Z/a-z/; print; exit 0;}') CABAL_PACKAGE=$(DEB_CABAL_PACKAGE) CABAL_VERSION=$(shell cat *.cabal | egrep -i '^\s*version:' | head -n1 | sed -r 's,^\s*version:\s*,,i'| sed -r 's,\s*$$,,i') DEB_ENABLE_TESTS ?= no DEB_ENABLE_HOOGLE ?= yes DEB_DH_GENCONTROL_ARGS_libghc-$(CABAL_PACKAGE)-dev += -- '-DGHC-Package=$${haskell:ghc-package}' ifneq (,$(filter libghc-$(CABAL_PACKAGE)-prof,$(DEB_PACKAGES))) ENABLE_PROFILING = --enable-library-profiling endif NO_GHCI_FLAG = $(shell test -e /usr/bin/ghci || echo --ghc-option=-DDEBIAN_NO_GHCI; exit 0) DEB_COMPRESS_EXCLUDE += .haddock .hs .txt # TODO: # - some of this would probably be useful for generic Haskell programs, # not just libraries # - provide more hooks # - get this included in the cdbs package once this gets mature enough (maybe?) DEB_SETUP_BIN_NAME ?= debian/hlibrary.setup DEB_HADDOCK_HTML_DIR ?= /usr/share/doc/libghc-$(CABAL_PACKAGE)-doc/html/ # most likely you don't need to touch this one GHC6_VERSION = $(shell ghc --numeric-version) GHC_VERSION = $(shell ghc --numeric-version) DEB_HADDOCK_DIR ?= /usr/lib/ghc-doc/haddock/$(CABAL_PACKAGE)-$(CABAL_VERSION)/ DEB_HADDOCK_OPTS += --html --hoogle ifndef DEB_NO_IMPLICIT_HADDOCK_HYPERLINK DEB_HADDOCK_OPTS += --hyperlink-source endif DEB_HOOGLE_TXT_DIR = /usr/lib/ghc-doc/hoogle/ MAKEFILE := debian/hlibrary.Makefile #ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) # NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) # MAKEFLAGS := -j$(NUMJOBS) # BUILD_GHC := $(DEB_SETUP_BIN_NAME) makefile -f $(MAKEFILE) && $(MAKE) $(MAKEFLAGS) -f $(MAKEFILE) && $(BUILD_GHC) #endif ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) OPTIMIZATION = --disable-optimization endif ifeq ($(DEB_ENABLE_TESTS),yes) ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) TESTS = --enable-tests endif endif DEB_BUILD_DEPENDENCIES = build-arch clean:: [ ! -x "$(DEB_SETUP_BIN_NAME)" ] || $(DEB_SETUP_BIN_NAME) clean rm -rf dist dist-ghc dist-hugs $(DEB_SETUP_BIN_NAME) Setup.hi Setup.ho Setup.o .*config* rm -f build-ghc-stamp build-hugs-stamp build-haddock-stamp rm -rf debian/tmp-inst-ghc rm -f debian/extra-depends rm -f debian/libghc-$(CABAL_PACKAGE)-doc.links rm -f $(MAKEFILE) rm -rf debian/dh_haskell_shlibdeps $(DEB_SETUP_BIN_NAME): if test ! -e Setup.lhs -a ! -e Setup.hs; then echo "No setup script found!"; exit 1; fi for setup in Setup.lhs Setup.hs; do if test -e $$setup; then ghc --make $$setup -o $(DEB_SETUP_BIN_NAME); exit 0; fi; done dist-ghc: $(DEB_SETUP_BIN_NAME) $(DEB_SETUP_BIN_NAME) configure --ghc -v2 \ --prefix=/usr --libdir=/usr/lib/haskell-packages/ghc/lib \ --builddir=dist-ghc \ --haddockdir=$(DEB_HADDOCK_DIR) --datasubdir=$(CABAL_PACKAGE)\ --htmldir=$(DEB_HADDOCK_HTML_DIR) $(ENABLE_PROFILING) $(NO_GHCI_FLAG) \ $(DEB_SETUP_GHC6_CONFIGURE_ARGS) $(DEB_SETUP_GHC_CONFIGURE_ARGS) $(OPTIMIZATION) $(TESTS) build-ghc-stamp: dist-ghc $(DEB_SETUP_BIN_NAME) build --builddir=dist-ghc touch $@ ifeq ($(DEB_ENABLE_TESTS),yes) ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) check-ghc-stamp: build-ghc-stamp $(DEB_SETUP_BIN_NAME) test --builddir=dist-ghc touch $@ else check-ghc-stamp: build-ghc-stamp @echo DEB_BUILD_OPTIONS contains nocheck, not running checks touch $@ endif else check-ghc-stamp: build-ghc-stamp @echo DEB_ENABLE_TESTS not set to yes, not running any tests. touch $@ endif build/libghc-$(CABAL_PACKAGE)-prof build/libghc-$(CABAL_PACKAGE)-dev:: build-ghc-stamp check-ghc-stamp build-haddock-stamp: [ ! -x /usr/bin/haddock ] || $(DEB_SETUP_BIN_NAME) haddock --builddir=dist-ghc $(DEB_HADDOCK_OPTS) touch build-haddock-stamp build/haskell-$(CABAL_PACKAGE)-doc build/libghc-$(CABAL_PACKAGE)-doc:: dist-ghc build-haddock-stamp dist-hugs: $(DEB_SETUP_BIN_NAME) $(DEB_SETUP_BIN_NAME) configure --hugs --prefix=/usr -v2 --builddir=dist-hugs $(DEB_SETUP_HUGS_CONFIGURE_ARGS) build/libhugs-$(CABAL_PACKAGE):: dist-hugs $(DEB_SETUP_BIN_NAME) build --builddir=dist-hugs debian/tmp-inst-ghc: $(DEB_SETUP_BIN_NAME) build-ghc-stamp $(DEB_SETUP_BIN_NAME) copy --builddir=dist-ghc --destdir=debian/tmp-inst-ghc debian/extra-depends: debian/tmp-inst-ghc pkg_config=`$(DEB_SETUP_BIN_NAME) register --builddir=dist-ghc --gen-pkg-config | tr -d ' \n' | sed -r 's,^.*:,,'` ; \ dh_haskell_extra_depends $$pkg_config ; \ rm $$pkg_config install/libghc-$(CABAL_PACKAGE)-dev:: debian/tmp-inst-ghc debian/extra-depends cd debian/tmp-inst-ghc ; find usr/lib/haskell-packages/ghc/lib/ \ \( ! -name "*_p.a" ! -name "*.p_hi" \) \ -exec install -Dm 644 '{}' ../$(notdir $@)/'{}' ';' pkg_config=`$(DEB_SETUP_BIN_NAME) register --builddir=dist-ghc --gen-pkg-config | tr -d ' \n' | sed -r 's,^.*:,,'`; \ $(if $(HASKELL_HIDE_PACKAGES),sed -i 's/^exposed: True$$/exposed: False/' $$pkg_config;) \ install -Dm 644 $$pkg_config debian/$(notdir $@)/var/lib/ghc/package.conf.d/$$pkg_config; \ rm -f $$pkg_config if [ 'z$(DEB_GHC_EXTRA_PACKAGES)' != 'z' ] ; then \ echo '$(DEB_GHC_EXTRA_PACKAGES)' > debian/$(notdir $@)/usr/lib/haskell-packages/ghc/lib/$(CABAL_PACKAGE)-$(CABAL_VERSION)/extra-packages ; \ fi dh_haskell_provides -p$(notdir $@) dh_haskell_depends -p$(notdir $@) dh_haskell_shlibdeps -p$(notdir $@) dh_haskell_blurbs -p$(notdir $@) install/libghc-$(CABAL_PACKAGE)-prof:: debian/tmp-inst-ghc install/libghc-$(CABAL_PACKAGE)-dev debian/extra-depends cd debian/tmp-inst-ghc ; find usr/lib/haskell-packages/ghc/lib/ \ ! \( ! -name "*_p.a" ! -name "*.p_hi" \) \ -exec install -Dm 644 '{}' ../$(notdir $@)/'{}' ';' dh_haskell_provides -p$(notdir $@) dh_haskell_depends -p$(notdir $@) dh_haskell_blurbs -p$(notdir $@) install/haskell-$(CABAL_PACKAGE)-doc install/libghc-$(CABAL_PACKAGE)-doc:: debian/tmp-inst-ghc build-haddock-stamp debian/extra-depends mkdir -p debian/$(notdir $@)/$(DEB_HADDOCK_HTML_DIR) cd debian/tmp-inst-ghc/ ; find ./$(DEB_HADDOCK_HTML_DIR)/ \ ! -name "*.haddock" -exec install -Dm 644 '{}' \ ../$(notdir $@)/'{}' ';' mkdir -p debian/$(notdir $@)/$(DEB_HADDOCK_DIR) [ 0 = `ls debian/tmp-inst-ghc/$(DEB_HADDOCK_DIR)/ 2>/dev/null | wc -l` ] || \ cp -r debian/tmp-inst-ghc/$(DEB_HADDOCK_DIR)/*.haddock \ debian/$(notdir $@)/$(DEB_HADDOCK_DIR) ifeq ($(DEB_ENABLE_HOOGLE),yes) find debian/$(notdir $@)/$(DEB_HADDOCK_HTML_DIR) -name "*.txt" \ -printf "%p $(DEB_HOOGLE_TXT_DIR)/%f\n" >> debian/libghc-$(CABAL_PACKAGE)-doc.links sed -i s,^debian/libghc-$(CABAL_PACKAGE)-doc,, debian/libghc-$(CABAL_PACKAGE)-doc.links endif dh_haskell_depends -p$(notdir $@) dh_haskell_blurbs -p$(notdir $@) install/libhugs-$(CABAL_PACKAGE):: $(DEB_SETUP_BIN_NAME) dist-hugs debian/extra-depends $(DEB_SETUP_BIN_NAME) copy --destdir=debian/libhugs-$(CABAL_PACKAGE) --builddir=dist-hugs rm -rf debian/libhugs-$(CABAL_PACKAGE)/usr/share/doc/* dh_haskell_depends -p$(notdir $@) dh_haskell_blurbs -p$(notdir $@) # Support for installing executables define newline endef $(patsubst debian/%.haskell-binaries,build/%,$(wildcard debian/*.haskell-binaries)):: build-ghc-stamp $(patsubst debian/%.haskell-binaries,install/%,$(wildcard debian/*.haskell-binaries)):: debian/tmp-inst-ghc $(foreach binary,$(shell cat debian/$(cdbs_curpkg).haskell-binaries),dh_install -p$(cdbs_curpkg) dist-ghc/build/$(binary)/$(binary) usr/bin $(newline)) haskell-devscripts/debian/0000755000000000000000000000000012251716011012771 5ustar haskell-devscripts/debian/source/0000755000000000000000000000000012173013726014277 5ustar haskell-devscripts/debian/source/format0000644000000000000000000000001512173013726015506 0ustar 3.0 (native) haskell-devscripts/debian/changelog0000644000000000000000000010132412251716006014650 0ustar haskell-devscripts (0.8.19.2) unstable; urgency=medium * Remove the final newline from haskell:LongDescription, now that http://bugs.debian.org/680871 is fixed. -- Joachim Breitner Tue, 10 Dec 2013 22:56:06 +0000 haskell-devscripts (0.8.19.1) unstable; urgency=low * add an encoding declaration in dh_haskell_shlibdeps.pod (Closes: #723882) -- Louis Bettens Fri, 20 Sep 2013 22:33:19 +0200 haskell-devscripts (0.8.19) unstable; urgency=low * Fix /usr/share/ subdirectory -- Louis Bettens Tue, 30 Jul 2013 08:48:41 +0200 haskell-devscripts (0.8.18) unstable; urgency=low * Ensure that debian/rules binary works. (Closes: #717442) -- Joachim Breitner Sun, 21 Jul 2013 19:27:10 +0200 haskell-devscripts (0.8.17) unstable; urgency=low * Allow a package to disable the installation of the hoogle file (prepares the fix for #709771) -- Joachim Breitner Sun, 26 May 2013 10:37:57 +0200 haskell-devscripts (0.8.16) unstable; urgency=low * Remove some unnecssary build-depends version constraints (found by cme) * Avoid adding dependencies on libffi and libgmp to libghc-*-foo (Closes: 639015) * Bump compat level * Add build-arch and build-indep targets -- Joachim Breitner Fri, 24 May 2013 11:16:32 +0200 haskell-devscripts (0.8.15) experimental; urgency=low * dh_haskell_blurbs added, provides substitution variables for the common package description blurbs, and also for reading the package description from the Source’s Description field. Until http://bugs.debian.org/680871 is fixed this does not work well for packages with multiple paragraphs in their description. -- Joachim Breitner Fri, 17 May 2013 21:51:33 +0200 haskell-devscripts (0.8.14) experimental; urgency=low * Explicitly mention which Prelude to use in dh_haskell_shlibdeps, thanks to Clifford Beshers for the patch. * Use cdbsn' $(DEB_PACKAGES) instead of parsing debian/control to see if profiling is desired. * Support installing Cabal-built binaries: Put the name of the binary in debian/pkg.haskell-binaries to ship the binary in that package * Add GHC-Package field to the Packages file -- Joachim Breitner Sat, 11 May 2013 14:24:37 +0200 haskell-devscripts (0.8.13) experimental; urgency=low [ Joachim Breitner ] * Improve parsing of "Setup register" output, patch by David Fox * Enable creation of hoogle files, thanks to Kiwamu Okabe for the suggestion. [ Kiwamu Okabe ] * Need --html option to fix bug that --hoogle option don't output html file. * Support to create /usr/lib/ghc-doc/hoogle/*.txt for hoogle package. [ Joachim Breitner ] * Symlink hoogle’s txt files to /usr/lib/ghc-doc/hoogle/ * Bump ghc dependency to 7.6 * Bump standards version -- Joachim Breitner Mon, 08 Oct 2012 21:14:50 +0200 haskell-devscripts (0.8.12) unstable; urgency=low * Depend on ghc >= 7.4, adjusting to its haddock --interface-version behaviour. -- Joachim Breitner Sat, 04 Feb 2012 10:50:33 +0100 haskell-devscripts (0.8.11) unstable; urgency=low * Conflict with ghc >= 7.4; as haddock --interface-name behaves differently then. A new haskell-devscripts upload will happen when ghc-7.4 enters unstable. -- Joachim Breitner Thu, 05 Jan 2012 13:28:23 +0100 haskell-devscripts (0.8.10) unstable; urgency=low * Run Cabal-defined testsuites, if DEB_ENABLE_TESTS = yes is set in debian/rules. -- Joachim Breitner Wed, 04 Jan 2012 20:13:14 +0100 haskell-devscripts (0.8.9) unstable; urgency=low [ Giovanni Mascellani ] * Make -doc packages recommend -dev instead of suggesting. It's likely that people installing documentation want the library too. (Closes: #635754) * Fix the header and footer in manpages (Haskell is quite the opposite of Perl!). * Write a manpage for dh_haskell_extra_depends and improve dh_haskell_depends. Some other work is to be done. [ Joachim Breitner ] * Depend on dh-buildinfo. This stores a file in /usr/share/*/doc listing the version of all the build dependencies, and might be handy some time if we need to recompile stuff. * Pass --ghc-option=-DDEBIAN_NO_GHCI to configure if ghc does not support ghci, to allow packages to selectively disable features (e.g. TH, annotations) then. -- Joachim Breitner Sun, 04 Sep 2011 19:30:50 +0200 haskell-devscripts (0.8.8) unstable; urgency=low * Team upload. * Added support to track data packages. -- Giovanni Mascellani Thu, 28 Jul 2011 14:30:59 +0200 haskell-devscripts (0.8.7) unstable; urgency=low * Also install package.conf in version-agnostic path -- Joachim Breitner Mon, 11 Jul 2011 13:13:31 +0200 haskell-devscripts (0.8.6) unstable; urgency=low * Install .haddock files in version-agnostic path -- Joachim Breitner Sun, 19 Jun 2011 12:59:50 +0200 haskell-devscripts (0.8.5) unstable; urgency=low * s/GHC6/GHC in GHC_VERSION, BUILD_GHC, DEB_SETUP_GHC_CONFIGURE_ARGS, but provide/use the “other” variable too, to avoid breaking existing packages. -- Joachim Breitner Sat, 04 Jun 2011 22:24:13 +0200 haskell-devscripts (0.8.4) unstable; urgency=low [ Marco Túlio Gontijo e Silva ] * hlibrary.mk: Include .hs in DEB_COMPRESS_EXCLUDE [ Joachim Breitner ] * Call ghc-pkg, not ghc-pkg6 (patch by David Fox) -- Joachim Breitner Tue, 19 Apr 2011 10:24:32 +0530 haskell-devscripts (0.8.3) unstable; urgency=low * Set HOME to some (non-existant) path in hlibrary.mk. Some buildds have this variable not set, causing builds to fail. -- Joachim Breitner Mon, 28 Mar 2011 00:31:11 +0530 haskell-devscripts (0.8.2) unstable; urgency=low * Upload to unstable -- Joachim Breitner Sat, 26 Mar 2011 21:44:29 +0530 haskell-devscripts (0.8.1) experimental; urgency=low * Add dependency on virtual haddock interface package to -doc packages -- Joachim Breitner Sat, 26 Mar 2011 21:44:04 +0530 haskell-devscripts (0.8) experimental; urgency=low [ Marco Silva ] * Fix ".haddock file in -dev creates broken symlinks in /usr/share/doc/ghc6-doc/html/libraries/index.html" by moving .haddock file to -doc package. (Closes: #586723) * Update Uploader name. * debian/copyright: Update name. * Use ghc instead of ghc6 * debian/control: Remove xutils-dev, since lndir is not being used anymore. * Update package name from haddock to ghc-haddock. [ Joachim Breitner ] * Bump standards version, no change -- Joachim Breitner Fri, 04 Mar 2011 10:31:07 +0530 haskell-devscripts (0.7.12) unstable; urgency=low * Send error messages to stdout -- Joachim Breitner Tue, 06 Jul 2010 11:48:53 +0200 haskell-devscripts (0.7.11) unstable; urgency=low * Better error checking when figuring out providing package, should help debug or even fix bug #588001. -- Joachim Breitner Tue, 06 Jul 2010 11:18:09 +0200 haskell-devscripts (0.7.10) unstable; urgency=low [ Joachim Breitner ] * dh_haskell_shlibdeps: Mangle paths in package descriptions more selectively [ Marco Túlio Gontijo e Silva ] * Dh_Haskell.sh: ghc_pkg_field. * dh_haskell_depends: Ignore comments in debian/control. -- Marco Túlio Gontijo e Silva Tue, 08 Jun 2010 19:28:42 -0300 haskell-devscripts (0.7.9) unstable; urgency=low * dh_haskell_depends: Only include packages in substvars if they exist in debian/control. -- Marco Túlio Gontijo e Silva Thu, 22 Apr 2010 15:43:50 -0300 haskell-devscripts (0.7.8) unstable; urgency=low * Parse cabal files more liberaly in hlibrary.mk * Wrong see also in dh_haskell_provides (Closes: #576504) -- Joachim Breitner Mon, 12 Apr 2010 10:15:04 +0200 haskell-devscripts (0.7.7) unstable; urgency=low * Fix "Haskell cleanup fails if optional hlibrary.setup is missing" changing the way the shell conditional is done. Thanks to Jonas Smedegaard . (Closes: #576447) -- Marco Túlio Gontijo e Silva Sun, 04 Apr 2010 22:36:51 -0300 haskell-devscripts (0.7.6) unstable; urgency=low * Remove Dh_Haskell.pm. * source/format: Use 3.0 (native). * Fix "GREP_OPTIONS breaks build" cleaning GREP_OPTIONS in hlibrary.mk (Closes: #573925) * Move DEB_BUILD_DEPENDENCIES = build-arch to hlibrary.mk, instead of all packages debian/rules. * Fix "hlibrary.mk should do cleanup" by including Setup clean in the clean:: target of hlibrary.mk. (Closes: #575128) -- Marco Túlio Gontijo e Silva Tue, 30 Mar 2010 21:06:16 -0300 haskell-devscripts (0.7.5) unstable; urgency=low * hlibrary.mk: Create HASKELL_HIDE_PACKAGES variable, to make it possible to create packages hidden by default. * hlibrary.mk: Include package.conf file in md5sums, since it doesn't change. -- Marco Túlio Gontijo e Silva Tue, 09 Mar 2010 21:37:30 -0300 haskell-devscripts (0.7.4) unstable; urgency=low * Prevent building of packages with ghc6 << 6.12.1-10 -- Joachim Breitner Sat, 20 Feb 2010 00:05:19 +0100 haskell-devscripts (0.7.3) unstable; urgency=low * Priority extra * Fix dh_haskell_provides with packages with a dash in the cabal name * dh_haskell_* looks at files given on the command line _or_ at the expected place -- Joachim Breitner Wed, 17 Feb 2010 16:27:45 +0100 haskell-devscripts (0.7.2) unstable; urgency=low * Dh_Haskell.sh: Remove unused variable. * Dh_Haskell.sh: Remove packages without hash-id from the list. * Dh_Haskell.sh: Treat haskell-package dependencies that doesn't need a Debian-package. * debian/control: Update Uploader e-mail. -- Marco Túlio Gontijo e Silva Fri, 12 Feb 2010 14:02:38 -0200 haskell-devscripts (0.7.1) unstable; urgency=low * Remove package config from source tree root * Bump standards version -- Joachim Breitner Fri, 12 Feb 2010 11:47:53 +0100 haskell-devscripts (0.7) unstable; urgency=low [ Marco Túlio Gontijo e Silva ] * debian/control: Add haddock and hscolour as Dependencies:. -- Joachim Breitner Wed, 10 Feb 2010 12:39:56 +0100 haskell-devscripts (0.6.19) experimental; urgency=low [ Kari Pahula ] * Install Haddock files to /usr/lib/ghc-$VER/haddock/$PKG-$VER * Use --builddir Cabal option instead of shuffling dist/ dirs around * Remove postinst/prerm scripts * Put package.conf into package.conf.d [ Joachim Breitner ] * Remove dh_haskell_prep, not needed any more (Closes: #516414) * Create dh_haskell_provides, to create a ${haskell:Provides} substvar containing a string derived from the cabal package name, version and ABI hash. * Depend on the virtual package names provided by dh_haskell_provides, if dpkg knows about them. (Closes: #518308, #507912) * Bump ghc6 dependency to (>= 6.12) -- Joachim Breitner Thu, 28 Jan 2010 22:45:23 +0100 haskell-devscripts (0.6.18) unstable; urgency=low * dh_haskell_prep: Allow spaces before : in cabal fields. -- Marco Túlio Gontijo e Silva Mon, 09 Nov 2009 14:44:32 -0200 haskell-devscripts (0.6.17) unstable; urgency=low * hlibrary.mk: Allow spaces before : in cabal fields. * Remove unsuported packaging scripts, leaving only the standard hlibrary.mk. Closes: #520703, #543776. -- Marco Túlio Gontijo e Silva Sun, 08 Nov 2009 16:55:31 -0200 haskell-devscripts (0.6.16) unstable; urgency=low [ Marco Túlio Gontijo e Silva ] * Change Marco Túlio's e-mail. * dh_haskell_depends: Create empty haskell: variables. * dh_haskell_shlibdeps: Change license. * debian/control: Use Debian Haskell Group as Maintainer. * debian/control: Update Vcs-Darcs to Debian Haskell Group darcs. * debian/control: Use new Standards-Version. * debian/control: Use DM-Upload-Allowed. * debian/control: Use one line per package in Depends. [ Joachim Breitner ] * Refer to GPL-2 in John’s copyright statement, with his permission -- Joachim Breitner Sun, 04 Oct 2009 10:43:54 +0200 haskell-devscripts (0.6.15+nmu13) unstable; urgency=low * NMU. * hlibrary.mk: install .haddock files in -dev package, not -doc. * hlibrary.mk: Build documentation in build-haddock-stamp target. Add it as a prerequisite for build/*-dev target. * hlibrary.mk: copy relevant data from Cabal database from -dev to -doc package, for ghc6-doc's trigger. -- Kari Pahula Wed, 22 Jul 2009 15:50:29 +0300 haskell-devscripts (0.6.15+nmu12) unstable; urgency=low * Non-maintainer upload. * prerm-ghc: Use ghc-pkg --no-user-package-conf unregister in prerm. Closes: #535967. * Fix "support for DEB_BUILD_OPTIONS=parallel=n broken" dh_haskell_build: Remove support for parallel=n. (Closes: #536589) -- Marco Túlio Gontijo e Silva Mon, 13 Jul 2009 08:53:41 -0300 haskell-devscripts (0.6.15+nmu11) unstable; urgency=low [Marco Túlio Gontijo e Silva] * Non-maintainer upload. * Create haskell:Recommends and haskell:Suggests. * dh_haskell_prep: Don't create haskell:Depends for documentation packages. Closes: #532381. * hlibrary.mk: Use --make instead of -package Cabal to build Setup.hs. * dh_haskell_depends: Includes -dev package in -prof Depends. * dh_haskell.pod: Recommend using CDBS and hlibrary.mk. * debian/control: Use Section: haskell. [Joachim Breitner] * debian/control: add ${perl:Depends} -- Marco Túlio Gontijo e Silva Fri, 05 Jun 2009 14:38:59 -0300 haskell-devscripts (0.6.15+nmu10) unstable; urgency=low * Non-maintainer upload. * dh_haskell_shlibdeps: - Create empty package.conf before calling ghc-pkg. Thanks to Jeremy Shaw . Closes: #526998. - Use the same package.conf for all binary packages from the same source. This allow a package with multiple binaries with internal dependencies to use dh_haskell_shlibdeps. - Treat correctly the names of libraries with dash. * debian/changelog: Correct the wrong bug number in the changelog for 0.6.15+nmu9. -- Marco Túlio Gontijo e Silva Thu, 30 Apr 2009 10:27:13 -0300 haskell-devscripts (0.6.15+nmu9) unstable; urgency=low * Non-maintainer upload. * dh_haskell_shlibdeps: Treat correctly the names of libraries with dash. Thanks to TANIGUCHI Takaki . Closes: #524143, #525568. -- Marco Túlio Gontijo e Silva Tue, 28 Apr 2009 18:38:26 -0300 haskell-devscripts (0.6.15+nmu8) unstable; urgency=low * Non-maintainer upload. * Create dh_haskell_shlibdeps. * Create Dh_Haskell.sh with common parts of dh_haskell_depends and dh_haskell_shlibdeps. * Documentation for how to use dh_haskell_depends and shlibdeps. * dh_haskell_depends.pod: Correct missing reference to dh_haskell_prep. * debian/control: Bump Standards-Version to 3.8.0. No changes needed. * debian/compat: updated to 7, since it requires dh script. -- Marco Túlio Gontijo e Silva Mon, 23 Mar 2009 09:49:37 -0300 haskell-devscripts (0.6.15+nmu7) unstable; urgency=low * Non-maintainer upload. * Added a configurable DEB_CABAL_PACKAGE variable to hlibrary.mk. -- Kari Pahula Fri, 13 Mar 2009 12:46:14 +0200 haskell-devscripts (0.6.15+nmu6) unstable; urgency=low * Non-maintainer upload. * Disabled parallel builds in hlibrary.mk. -- Kari Pahula Fri, 27 Feb 2009 09:50:47 +0200 haskell-devscripts (0.6.15+nmu5) unstable; urgency=low * Non-maintainer upload. * Prepend a line in hlibrary.mk with a tab, not 8 spaces. (Closes: #517028) * Treat .haddock files as arch independent files again. -- Kari Pahula Wed, 25 Feb 2009 14:21:28 +0200 haskell-devscripts (0.6.15+nmu4) unstable; urgency=low * Non-maintainer upload. * Support DEB_BUILD_OPTIONS noopt. Conforming to Debian Policy 4.9.1. * Support DEB_BUILD_OPTIONS parallel=n. Conforming to Debian Policy 4.9.1. * hlibrary.mk: New version. * postinst-ghc: Use update instead of register. Thanks to Clifford Beshers . * prerm-ghc: - Don't unregister in upgrade. Thanks to Joachim Breitner . - Don't try to remove .o files. Thanks to Joachim Breitner . * debian/control: Depends on cdbs. -- Marco Túlio Gontijo e Silva Tue, 24 Feb 2009 14:42:11 -0300 haskell-devscripts (0.6.15+nmu3) unstable; urgency=low * Update hlibrary.mk to latest version from kaol + Install .haddock to /usr/lib/ghc-$(GHC6_VERSION)/haddock/ instead of /usr/lib/ghc6-$(GHC6_VERSION)/haddock/ + Add calls to dh_haskell_depends in the right places -- Joachim Breitner Mon, 23 Feb 2009 17:23:48 +0100 haskell-devscripts (0.6.15+nmu2) unstable; urgency=low * Non-maintainer upload. * Update hlibray.mk to latest version from kaol. Does not yet close #516241, as that bug also needs to be fixed for dh_haskell_install -- Joachim Breitner Fri, 20 Feb 2009 18:21:12 +0100 haskell-devscripts (0.6.15+nmu1) unstable; urgency=low * Non-maintainer upload. * Add a manpage for each command. Closes: #512554. * Include hlibrary.mk (CDBS class). Closes: #462482. * Include dh addon. * Use debhelper 7. * Remove references to Arjan home. * Include dh_haskell_clean. * dh_haskell.pod: - Don't reference to cabalDebianTemplate. Thanks to Jeremy Shaw . Closes: #514129. - Document dh_haskell_depends on how-to. Thanks to Chris Lamb . Closes: #502937. * dh_haskell_configure: - Use --extra-include-dirs to add Hugs includes not considered by hsc2hs. Thanks to John Goerzen . Closes: #513397. - Disable ghci when building for profiling. * Dh_Haskell.pm: - use more relaxed rule for haddock. Thanks to John Goerzen . Closes: #512555. - Support for more than one version of a ghc-pkg package. - Do not consider user packages. * postinst-ghc: Do not generate GHCi libraries in postinst. Packages should include them. Thanks to Kummar Apaiah and Arjan Oosting . Closes: #455049. * dh_haskell_prep: Uses + instead of -999 on dependencies. Thanks to Kari Pahula . Closes: #511857. * docs/: Remove empty docs dir. * debian/control: Include ${misc:Depends}. * debian/install: Use debian/install instead of debian/haskell-devscripts.install * debian/copyright: Reference GPL-2 and GPL-3 instead of GPL. * debian/docs: Remove empty docs file. -- Marco Túlio Gontijo e Silva Thu, 05 Feb 2009 13:12:27 -0200 haskell-devscripts (0.6.15) unstable; urgency=high * Set urgengy to high as it fixes a grave bug. * Use the --print-libdir instead of the version number of the Debian package to determine the GHC library directory (Closes: #512063) -- Arjan Oosting Sat, 17 Jan 2009 14:20:00 +0100 haskell-devscripts (0.6.14) unstable; urgency=low * Handle multiple older versions in postinst-ghc template. (Closes: #496651). * Don't forget package description files given on the command line when dh_haskell_depends can not find one itself. Thanks Marco Túlio Gontijo e Silva (Closes: #501697) * Fix man-page to mention packages which actually use haskell-devscripts (Closes: 497059) -- Arjan Oosting Tue, 26 Aug 2008 17:52:27 +0200 haskell-devscripts (0.6.13) unstable; urgency=medium * Apply patch from Chris Lamb to prevent other packages from FTBFS (Closes: #491506) * debian/control: - Bump Standards-Version to 3.8.0. No changes needed. * Raise urgency to get this small fix in Lenny -- Arjan Oosting Sat, 19 Jul 2008 20:52:13 +0200 haskell-devscripts (0.6.12) unstable; urgency=low * dh_haskell_configure: - Pass all enable-* en disable-* arguments as options through to ./setup configure. This can be used to disable optimization on certain architectures (dh_haskell_configure disable-optimization) or to always build a vanilla library (dh_haskell_configure enable-library-vanilla) (Closes: #478700) -- Arjan Oosting Thu, 01 May 2008 14:22:19 +0200 haskell-devscripts (0.6.11) unstable; urgency=low * dh_haskell_depends: - Change the way the next upstream version of a native debian package is determined. (Closes: #473549) - Fix the generation of the ${haskell:Depends} substvar for profiling packages. (Closes: #474921) -- Arjan Oosting Tue, 08 Apr 2008 06:49:14 +0200 haskell-devscripts (0.6.10) unstable; urgency=low * dh_install: - Make sure where are in the right directory when dh_install is called. - Remove all non profiling files from the generated profiling packages, (Closes: #472654) -- Arjan Oosting Tue, 25 Mar 2008 23:26:17 +0100 haskell-devscripts (0.6.9) unstable; urgency=low * prerm-ghc: - Do not fail when ghc-pkg unregister during deconfigure of remove. This way packages generated wich haskell-devscripts which ghc-pkg registration has been broken in some way can still be removed. -- Arjan Oosting Sat, 22 Mar 2008 21:06:46 +0100 haskell-devscripts (0.6.8) unstable; urgency=low * debian/control: - Let the Vcs-* fields point to the trunk branch. * dh_haskell_install: Do not prune all non-existant directories from the install-pkg-config file. Only prune references to non-existant directories in /usr/lib/haskell-packages/ghc6/ (which should have been shipped with the generated packages otherwise) and give a warning for other non-existing directories. -- Arjan Oosting Sat, 22 Mar 2008 20:39:46 +0100 haskell-devscripts (0.6.7) unstable; urgency=low * dh_haskell_build: - The new Cabal version 1.2 generates the .setup-config as dist/setup-config so try this location as well. -- Arjan Oosting Sun, 27 Jan 2008 17:54:01 +0100 haskell-devscripts (0.6.6) unstable; urgency=low * dh_haskell_install: - Write the correct path to the generated documentation in the package description file. -- Arjan Oosting Sun, 13 Jan 2008 23:29:00 +0100 haskell-devscripts (0.6.5) unstable; urgency=low * debian/control: - Bump Standards-Version to 3.7.3. No changes needed. - Add Vcs-Svn adn Vcs-Browser fields. * dh_haskell_prep: - Don't add ghc6-prof-prof to the ${haskell:Depends} generated for profiling libraries. Thanks Kari Pahula (Closes: #460558) -- Arjan Oosting Sun, 13 Jan 2008 18:03:53 +0100 haskell-devscripts (0.6.4) unstable; urgency=low * dh_haskell_build: - With Cabal version >= 1.2 dh_haskell_builds accepts the command line arguments 'PROG-option=OPT', 'PROG-options=OPTS', 'html-location=URL', 'executables', 'css=PATH', 'hyperlink-source' and 'hscolour-css=PATH' which are passed as options to the calls to ./setup build and ./setup haddock * dh_haskell_configure: - With Cabal version >= 1.2 dh_haskell_configure accepts the command line arguments 'configure-option=OPT', 'PROG-option=OPT' and 'PROG-options=OPTS' which are passed as options to the call to ./setup configure * haskell_install: - Rewrite the code handling the package description file. Now it should work with Cabal version >= 1.2 / GHC 6.8.2. (Closes: #460138) - Remove LICENSE files installed by Cabal and empty documentation directories. - For Cabal >= 1.2 adjust the paths to the generated documentation in some regelur expressions. -- Arjan Oosting Sun, 13 Jan 2008 06:32:57 +0100 haskell-devscripts (0.6.3) unstable; urgency=low * dh_haskell_install: - The new Cabal version 1.2 generates the .installed-pkg-config as dist/installed-pkg-config so try this location as well. (Closes: #460138) -- Arjan Oosting Fri, 11 Jan 2008 00:30:47 +0100 haskell-devscripts (0.6.2) unstable; urgency=low * dh_haskell_install: Prepend the package build directory before the installation directory of generated API documentation. This will fix several FTBFS bugs in other packages. (Closes: #458872, #458875) -- Arjan Oosting Thu, 03 Jan 2008 23:51:51 +0100 haskell-devscripts (0.6.1) unstable; urgency=low * dh_haskell_*: - Use doit subroutine from Debian::Debhelper instead of safesystem from Dh_Haskell. This also fixes a bug where dh_haskell_build does not pass it's arguments to a call to dh_haskell_configure. * dh_haskell_builds: - Now accepts command line argument "hoogle" which is passed through to ./setup haddock as "./setup haddock --hoogle". * dh_haskell_configure: - Now accepts various with-...= and arg-...= command line arguments which are passed through to ./setup configure as options. - Add a little pod2man documentation. * Dh_Haskell.pm: - Remove safesystem subroutine. -- Arjan Oosting Wed, 02 Jan 2008 06:50:02 +0100 haskell-devscripts (0.6.0) unstable; urgency=low * New version with the following features: - Separate build directories for each package haskell-devscripts handles. Users can properly split the monolithic dh_haskell call into a configure (dh_haskell_configure), build (dh_haskell_build) and install (dh_haskell_install) step. - Generates haddock generated API documentation, if the debian/control files contains a package section which name matches "haskell|libghc6)-.+-doc". The generated documentation is then install in that package. - Adds a new dh_haskell_depends command which generates the ${haskell:Depends} substitution variable for each library package. + For GHC6 libraries and GHC6 profiling libraries package this substitution variable contains a dependency on respectively ghc6 or ghc6-prof AND the (profiling) libraries the library depends on. + For Hugs libraries it only contains a dependency on hugs. * Changes to generate haddock API documentation: - Change Dh_haskell.pm to recognize packages which match "haskell|libghc6)-.+-doc" as 'handled' packages. - dh_haskell_build generates haddock API documentation. - dh_haskell_install installs haddock API documentation. * Stop shipping empty directories in generated libghc6-* packages: - dh_haskell_install removes directories which are empty after the installation step. * Add dh_haskell_depends script to package. * Drop all code handling GHC 5 or nhc98 as Debian does not ship GHC5 anymore, and the code will most likely be broken now anyway: - Cleanup dh_haskell_prep. - Cleanup Dh_Haskell.pm. * debian/control: - Add xutils-dev to the Depends as dh_haskell_configure needs lndir. - Add dctrl-tools to the Depends as dh_haskell_depends needs grep-dctrl. - Make myself the official maintainer and add John to the uploaders. * {postinst-ghc, prerm-ghc}: - Suppress confusing message from ghc-pkg when removing or upgrading package. Thanks Chris Lamb (Closes: #457686) -- Arjan Oosting Sun, 30 Dec 2007 18:07:23 +0100 haskell-devscripts (0.5.19) unstable; urgency=low * Make some cosmetic changes to the POD source of the man page(s) and remove the unused and duplicate POD sources from dh_haskell_prep and dh_haskell_install. * Only build the setup file if no executable setup file exists. (Closes: #441100) -- Arjan Oosting Sun, 23 Sep 2007 19:16:24 +0200 haskell-devscripts (0.5.18) unstable; urgency=low * Rewrite the postinst-ghc and prerm-ghc scripts to respectively hide and expose previous installed versions of a package. * Update the prerm-ghc script to ignore error when it unregisters a package. (Closes: 432972) * debian/control: the postinst-ghc and prerm-ghc use ghc-pkg syntax which was introduced in GHC 6.4. Adjust the Depends line accordingly. * debian/rules: cleanup rules file. * debian/links: Create links pointing the man pages from the different dh_haskell_* commands to the main dh_haskell command man page. -- Arjan Oosting Wed, 25 Jul 2007 22:18:58 +0200 haskell-devscripts (0.5.17) unstable; urgency=low * Use the cabal package name as directory in /usr/lib/hugs/packages. -- Arjan Oosting Sun, 15 Apr 2007 18:09:16 +0200 haskell-devscripts (0.5.16) unstable; urgency=low * Install hugs packages into /usr/lib/hugs/packages which is wat the Hugs release of September 2006 expects. -- Arjan Oosting Sun, 15 Apr 2007 17:24:00 +0200 haskell-devscripts (0.5.15) unstable; urgency=high * Set urgency high as the upload fixes an RC bug. * Fix the build of libghc-*-dev packages when no libghc-*-prof packages should be build. (Closes: #399127) -- Arjan Oosting Sat, 18 Nov 2006 10:19:04 +0100 haskell-devscripts (0.5.14) unstable; urgency=medium * Set urgency to medium to get fixed version into etch. * debian/control: - Add myself to Uploaders. - Bbump Standards-Version. No changes needed. * dh_haskell_buildinst: fix building of profiling packages. -- Arjan Oosting Fri, 10 Nov 2006 21:43:08 +0100 haskell-devscripts (0.5.13) unstable; urgency=low * Thanks to Arjan Oosting for the following patches: * Move debhelper to Build-Depends as suggested by lintian. * Change she-bang for dh_haskell to /bin/sh as does not use any bashims. * Replace dh_haskell_buildinst with simple shell script to decrease code duplicity. * Introduce separate Perl module which contains the code shared between the different dh_haskell tools. -- John Goerzen Thu, 19 Oct 2006 11:06:09 -0500 haskell-devscripts (0.5.12) unstable; urgency=low * New support for building profiling packages. Thanks to Jeremy Shaw for this. -- John Goerzen Fri, 11 Aug 2006 17:58:47 -0500 haskell-devscripts (0.5.11) unstable; urgency=low * Now give version when deregistering packages in postinst. -- John Goerzen Tue, 25 Oct 2005 05:58:47 -0500 haskell-devscripts (0.5.10) unstable; urgency=low * Fixed a bug in dh_haskell when building multiple packages, introduced with the split in 0.5.7. -- John Goerzen Mon, 29 Aug 2005 06:06:25 -0500 haskell-devscripts (0.5.9) unstable; urgency=low * Applied patch from Florian Ragwitz to autodetect Setup.lhs vs. Setup.hs. -- John Goerzen Tue, 23 Aug 2005 05:35:35 -0500 haskell-devscripts (0.5.8) unstable; urgency=low * Fixed a few bugs in the new system. -- John Goerzen Wed, 17 Aug 2005 03:41:05 -0500 haskell-devscripts (0.5.7) unstable; urgency=low * Added dh_haskell_{prep,build,install}. -- John Goerzen Wed, 17 Aug 2005 02:46:04 -0500 haskell-devscripts (0.5.6) unstable; urgency=low * Tightened up Depends on libghc6-cabal-dev for interface consistency. -- John Goerzen Mon, 28 Mar 2005 09:00:47 -0600 haskell-devscripts (0.5.5) unstable; urgency=low * Adjusted Depends so ghc 6.4 can be considered to fulfill the requirement for having Cabal. -- John Goerzen Mon, 28 Mar 2005 08:56:48 -0600 haskell-devscripts (0.5.4) unstable; urgency=low * Use *.cabal files instead of Setup.description. -- John Goerzen Thu, 27 Jan 2005 12:35:54 -0600 haskell-devscripts (0.5.3) unstable; urgency=low * Updated for new cabal. -- John Goerzen Mon, 17 Jan 2005 16:49:41 -0600 haskell-devscripts (0.5.2) unstable; urgency=low * Make dep on libch6-cabal-dev versioned; older versions have bugs that can cause us trouble. -- John Goerzen Thu, 11 Nov 2004 11:31:29 -0600 haskell-devscripts (0.5.1) unstable; urgency=low * Added support for Hugs. * Added clean target example. * Pointed to HUnit package for example. -- John Goerzen Wed, 6 Oct 2004 16:16:50 -0500 haskell-devscripts (0.5.0) unstable; urgency=low * Initial Release. Closes: #275218. -- John Goerzen Wed, 6 Oct 2004 09:46:14 -0500 haskell-devscripts/debian/install0000644000000000000000000000043012173013726014365 0ustar dh_haskell_provides usr/bin/ dh_haskell_depends usr/bin/ dh_haskell_shlibdeps usr/bin/ dh_haskell_extra_depends usr/bin/ dh_haskell_blurbs usr/bin/ Dh_Haskell.sh usr/share/haskell-devscripts/ hlibrary.mk usr/share/cdbs/1/class haskell-devscripts/debian/rules0000755000000000000000000000154612173013726014065 0ustar #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') manpages = $(shell cat debian/manpages) %.1: %.pod pod2man -c 'Haskell devscripts documentation' -r 'Haskell devscripts $(DEB_VERSION)' $< > $@ %.1: % pod2man -c 'Haskell devscripts documentation' -r 'Haskell devscripts $(DEB_VERSION)' $< > $@ .PHONY: build build-indep: $(manpages) build-arch: build: build-arch build-indep install-stamp: dh install .PHONY: install install: install-stamp binary-indep-stamp: install-stamp dh binary-indep touch $@ .PHONY: binary-indep binary-indep: build-indep binary-indep-stamp .PHONY: binary-arch binary-arch: build-arch install-stamp .PHONY: binary binary: binary-indep-stamp .PHONY: clean clean: dh clean rm -f $(manpages) haskell-devscripts/debian/control0000644000000000000000000000244212176015470014405 0ustar Source: haskell-devscripts Section: haskell Priority: extra Maintainer: Debian Haskell Group Uploaders: Marco Silva , Joachim Breitner , Louis Bettens Build-Depends: debhelper (>= 9) Build-Depends-Indep: perl Standards-Version: 3.9.4 Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-devscripts Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-devscripts Package: haskell-devscripts Architecture: all Depends: dctrl-tools , debhelper , dh-buildinfo , ghc (>= 7.6) , cdbs , ${misc:Depends} , html-xml-utils , hscolour , ghc-haddock Description: Tools to help Debian developers build Haskell packages This package provides a collection of scripts to help build Haskell packages for Debian. Unlike haskell-utils, this package is not expected to be installed on the machines of end users. . This package is designed to support Cabalized Haskell libraries. It is designed to build a library for each supported Debian compiler or interpreter, generate appropriate postinst/prerm files for each one, generate appropriate substvars entries for each one, and install the package in the Debian temporary area as part of the build process. haskell-devscripts/debian/manpages0000644000000000000000000000016112173013726014513 0ustar dh_haskell_provides.1 dh_haskell_depends.1 dh_haskell_shlibdeps.1 dh_haskell_extra_depends.1 dh_haskell_blurbs.1 haskell-devscripts/debian/compat0000644000000000000000000000000212173013726014175 0ustar 9 haskell-devscripts/debian/dirs0000644000000000000000000000007512173013726013665 0ustar usr/bin usr/share/haskell-devscripts usr/share/cdbs/1/class/ haskell-devscripts/debian/docs0000644000000000000000000000000712173013726013647 0ustar README haskell-devscripts/debian/copyright0000644000000000000000000001341012173013726014731 0ustar This package was debianized by John Goerzen on Wed, 6 Oct 2004 09:46:14 -0500. hlibrary.mk: Copyright: Copyright 2008 Kari Pahula Upstream Author: Kari Pahula License: This program is licensed under the GNU GPL 2 or latter. Debian users may find the GPL at /usr/share/common-licenses/GPL-2 and /usr/share/common-licenses/GPL-3. dh_haskell_shlibdeps: Copyright: Copyright (C) 2009 Marco Silva Upstream Author: Marco Silva License: CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS CC0 WAIVER DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. Statement of Purpose The laws of various jurisdictions throughout the world automatically confer certain exclusive rights upon the creator of an original work of authorship and/or a database (each, a “Work”), and the subsequent owners thereof. Some owners of these exclusive rights wish to permanently remove these restrictions from a Work for the purpose of contributing to a commons that the public can reliably build upon, modify, reuse and redistribute as freely as possible from such restrictions for any purposes and in any form whatsoever, whether modified or unmodified, in whole or in part. Such owners therefore wish to fully, permanently, irrevocably and unconditionally waive, abandon and relinquish their Copyright Related Rights (defined below) with respect to a Work to the fullest extent permitted by applicable law. A Work associated with this CC0 Waiver may be protected by copyright and related or neighboring rights, database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, (including any amended or successor version of such directive)), and/or other similar equivalent or corresponding rights throughout the world as such rights may be available under applicable law or treaty (and national implementations thereof), including but not limited to moral rights retained by the original author(s), publicity and privacy rights pertaining to an individual’s image or likeness depicted in a Work, rights protecting against unfair competition in regards to the Work, and any rights protecting the extraction, dissemination and reuse of data in the Work (such rights all, collectively, the “Copyright Related Rights”). The person associating this CC0 Waiver with a Work is the owner of Copyright Related Rights in the Work (the “Affirmer”), and does openly, overtly and voluntarily elect to apply this CC0 Waiver to his or her Work with knowledge of his or her Copyright Related Rights in the Work and the meaning and intended legal effect of this CC0 Waiver. Subject to rights of other persons in the Work, and any patent and trademark rights held by Affirmer, by associating this CC0 Waiver with a Work the Affirmer does intend to fully, permanently, irrevocably and unconditionally waive, abandon and relinquish all of his or her Copyright Related Rights in such Work, to the fullest extent permitted by (but not in contravention of) applicable law. CC0 Waiver 1. To the fullest extent permitted by (but not in contravention of) applicable law, Affirmer hereby fully, permanently, irrevocably and unconditionally waives, abandons and relinquishes all of Affirmer’s Copyright Related Rights and associated claims and causes of action, whether present or future, vested or contingent, in the Work, (such waiver, abandonment, and relinquishment, the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs or successors. 2. Should the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted and Affirmer hereby grants to each such affected recipient of the Work a worldwide, royalty-free, non exclusive, perpetual (for the duration of the applicable copyright), non transferable, non sublicensable, irrevocable and unconditional license to exercise Affirmer’s Copyright Related Rights in the Work, which license shall be deemed effective as of the date this CC0 Waiver was applied by Affirmer to the Work. 3. No trademark or patent rights held by Affirmer are waived, abandoned, relinquished, licensed or otherwise affected by this CC0 Waiver. 4. Affirmer hereby fully and completely disclaims responsibility for clearing rights of other persons that may apply to the Work or any intended use thereof, including without limitation any such person’s Copyright Related Rights (including privacy and publicity rights). Further, Affirmer hereby fully and completely disclaims responsibility for obtaining any necessary consents, permissions or other rights required for such intended use. 5. Affirmer understands and acknowledges that Creative Commons is not party to this CC0 Waiver and has no duty or obligation with respect to this CC0 Waiver or use of the Work. rest: Copyright: Copyright (C) 2004 John Goerzen Upstream Author: John Goerzen License: This program is licensed under the GNU GPL 2.1. Debian users may find the GPL at /usr/share/common-licenses/GPL-2. haskell-devscripts/dh_haskell_extra_depends0000644000000000000000000000566712173013727016522 0ustar #! /bin/sh # # Determine package extra dependencies from package metadata # # Copyright (C) 2011 Giovanni Mascellani # # 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 extradeps='' for dep in `cabal_depends $files` ; do dep_package_ver=`echo $dep | grep '^.\+-[0-9\.]\+-................................$' | sed 's|^\(.\+\)-\([0-9.]\+\)-[0-9a-f]\+$|\1-\2|'` extra_packages_file=/usr/lib/haskell-packages/ghc/lib/$dep_package_ver/extra-packages if [ -f $extra_packages_file ] ; then extradeps="$extradeps, `cat $extra_packages_file`" fi done echo $extradeps | sed -e 's/^,[ ]*//' > debian/extra-depends