]> git.llucax.com Git - software/mutt-debian.git/blobdiff - debian/rules
upstream/553321-ansi-escape-segfault.patch: prevent mutt from segfaulting with large...
[software/mutt-debian.git] / debian / rules
index 2237c01f9a236ef6e62143c24d1e29631f4974b4..1b5641f63e6aa76d5f3214ace21c16a0fe81def6 100755 (executable)
@@ -1,16 +1,41 @@
 #!/usr/bin/make -f
 
-###
+include /usr/share/quilt/quilt.make
 
-# Uncomment one of these if you're rebuilding using them instead of libdb4.X
-# HCACHE_DB := gdbm
-# HCACHE_DB := qdbm
+###################### user serviceable parts ######################
 
+###
+# build a separate mutt-patched package?
+BUILD_PATCHED := yes
+###
+# header cache backend
+# HCACHE_DB := bdb
+HCACHE_DB := gdbm
+# HCACHE_DB := qdbm
+###
+# GPGME backend
+GPGME := --enable-gpgme
 ###
 
+###################### variables ######################
+
+ifneq ($(BUILD_PATCHED),yes)
+export DH_OPTIONS := -Nmutt-patched
+endif
+
 # Configure arguments
 
-confflags  =   --prefix=/usr                   \
+ifeq ($(HCACHE_DB),bdb)
+    hcache_db := --without-gdbm --without-qdbm --without-tokyocabinet
+endif
+ifeq ($(HCACHE_DB),gdbm)
+    hcache_db := --without-qdbm --without-bdb --without-tokyocabinet
+endif
+ifeq ($(HCACHE_DB),qdbm)
+    hcache_db := --without-gdbm --without-bdb --without-tokyocabinet
+endif
+
+confflags =    --prefix=/usr                   \
                --sysconfdir=/etc               \
                --mandir=/usr/share/man         \
                --with-sharedir=/usr/share/mutt \
@@ -23,12 +48,15 @@ confflags  =        --prefix=/usr                   \
                --enable-debug                  \
                --enable-fcntl                  \
                --enable-hcache                 \
+               $(GPGME)                        \
                --enable-imap                   \
+               --enable-smtp                   \
                --enable-inodesort              \
                --enable-pop                    \
                                                \
                --with-curses                   \
                --with-gnutls                   \
+               --with-gss                      \
                --with-idn                      \
                --with-mixmaster                \
                --with-sasl                     \
@@ -37,64 +65,52 @@ confflags  =        --prefix=/usr                   \
 
 DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
 confflags += --build $(DEB_BUILD_GNU_TYPE)
-
 # Only specify --host when cross-compiling
 ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
     confflags += --host $(DEB_HOST_GNU_TYPE)
 endif
 
-#
-
-hcache_db := --without-gdbm --without-qdbm
-
-ifeq ($(HCACHE_DB),gdbm)
-    hcache_db := --without-qdbm --without-bdb
-endif
-
-ifeq ($(HCACHE_DB),qdbm)
-    hcache_db := --without-gdbm --without-bdb
-endif
-
-###
-
-# Directory to make the build on
-
-objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
-
-###
-
 # CFLAGS
-
 CFLAGS   = -Wall -g
 CPPFLAGS = -I/usr/include/qdbm
-
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
 else
        CFLAGS += -O2
 endif
 
-###
+# Directory to make the build on
+objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
+
+###################### main ######################
 
-configure: $(objdir)/configure-stamp
-$(objdir)/configure-stamp:
+$(objdir)-patched/build-stamp: $(QUILT_STAMPFN)
        dh_testdir
+       dh_clean
+       -mkdir $(objdir)-patched
        
-       ln -sf /usr/share/misc/config.sub .
-       ln -sf /usr/share/misc/config.guess .
+ifeq ($(BUILD_PATCHED),yes)
+       ###################### building mutt-patched ######################
+       autoreconf --install --include=m4
+       cd $(objdir)-patched && \
+       env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
+       ../configure $(confflags)
        
-       ln -sf debian/patches
-       quilt push -a || test $$? = 2
+       echo '#include "config-debian.h"' >> $(objdir)-patched/config.h
        
-       # sort the patches as printed by mutt -v
-       [ -e PATCHES.unsorted ] || mv PATCHES PATCHES.unsorted && \
-       env LC_COLLATE=C sort PATCHES.unsorted >PATCHES
+       # we should just "make mutt" here, but that doesn't work yet
+       cd $(objdir)-patched && $(MAKE) CFLAGS="$(CFLAGS)"
+endif
        
-       # do not rebuild these files
-       touch configure.in aclocal.m4 Makefile.in configure config.h.in
+       touch $@
+
+build build-arch: $(objdir)/build-stamp
+$(objdir)/build-stamp: $(objdir)-patched/build-stamp
+       ###################### building mutt ######################
+       QUILT_PATCHES=$(QUILT_PATCH_DIR) quilt --quiltrc /dev/null pop mutt.org
        
+       autoreconf --install --include=m4
        -mkdir $(objdir)
        cd $(objdir) && \
        env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
@@ -102,88 +118,63 @@ $(objdir)/configure-stamp:
        
        echo '#include "config-debian.h"' >>$(objdir)/config.h
        
