summaryrefslogtreecommitdiff
path: root/README
blob: aa68f6b7f21e1acfce80740df6fda4405f9fa599 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
mozilla-devscripts is a collection of scripts based on Makefile inheritance
usable by Mozilla packages in Ubuntu.

- mozclient is an abstract tarball creator which provides a get-new-orig target
- compare is an install checker
- minefield-packager creates debs from Firefox nightly built tarballs

The package contains rules for the following projects:
 - firefox-3.0
 - lightning-sunbird (from MOZILLA_1_8_BRANCH)
 - nspr
 - nss
 - seamonkey-2.0
 - thunderbird-3.0
 - xulrunner-1.9

In addition there is a xpi.mk which provides standard rules/targets to package
XPI extensions for mozilla/toolkit based applications.

=== mozclient ===

Creates a source tarball from CVS

A clean-up script, called "remove.binonly.sh", is called to remove all
binary-only files. It is applied to all projects before packing.
Traces of the cleaning are preserved inside that resulting tarball
in REMOVED+nobinonly.txt. If nothing has been removed, both the log and
the "+nobinonly" signature are dropped.

To use :

- in debian/control: add mozilla-devscripts to Build-Depends
- in debian/rules: add "include /usr/share/mozilla-devscripts/yourproject.mk"

The following targets are then available to the caller of debian/rules:
- get-orig-source
   Build a tarball according to parameters from project.mk
   and optionally using either DEBIAN_DATE or DEBIAN_TAG
- mozclient-status
   List all the registered CVS tags from upstream server

The caller could specify the following parameters:
DEBIAN_DATE in the form YYYYMMDDtHHMM
 ex: DEBIAN_DATE=20070911t1711
or
DEBIAN_TAG in the form CVS_TAG=debian_version
 ex: DEBIAN_TAG=FIREFOX_3_0b2_RC1=3.0~b2~rc1

Projects files are stored in /usr/share/mozilla-devscripts as .mk files.
They contain the following parameters:

- MOZCLIENT_TARGET (mandatory): a label, usually 'project-orig'
- MOZCLIENT_APPNAME (mandatory): package name
- MOZCLIENT_MODULES (optional): list of modules/directories for direct checkout
- MOZCLIENT_PROJECT (mandatory): CVS project name. If $(NULL), then
  $(MOZCLIENT_MODULES) becomes mandatory
- MOZCLIENT_BRANCH (optional): CVS branch name
- MOZCLIENT_FILE (mandatory): source file containing the version
- MOZCLIENT_GETVERSION (mandatory): how to transform the version
- MOZCLIENT_URL (mandatory): an URL (usually on Bonsai) listing commits
- MOZCLIENT_GETDATE (mandatory): get the last commit date for the project
- MOZCLIENT_EMBEDDED (optional): create an embedded tarball (default: 0)
- MOZCLIENT_WANTMOZDIR (optional): should the root dir be 'mozilla'?
  (default: 0 unless MOZCLIENT_EMBEDDED=1)

Example with firefox-3.0:

- in debian/control, add mozilla-devscripts to Build-Depends
- in debian/rules, add:
   include /usr/share/mozilla-devscripts/firefox-3.0.mk

That's it. You've gained get-orig-source.

You can now call it:
- debian/rules get-orig-source
  => firefox-3.0_3.0~b2~cvs20071120t1456+nobinonly.orig.tar.gz

- debian/rules get-orig-source DEBIAN_DATE=20070914t1713
  => firefox-3.0_3.0~a8~cvs20070914t1713+nobinonly.orig.tar.gz

- debian/rules get-orig-source DEBIAN_TAG=FIREFOX_3_0b2_RC1=3.0~b2~rc1
  => firefox-3.0_3.0~b2~rc1+nobinonly.orig.tar.gz

=== compare ===

Compares installed files and debs content

The following target is available to the caller:

compare: check the difference between:
a/ what has been built (in dists/bin) and what has been installed (in debian/tmp)
b/ what has been installed (in debian/tmp) and what has been put in the debs
dists/bin is populated by the upstream build system
debian/tmp is populated according to upstream installer/package-static files

The following variable are available:
COMPARE_FILTER_PRE_IN and COMPARE_FILTER_PRE_OUT (for a/)
COMPARE_FILTER_IN and COMPARE_FILTER_OUT (for b/)
By default, all are 'sed' commands that could be augmented (+=) or
overwritten by the caller.

To use (if not already done for another mozilla-devscripts script)

- in debian/control: add mozilla-devscripts to Build-Depends
- in debian/rules: add "include /usr/share/mozilla-devscripts/yourproject.mk"

Example of COMPARE_FILTER_IN tweak:

COMPARE_FILTER_IN += \
  -e 's,^usr/lib/seamonkey-2.0/extensions/{f13b157f-b174-47e7-a34d-4815ddfdfeb8}.*,,' \
  $(NULL)


=== minefield-packager ===

minefield-packager creates debs from Firefox nightly built tarballs available
on mozilla web/ftp site. Those builds are often useful to check a regression
and to determine if a bug is Ubuntu specific or if it is also affecting
upstream builds. The deb produced are for testing purpose only, please don't
report bugs in Launchpad about those.

Example:

(from a writable directory)
make -f /usr/share/mozilla-devscripts/minefield-packager.mk
sudo dpkg -i firefox-minefield_3.0~b5~build2008032304-1_i386.deb

=== xpi.mk ===

targets:
---------
 install-xpi - unpack and install the contents of the .xpi file to the
               package named by the MOZ_EXTENSION_PKG parameter
 clean-xpi   - clean build cruft from install-xpi

parameters:
------------
 MOZ_EXTENSION_PKG - the binary package that will ship the extension
 MOZ_XPI_FILE      - the XPI file to unpack and install to the binary package
                     named by MOZ_EXTENSION_PKG. If not set, xpi.mk will use
                     the first |*.xpi| file found in the packages top level
                     directory
 MOZ_XPI_EMID      - use the given EMID to name the links in the applications
                     |extensions| directory. If not set, xpi.mk will try to
                     guess the right EMID by introspecting the |install.rdf|
                     shipped by the XPI
 MOZ_XPI_BUILD_COMMAND
                   - use the given command _before_ running the normal
                     |install-xpi| procedure. This parameter is useful for all
                     those extension sources that have a command/make target
                     to produce a XPI.
 MOZ_XPI_MOZILLA_DIRS
                   - link the extension to the global |extensions| directory
                     of the given MOZILLAs. The default value is |firefox| and
                     |firefox-addons|, which will link the extension to the
                     /usr/lib/firefox/extensions and /usr/lib/firefox-addons/extensions
                     directories, respectively.
 
cdbs:
------
 If you are using cdbs (debhelper.mk) xpi.mk hooks in appropriately.
 cdbs targets to build the packages without any rule. The only thing required
 is to include the debhelper.mk from cdbs _before_ including xpi.mk.


examples:
----------
 A template is available in the branch available under the following URL:
   https://code.launchpad.net/~mozillateam/firefox-extensions/XPI.TEMPLATE
 

=== lp-locale-export.mk ===

Include this helper if you want to translate your mozilla application or extension
through launchpad.

XXX: document here!