darcs-monitor: Use haskell-devscripts.

parent c32317b5
$Id: README.build-system,v 1.2 2000/04/25 21:58:52 ajk Exp $
This package uses a new experimental debian/rules helper, librules.mk,
written by Antti-Juhani Kaijanaho <ajk@debian.org>. Documentation for
it is available in the file librules-manual.txt.
......@@ -4,6 +4,7 @@ darcs-monitor (0.3.6-3) UNRELEASED; urgency=low
* debian/control: Update Homepage: field.
* debian/control: Bump Standards-Version to 3.8.4, no changes needed.
* debian/control: Add fields Vcs-*.
* Use haskell-devscripts.
-- Marco Túlio Gontijo e Silva <marcot@debian.org> Sat, 27 Feb 2010 11:35:20 -0300
......
......@@ -3,7 +3,13 @@ Maintainer: Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.or
Uploaders: Marco Túlio Gontijo e Silva <marcot@debian.org>
Section: devel
Priority: optional
Build-Depends: ghc6 (>= 6.8.1), libghc6-mtl-dev, libghc6-haxml-dev (<< 1.14) | libghc6-haxml-dev (>> 1:1), libghc6-haxml-dev (<< 1:1.14)
Build-Depends: debhelper (>= 7)
, cdbs
, haskell-devscripts (>= 0.7)
, ghc6
, libghc6-mtl-dev
, libghc6-haxml-dev (<< 1.14) | libghc6-haxml-dev (>> 1:1)
, libghc6-haxml-dev (<< 1:1.14)
Standards-Version: 3.8.4
Homepage: http://wiki.darcs.net/RelatedSoftware/DarcsMonitor
Vcs-Darcs: http://darcs.debian.org/pkg-haskell/darcs-monitor
......@@ -11,7 +17,7 @@ Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/darcs-mo
Package: darcs-monitor
Architecture: any
Depends: ${shlibs:Depends}, darcs (>= 1.0.0rc2-1)
Depends: ${shlibs:Depends}, ${misc:Depends}, darcs (>= 1.0.0rc2-1)
Recommends: exim4 | mail-transport-agent
Enhances: darcs
Description: Darcs add-on that sends mail about newly pushed changes
......
default-template usr/share/darcs-monitor
dist-ghc6/build/darcs-monitor/darcs-monitor /usr/bin
Manual for the librules helper -*- Text -*-
------------------------------
Last modified: 2004-01-01
This file documents an experimental new debian/rules helper, a
makefile called "librules.mk", which does all the boring work of
building a package.
Usage:
The very first non-comment thing in your debian/rules should be the
following line:
librules_interface = 2
This helps to spot incompatibilities with debian/rules and the
librules.mk file currently in use.
(See the section "Incompatible changes" for what to look for when
upgrading from an old version.)
Include "debian/librules.mk" just after that line. Precede it with a
variable definition "librules_native_pkg=yes" if the package you are building
is a Debian native package.
Define a target debian/stamp/build that builds the package (like the
build target does in conventional debian/rules files). Put "touch $@"
as the last action in that rule.
For every binary package <package> you want to build:
- If the package is "arch: all", make debian/stamp/binary/indep depend
on debian/stamp/binary/<package>; otherwise make debian/stamp/binary/arch
depend on that target
- Write a target debian/stamp/binary/<package> using the following template:
debian/stamp/binary/<package>: package=<package>
debian/stamp/binary/<package>: debian/stamp/build
$(prebinary)
# Add here your own commands
$(postbinary)
touch $@
The $(prebinary) macro will create a skeletal build tree for the
package. It also install the copyright file (debian/copyright)
and the Debian changelog file (debian/changelog). If there is a
debian/NEWS, it will install it as NEWS.Debian to the
documentation directory, compressed.
See below for instructions about how to write your own install commands.
The $(postbinary) macro fixes directory permissions, generates the binary
control file and builds the package.
- You may want to define targets "clean", "clean-binary" and "clean-build"
to reverse the effects of your own commands in the build and binary targets.
The librules.mk file cleans up for itself, you don't need to worry about that.
How to write your own commands for binary targets:
Use the following macros to install files:
$(install_exec) SOURCE TARGET
$(install_exec) SOURCE SOURCE ... DIRECTORY
installs one or more binary executables
(TARGET need not be a directory name)
$(install_nonex) SOURCE TARGET
$(install_nonex) SOURCE SOURCE ... DIRECTORY
install one or more non-executable files
(TARGET need not be a directory name)
$(install_dir) DIRECTORY
create the directory
$(install_script) SOURCE TARGET
$(install_script) SOURCE SOURCE ... DIRECTORY
install one or more executable scripts
(TARGET need not be a directory name)
$(install_prerm)
$(install_postrm)
$(install_preinst)
$(install_postinst)
install debian/prerm.$(package) etc.
to DEBIAN using the appropriate name
The macros above are wrappers around the "install" utility.
$(install_symlink) SOURCE [TARGET]
Install a symlink from SOURCE to TARGET
(This macro is a wrapper around ln -s)
$(gzip) FILE ...
Compress the given files
(This is a wrapper around gzip)
$(strip_lib) FILE ...
Strip the given files the way shared libraries are stripped
(This is a wrapper around strip)
*Never* refer to a file in the install target tree by their real name.
Use the following macros instead:
$(rootdir) - the directory that masquerades as / in the target tree
(usually a subdirectory under debian/tmp)
$(ctldir) - the directory where control files are installed
(usually $(rootdir)/DEBIAN)
$(bindir) - the main binary directory
(usually $(rootdir)/usr/bin)
$(docdir) - the main doc directory
(usually $(rootdir)/usr/share/doc/<package>)
...
(see librules.mk for what's available)
If your debian/rules needs the dpkg-architecture variables, add the
definition "librules_need_archvars=yes" before the include at the top
of the file. If you use this feature, you need to Build-Depend on
"dpkg-dev (>= 1.4.1.5)".
If you want to patch/unpatch the package, add the definitions
"librules_patch_support=yes" and "librules_patches=file1.diff
file2.diff ... filen.diff" before the include at the top of the file.
If you use this, you need to Build-Depend on "patch".
Incompatible changes
--------------------
From 1 to 2:
- {pre,post}{rm,inst} scripts are not installed by default
(previously prerm and postinst were unconditionally installed)
# librules.mk - a library of convenient rules and macros for debian/rules files
#
# Copyright © 1999, 2000, 2002, 2003, 2004 Antti-Juhani Kaijanaho.
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this file, to deal in this file without
# restriction, including without limitation the rights to use, copy,
# modify, merge, publish, distribute, sublicense, and/or sell copies
# of this file, and to permit persons to whom this file is furnished
# to do so, subject to the following condition: The above copyright
# notice and this permission notice shall be included in all copies or
# substantial portions of this file.
#
# THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL SOFTWARE IN THE PUBLIC INTEREST,
# INC. 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 THIS FILE OR THE USE OR OTHER DEALINGS IN THIS
# FILE.
#
# Except as contained in this notice, the name of the author(s) of
# this file shall not be used in advertising or otherwise to promote
# the sale, use or other dealings in this file without prior written
# authorization from the author(s).
# This file is set up to be compliant with Debian Standards Version
# 3.6.0.
# Changes:
# 2004-01-01 ajk Install NEWS.Debian if it exists
# 2003-08-10 ajk Add $(etcdir)
# 2002-10-16 ajk Don't force installing the prerm/postinst scripts
# Instead, install them if present.
# INCOMPATIBLE CHANGE; updated interface to 2
default:
@echo You need to specify a target.
@exit 1
librules_a_variable_just_to_run_the_commands1 := $(shell mkdir debian/stamp)
librules_a_variable_just_to_run_the_commands2 := $(shell mkdir debian/stamp/binary)
# Make sure we don't get used by an incompatible debian/rules
# WHEN YOU MAKE INCOMPATIBLE CHANGES, EDIT THIS!
ifneq ($(librules_interface),2)
$(error incompatible debian/rules)
endif
# Standard interface targets
build: debian/stamp/build
binary: binary-indep binary-arch
binary-arch: debian/stamp/binary/arch
binary-indep: debian/stamp/binary/indep
clean: clean-build clean-binary clean-std
# Nonstandard interface targets
clean-build: clean-build-std
clean-binary: clean-binary-std
# Stamp targets for the standard binary targets
debian/stamp/binary/arch: debian/stamp/build
touch $@
debian/stamp/binary/indep: debian/stamp/build
touch $@
.PHONY: default build binary binary-arch binary-indep \
clean clean-build clean-binary
ifeq ($(librules_need_archvars),yes)
DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_BUILD_GNU_CPU = $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
DEB_BUILD_GNU_SYSTEM = $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM)
DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_HOST_GNU_CPU = $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
DEB_HOST_GNU_SYSTEM = $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
endif
CFLAGS = -O2 -Wall
STRIP =
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -g
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
STRIP = -s
endif
export CFLAGS
install := install -o root -g root
install_exec := $(install) -m 0755 $(STRIP)
install_nonex := $(install) -m 0644
install_dir := $(install) -m 0755 -d
install_script := $(install) -m 0755
install_symlink := ln -s
gzip := gzip -9
strip_lib := strip --strip-unneeded
tmpdir := $(shell pwd)/debian/tmp
# These must not be :='s!
rootdir = $(tmpdir)/$(package)
ctldir = $(rootdir)/DEBIAN
etcdir = $(rootdir)/etc
bindir = $(rootdir)/usr/bin
sbindir = $(rootdir)/usr/sbin
docdir = $(rootdir)/usr/share/doc/$(package)
exampledir = $(docdir)/examples
mandir = $(rootdir)/usr/share/man
elispdir = $(rootdir)/usr/share/emacs/site-lisp
emacs_d_dir = $(etcdir)/emacs/site-start.d
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
sharedir = $(rootdir)/usr/share/$(package)
libdir = $(rootdir)/usr/lib/$(package)
docbasedir = $(rootdir)/usr/share/doc-base
usrlib = $(rootdir)/usr/lib
includedir = $(rootdir)/usr/include
ifeq ($(librules_native_pkg),yes)
librules_changelog=changelog
else
librules_changelog=changelog.Debian
endif
install_prerm = $(install_script) debian/prerm.$(package) $(ctldir)/prerm
install_postrm = $(install_script) debian/postrm.$(package) $(ctldir)/postrm
install_preinst = $(install_script) debian/preinst.$(package) $(ctldir)/preinst
install_postinst = $(install_script) debian/postinst.$(package) $(ctldir)/postinst
define prebinary
$(RM) -r $(rootdir)
$(install_dir) $(ctldir)
$(install_dir) $(docdir)
$(install_nonex) debian/copyright $(docdir)
$(install_nonex) debian/changelog $(docdir)/$(librules_changelog)
set -e ; if test -e debian/NEWS ; then \
$(install_nonex) debian/NEWS $(docdir)/NEWS.Debian ; \
$(gzip) $(docdir)/NEWS.Debian ; \
fi
$(gzip) $(docdir)/$(librules_changelog)
endef
define postbinary
chmod -R g-s $(rootdir)
dpkg-gencontrol -isp -p$(package) -P$(rootdir) $(gencontrol_options)
dpkg --build $(rootdir) ..
endef
clean-build-std:
rm -f debian/stamp/build
clean-binary-std:
rm -f debian/stamp/binary/*
rm -f debian/files debian/substvars
rm -rf $(tmpdir)
clean-std:
rm -rf debian/stamp/
# Patching support
ifeq ($(librules_patch_support),yes)
debian/stamp/build: debian/stamp/patch
clean-build: unpatch
debian/stamp/patch:
$(foreach patch, $(librules_patches), patch -fs < $(patch) && )true
touch $@
unpatch: debian/stamp/patch
$(foreach patch, $(librules_patches), patch -fsR < $(patch) && )true
rm -f debian/stamp/patch
endif
#!/usr/bin/make -f
# Copyright © 2007 Antti-Juhani Kaijanaho.
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this file, to deal in this file without
# restriction, including without limitation the rights to use, copy,
# modify, merge, publish, distribute, sublicense, and/or sell copies
# of this file, and to permit persons to whom this file is furnished
# to do so, subject to the following condition: The above copyright
# notice and this permission notice shall be included in all copies or
# substantial portions of this file.
#
# THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL SOFTWARE IN THE PUBLIC INTEREST,
# INC. 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 THIS FILE OR THE USE OR OTHER DEALINGS IN THIS
# FILE.
#
# Except as contained in this notice, the name of the author(s) of
# this file shall not be used in advertising or otherwise to promote
# the sale, use or other dealings in this file without prior written
# authorization from the author(s).
librules_interface = 2
include debian/librules.mk
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/hlibrary.mk
package=darcs-monitor
debian/stamp/build:
ghc -o Setup --make Setup.hs
./Setup configure --ghc --prefix=/usr --datasubdir=$(package)
./Setup build
touch $@
debian/stamp/binary/arch: debian/stamp/binary/darcs-monitor
debian/stamp/binary/darcs-monitor: debian/stamp/build
$(prebinary)
./Setup copy --destdir=$(rootdir)
chmod 644 $(sharedir)/default-template
$(install_nonex) README $(docdir)
$(install_dir) $(man1dir)
$(install_nonex) darcs-monitor.1 $(man1dir)/darcs-monitor.1
$(gzip) $(man1dir)/darcs-monitor.1
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
strip -R .comment $(bindir)/darcs-monitor
endif
dpkg-shlibdeps $(bindir)/darcs-monitor
$(postbinary)
touch $@
clean-build:
if test -x Setup ; then ./Setup clean ; fi
$(RM) Setup Setup.hi Setup.o
clean:
$(RM) debian/*~ *~
build/$(CABAL_PACKAGE) :: build-ghc6-stamp
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment