Package: mozilla-devscripts Version: 0.20 Severity: wishlist Tags: patch
dh allows to create extra build systems, for use by dh_auto_configure, dh_auto_build and friends. The attached patch just does this. Provided a package is a single extension, and has no tmp.xpi file in the source directory, the debian/rules can look like this: #!/usr/bin/make -f %: dh --with xul-ext --buildsystem=xul_ext $@ -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.31-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages mozilla-devscripts depends on: ii dpkg-dev 1.15.5.6 Debian package development tools ii fakeroot 1.14.4-1 Gives a fake root environment ii perl 5.10.1-11 Larry Wall's Practical Extraction ii python 2.5.4-9 An interactive high-level object-o ii python-rdflib 2.4.2-1+b1 RDF library containing an RDF trip ii python-support 1.0.7 automated rebuilding support for P ii quilt 0.48-6 Tool to work with series of patche ii unzip 6.0-4 De-archiver for .zip files ii wget 1.12-1.1 retrieves files from the web ii zip 3.0-3 Archiver for .zip files mozilla-devscripts recommends no packages. Versions of packages mozilla-devscripts suggests: ii cvs 1:1.12.13-12 Concurrent Versions System ii git-core 1:1.7.0.3-1 fast, scalable, distributed revisi ii mercurial 1.5-1 scalable distributed version contr -- no debconf information -- debsums errors found: debsums: changed file /usr/bin/dh_xul-ext (from mozilla-devscripts package)
diff -Nru mozilla-devscripts-0.20/src/dh_xul-ext mozilla-devscripts-0.20.1/src/dh_xul-ext --- mozilla-devscripts-0.20/src/dh_xul-ext 2010-02-04 20:42:24.000000000 +0100 +++ mozilla-devscripts-0.20.1/src/dh_xul-ext 2010-04-08 14:17:49.000000000 +0200 @@ -199,7 +199,7 @@ if __name__ == "__main__": try: long_opts = ["help", "package", "verbose"] - opts, args = getopt.gnu_getopt(sys.argv[1:], "hp:v", long_opts) + opts, args = getopt.gnu_getopt(sys.argv[1:], "hp:vO:", long_opts) except getopt.GetoptError, e: # print help information and exit: print >> sys.stderr, str(e) # will print something like "option -a not recognized" @@ -217,8 +217,6 @@ packages.append(a) elif o in ("-v", "--verbose"): verbose = True - else: - assert False, "unhandled option" if len(packages) == 0: packages = get_all_packages() diff -Nru mozilla-devscripts-0.20/src/Makefile mozilla-devscripts-0.20.1/src/Makefile --- mozilla-devscripts-0.20/src/Makefile 2010-02-04 20:42:24.000000000 +0100 +++ mozilla-devscripts-0.20.1/src/Makefile 2010-04-08 14:20:34.000000000 +0200 @@ -100,6 +100,7 @@ install -m 644 xul-app-data.csv.$(VENDOR) $(DESTDIR)$(DATADIR)/xul-app-data.csv mkdir -p $(DESTDIR)/usr/share/perl5/Debian/Debhelper/Sequence install -m 644 xul-ext.pm $(DESTDIR)/usr/share/perl5/Debian/Debhelper/Sequence/xul_ext.pm + install -m 644 xul-ext_build.pm $(DESTDIR)/usr/share/perl5/Debian/Debhelper/Buildsystem/xul_ext.pm clean: rm -f $(subst_files) diff -Nru mozilla-devscripts-0.20/src/xul-ext_build.pm mozilla-devscripts-0.20.1/src/xul-ext_build.pm --- mozilla-devscripts-0.20/src/xul-ext_build.pm 1970-01-01 01:00:00.000000000 +0100 +++ mozilla-devscripts-0.20.1/src/xul-ext_build.pm 2010-04-08 14:57:14.000000000 +0200 @@ -0,0 +1,42 @@ +# A debhelper build system class for handling XUL extensions. +# +# Copyright: © 2010 Mike Hommey +# License: GPL-2+ + +package Debian::Debhelper::Buildsystem::xul_ext; + +use strict; +use base 'Debian::Debhelper::Buildsystem'; + +sub DESCRIPTION { + "XUL Extensions" +} + +sub check_auto_buildable { + my $this=shift; + return (-e $this->get_sourcepath("install.rdf")) ? 1 : 0; +} + +sub new { + my $class=shift; + my $this=$class->SUPER::new(@_); + $this->enforce_in_source_building(); + return $this; +} + +sub build { + my $this=shift; + $this->doit_in_sourcedir("xpi-pack", ".", "tmp.xpi"); +} + +sub install { + my $this=shift; + $this->doit_in_sourcedir("install-xpi", "tmp.xpi"); +} + +sub clean { + my $this=shift; + $this->doit_in_sourcedir("rm", "-f", "tmp.xpi"); +} + +1