-       touch $@
-
-#
-
-build: $(objdir)/build-stamp
-$(objdir)/build-stamp: $(objdir)/configure-stamp
-       cd $(objdir) && \
-       $(MAKE) CFLAGS="$(CFLAGS)"
+       cd $(objdir) && $(MAKE) CFLAGS="$(CFLAGS)"
        
        touch $@
 
-#
-
-clean:
-       dh_testdir
-       dh_testroot
-       
-       [ ! -e PATCHES.unsorted ] || mv PATCHES.unsorted PATCHES
-       quilt pop -a -R || test $$? = 2
-       
-       # quilt cruft
-       rm -f   patches
-       rm -rf .pc
-       touch PATCHES
-       
-       # please dpkg-source
-       rm -f po/*.gmo
-       rm -f config.guess config.sub
-       
-       # remove build tree
-       rm -rf $(objdir)
-       
-       dh_clean
-       
-#
-
-install: debian/tmp/install-stamp
-debian/tmp/install-stamp:
+install: build
+       ###################### install ######################
        dh_testdir
        dh_testroot
-       dh_clean
+       dh_prep
        cd $(objdir) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
        
-       cd debian/tmp/usr/share/doc; \
-       rm -rf samples/iconv samples/ca-bundle.crt; \
-       mv NEWS NEWS.old; \
-       mv ChangeLog.old changelog.old; \
+       cd debian/tmp/usr/share/doc && \
+       rm -rf samples/iconv samples/ca-bundle.crt && \
+       mv NEWS NEWS.old && \
        cp $(CURDIR)/UPDATING NEWS
        
        chmod +x debian/extra/lib/*
        chmod +x debian/header.awk
-       debian/header.awk debian/patches/features/* >debian/tmp/README.Patches
+       debian/header.awk debian/patches/features/* \
+               debian/patches/mutt-patched/* > debian/tmp/README.Patches
        
-       cp $(objdir)/Muttrc.head debian/tmp/Muttrc
-       echo "# GnuPG configuration" >>debian/tmp/Muttrc
-       grep '^set' contrib/gpg.rc \
-               | sed -e 's#pgpewrap#/usr/lib/mutt/pgpewrap#' \
-               | sed -e 's#/usr/bin/gpg#gpg#' \
-               >> debian/tmp/Muttrc
-       cat debian/extra/rc/* >>debian/tmp/Muttrc
+       ( sed -e '/## More settings/,$$d' $(objdir)/doc/Muttrc || exit 1 ; \
+         cat debian/extra/rc/Muttrc.foot ) > debian/tmp/Muttrc
        
-       touch $@
-
-#
-
-binary: binary-arch
-
-binary-arch: build install
-       dh_testdir
-       dh_testroot
+       ( echo "# GnuPG configuration"; \
+         grep '^set' contrib/gpg.rc; \
+         echo ) > debian/tmp/gpg.rc
+       
+ifeq ($(BUILD_PATCHED),yes)
+       # temporarily call the binary mutt-patched so dh_strip gets the debug file name right
+       install -D $(objdir)-patched/mutt debian/mutt-patched/usr/bin/mutt-patched
+endif
        
+       # reportbug driver
        dh_installdirs
+       install -m644 debian/bug/control $(CURDIR)/debian/mutt/usr/share/bug/mutt
+       install       debian/bug/script  $(CURDIR)/debian/mutt/usr/share/bug/mutt
+
+binary binary-arch: install
+       ###################### binary ######################
        dh_install
        dh_installman
-       dh_installmime
        dh_installmenu
+       dh_installmime
        dh_installdocs
        dh_installexamples
        dh_installchangelogs ChangeLog
+       -dh_lintian
+       
+       dh_strip --dbg-package=mutt-dbg
+       rm -rf $(CURDIR)/debian/mutt-dbg/usr/share/doc/mutt-dbg \
+               $(CURDIR)/debian/mutt-patched/usr/share/doc/mutt-patched
+ifeq ($(BUILD_PATCHED),yes)
+       mv debian/mutt-patched/usr/bin/mutt-patched debian/mutt-patched/usr/bin/mutt
+endif
        
        dh_link
-       dh_strip
        dh_compress --exclude usr/share/doc/mutt/README.Patches
        dh_fixperms --exclude usr/bin/mutt_dotlock
        dh_installdeb
@@ -192,9 +183,28 @@ binary-arch: build install
        dh_md5sums
        dh_builddeb
 
-binary-indep:
+build-indep binary-indep:
        @echo "Nothing to do."
 
-#
+clean: unpatch
+       ###################### clean ######################
+       dh_testdir
+       dh_testroot
+       
+       # please dpkg-source
+       rm -f po/*.gmo
+       touch PATCHES
+       
+       # remove build trees
+       rm -rf $(objdir) $(objdir)-patched
+       
+       # remove autotool-generated files so they don't show up in the diff.gz
+       rm -f configure config.h.in
+       rm -f Makefile.in contrib/Makefile.in imap/Makefile.in doc/Makefile.in m4/Makefile.in
+       
+       # clean PATCHES hunks (blame quilt refresh)
+       for p in `grep -rl PATCHES debian/patches` ; do perl -wi debian/fix-PATCHES.pl $$p ; done
+       
+       dh_clean
 
-.PHONY: configure build clean install binary binary-arch binary-indep
+.PHONY: configure build build-arch build-indep clean install binary binary-arch binary-indep patch