summaryrefslogtreecommitdiff
path: root/Makefile
blob: c9f97409f73e137e9c6e857342f850791328467c (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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# Created by Fabien Tassin <fta@sofaraway.org> in Sept 2007

MOZ_CLIENT = mozilla/client.mk
CVS_LOC    = :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot

STAMP ?= stamped

ifdef DEBIAN_TAG
DEBIAN_CO_TAG     = -r $(DEBIAN_TAG)
DEBIAN_MOZ_CO_TAG = MOZ_CO_TAG=$(DEBIAN_TAG)
else
ifdef DEBIAN_DATE
DEBIAN_CO_DATE    = $(shell echo "-D \"$(DEBIAN_DATE)\"" | sed -e 's/[rt]/ /')
endif
ifdef DEBIAN_BRANCH
DEBIAN_CO_TAG     = -r $(DEBIAN_BRANCH)
endif
endif

############################################################################
DEBIAN_FF3_TARGET   := firefox-orig
DEBIAN_FF3_APPNAME  := firefox-3.0
DEBIAN_FF3_FILE     := mozilla/browser/config/version.txt
DEBIAN_FF3_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyBrowser&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_XUL_TARGET   := xulrunner-orig
DEBIAN_XUL_APPNAME  := xulrunner-1.9
DEBIAN_XUL_FILE     := mozilla/config/milestone.txt
DEBIAN_XUL_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyBrowser&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_TB_TARGET    := thunderbird-orig
DEBIAN_TB_APPNAME   := thunderbird-3.0
DEBIAN_TB_FILE      := mozilla/mail/config/version.txt
DEBIAN_TB_URL       := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyMailNews&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_NSS_TARGET   := nss-orig
DEBIAN_NSS_APPNAME  := nss
DEBIAN_NSS_FILE     := mozilla/security/nss/lib/nss/nss.h
DEBIAN_NSS_URL      := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=NSS&module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fdbm+mozilla%2Fsecurity%2Fnss+mozilla%2Fsecurity%2Fcoreconf+mozilla%2Fsecurity%2Fdbm&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=month&mindate=&maxdate=&cvsroot=%2Fcvsroot'

DEBIAN_NSPR_TARGET  := nspr-orig
DEBIAN_NSPR_APPNAME := nspr
DEBIAN_NSPR_FILE    := mozilla/nsprpub/configure.in
DEBIAN_NSPR_URL     := 'http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fnsprpub&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=1177522884&maxdate=1588258884&cvsroot=%2Fcvsroot'

############################################################################

EXCLUDE := --exclude=CVS --exclude=.cvsignore
GET     := wget -O - -q --read-timeout=10 --user-agent='' --tries=3 $$URL 2> /dev/null | grep "href='http://webtools" | head -1 | tr '<>' '@' | cut -d@ -f5 | tr -d ':-' | sed -e 's/&nbsp;/t/'

help:
	@echo "Usage:"
	@echo "   make client                Fetch and patch mozilla client"
	@echo "   make status                List all Mozilla CVS tags"
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_FF3_TARGET) $(DEBIAN_FF3_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_XUL_TARGET) $(DEBIAN_XUL_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_TB_TARGET) $(DEBIAN_TB_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_NSS_TARGET) $(DEBIAN_NSS_APPNAME)
	@printf "   make %-20s  Create %s sources tarball\n" $(DEBIAN_NSPR_TARGET) $(DEBIAN_NSPR_APPNAME)
	@echo
	@echo "  you can also recreate a tarball from a specific timestamp by specifying"
	@echo "  DEBIAN_DATE in the form YYYYMMDDtHHMM"
	@echo
	@echo "   Ex: make DEBIAN_DATE=20070911t1711 nspr-orig"
	@echo
	@echo "  you can fetch a specific branch by specifying DEBIAN_BRANCH."
	@echo
	@echo "   Ex: make DEBIAN_BRANCH=MOZILLA_1_9a8_MINIBRANCH firefox-orig"
	@echo
	@echo "  It is also possible to use both DEBIAN_DATE and DEBIAN_BRANCH to fetch"
	@echo "  the content of a branch at a particular date"
	@echo
	@echo "  Alternatively, you can fetch a specific CO tag using DEBIAN_TAG."
	@echo "  See 'make status' for a list of available tags."
	@echo
	@echo "   Ex: make DEBIAN_TAG=MOZILLA_1_9a8_RELEASE firefox-orig"

deps:
	@if [ ! -f /usr/bin/cvs ]   ; then echo "**ERROR** Depends on missing cvs. Abort"; exit 1; fi
	@if [ ! -f /usr/bin/quilt ] ; then echo "**ERROR** Depends on missing quilt. Abort"; exit 1; fi
	@if [ ! -f /usr/bin/wget ]  ; then echo "**ERROR** Depends on missing wget. Abort"; exit 1; fi

$(MOZ_CLIENT): deps
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@
	rm -rf .pc $(STAMP)

$(DEBIAN_FF3_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@
$(DEBIAN_XUL_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@
$(DEBIAN_TB_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@
$(DEBIAN_NSS_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@
$(DEBIAN_NSPR_FILE):
	cvs -d $(CVS_LOC) co $(DEBIAN_CO_DATE) $(DEBIAN_CO_TAG) $@

client: $(STAMP)

status: $(MOZ_CLIENT)
	( cd mozilla ; cvs status -v client.mk )

$(STAMP): $(MOZ_CLIENT)
	@echo Patching
	quilt --quiltrc /dev/null push -a || test $$? = 2
	touch $(STAMP)

unpatch:
	@echo Unpatching
	-quilt --quiltrc /dev/null pop -a -R || test $$? = 2
	rm -rf .pc $(STAMP)

clean: unpatch
	rm -rf cvsco.log* $(MOZ_CLIENT) mozilla

all: $(DEBIAN_FF3_TARGET) $(DEBIAN_XUL_TARGET) $(DEBIAN_NSS_TARGET)

$(DEBIAN_FF3_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_FF3_FILE)
	URL=$(DEBIAN_FF3_URL) ; \
	if [ "$(DEBIAN_TAG)" != "" ] ; then \
	DEBIAN_FF3_VERSION="`cat $(DEBIAN_FF3_FILE) | sed -e 's/a\([0-9]*\)/~alpha\1/; s/b\([0-9]*\)/~b\1/'`" ; \
	DEBIAN_FF3_DATE=$$DEBIAN_FF3_VERSION ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulbrowser $(DEBIAN_MOZ_CO_TAG) ; \
	else \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_FF3_DATE=$(DEBIAN_DATE) ; else DEBIAN_FF3_DATE=`$(GET)` ; fi ; \
	DEBIAN_FF3_CO_DATE=`echo "$$DEBIAN_FF3_DATE" | sed -e 's/[rt]/ /'` ; \
	DEBIAN_FF3_VERSION="`cat $(DEBIAN_FF3_FILE) | sed -e 's/pre//; s/a\([0-9]*\)/~alpha\1/; s/b\([0-9]*\)/~b\1/; s/$$/~cvs'"$$DEBIAN_FF3_DATE"'/'`" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulbrowser MOZ_CO_DATE="$$DEBIAN_FF3_CO_DATE" ; \
	fi ; \
	rm -rf $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz && \
	mkdir $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION && \
	echo "Creating $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION/browser-snapshot-$$DEBIAN_FF3_DATE.tar.bz2 ..." && \
	tar jcf $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION/browser-snapshot-$$DEBIAN_FF3_DATE.tar.bz2 $(EXCLUDE) mozilla && \
	rm -f $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION && \
	rm -rf mozilla cvsco.log* $(STAMP) .pc $(DEBIAN_FF3_APPNAME)-$$DEBIAN_FF3_VERSION ; \
	ls -l $(DEBIAN_FF3_APPNAME)_$$DEBIAN_FF3_VERSION.orig.tar.gz

$(DEBIAN_XUL_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_XUL_FILE)
	URL=$(DEBIAN_XUL_URL) ; \
	if [ "$(DEBIAN_TAG)" != "" ] ; then \
	DEBIAN_XUL_VERSION="`tail -1 $(DEBIAN_XUL_FILE) | sed -e 's/\([ab]\)\([0-9]*\)/~\1\2/'`" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulrunner $(DEBIAN_MOZ_CO_TAG) ; \
	else \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_XUL_DATE=$(DEBIAN_DATE) ; else DEBIAN_XUL_DATE=`$(GET)` ; fi ; \
	DEBIAN_XUL_CO_DATE="`echo $$DEBIAN_XUL_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_XUL_VERSION="`tail -1 $(DEBIAN_XUL_FILE) | sed -e 's/pre//; s/\([ab]\)\([0-9]*\)/~\1\2/'`~cvs$$DEBIAN_XUL_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=xulrunner MOZ_CO_DATE="$$DEBIAN_XUL_CO_DATE" ; \
	fi ; \
	mkdir $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	mv mozilla $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	rm -f $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_XUL_APPNAME)-$$DEBIAN_XUL_VERSION ; \
	ls -l $(DEBIAN_XUL_APPNAME)_$$DEBIAN_XUL_VERSION.orig.tar.gz

$(DEBIAN_TB_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_TB_FILE)
	URL=$(DEBIAN_TB_URL) ; \
	if [ "$(DEBIAN_TAG)" != "" ] ; then \
	DEBIAN_TB_VERSION="`cat $(DEBIAN_TB_FILE) | sed -e 's/\([ab]\)\([0-9]*\)/~\1\2/'`" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=mail $(DEBIAN_MOZ_CO_TAG) ; \
	else \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_TB_DATE=$(DEBIAN_DATE) ; else DEBIAN_TB_DATE=`$(GET)` ; fi ; \
	DEBIAN_TB_CO_DATE="`echo $$DEBIAN_TB_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_TB_VERSION="`tail -1 $(DEBIAN_TB_FILE) | sed -e 's/pre//; s/\([ab]\)\([0-9]*\)/~\1\2/'`~cvs$$DEBIAN_TB_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=mail MOZ_CO_DATE="$$DEBIAN_TB_CO_DATE" ; \
	fi ; \
	mkdir $(DEBIAN_TB_APPNAME)-$$DEBIAN_TB_VERSION && \
	mv mozilla $(DEBIAN_TB_APPNAME)-$$DEBIAN_TB_VERSION && \
	rm -f $(DEBIAN_TB_APPNAME)_$$DEBIAN_TB_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_TB_APPNAME)_$$DEBIAN_TB_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_TB_APPNAME)_$$DEBIAN_TB_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_TB_APPNAME)-$$DEBIAN_TB_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_TB_APPNAME)-$$DEBIAN_TB_VERSION ; \
	ls -l $(DEBIAN_TB_APPNAME)_$$DEBIAN_TB_VERSION.orig.tar.gz

$(DEBIAN_NSS_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_NSS_FILE)
	URL=$(DEBIAN_NSS_URL) ; \
	if [ "$(DEBIAN_TAG)" != "" ] ; then \
	DEBIAN_NSS_VERSION="`grep -E '^\#define NSS_V(MAJOR|MINOR|PATCH)' $(DEBIAN_NSS_FILE) | awk '{print $$3}' | tr '\n' '.' | sed -e 's,\.$$,,'`~tag$(DEBIAN_TAG)" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nss $(DEBIAN_MOZ_CO_TAG) ; \
	else \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_NSS_DATE=$(DEBIAN_DATE) ; else DEBIAN_NSS_DATE=`$(GET)` ; fi ; \
	DEBIAN_NSS_CO_DATE="`echo $$DEBIAN_NSS_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_NSS_VERSION="`grep -E '^\#define NSS_V(MAJOR|MINOR|PATCH)' $(DEBIAN_NSS_FILE) | awk '{print $$3}' | tr '\n' '.' | sed -e 's,\.$$,,'`~cvs$$DEBIAN_NSS_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nss MOZ_CO_DATE="$$DEBIAN_NSS_CO_DATE" ; \
	fi ; \
	mkdir $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	mv mozilla $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	rm -f $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_NSS_APPNAME)-$$DEBIAN_NSS_VERSION ; \
	ls -l $(DEBIAN_NSS_APPNAME)_$$DEBIAN_NSS_VERSION.orig.tar.gz

$(DEBIAN_NSPR_TARGET): $(MOZ_CLIENT) $(STAMP) $(DEBIAN_NSPR_FILE)
	URL=$(DEBIAN_NSPR_URL) ; \
	if [ "$(DEBIAN_TAG)" != "" ] ; then \
	DEBIAN_NSPR_VERSION="`grep -E '^MOD_(MAJOR|MINOR|PATCH)_VERSION' $(DEBIAN_NSPR_FILE) | cut -d= -f2 | tr '\n' '.' | sed -e 's,\.$$,,'`~tag$(DEBIAN_TAG)" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nspr $(DEBIAN_MOZ_CO_TAG) ; \
	else \
	if [ "$(DEBIAN_DATE)" != "" ] ; then DEBIAN_NSPR_DATE=$(DEBIAN_DATE) ; else DEBIAN_NSPR_DATE=`$(GET)` ; fi ; \
	DEBIAN_NSPR_CO_DATE="`echo $$DEBIAN_NSPR_DATE | sed -e 's/[rt]/ /'`" ; \
	DEBIAN_NSPR_VERSION="`grep -E '^MOD_(MAJOR|MINOR|PATCH)_VERSION' $(DEBIAN_NSPR_FILE) | cut -d= -f2 | tr '\n' '.' | sed -e 's,\.$$,,'`~cvs$$DEBIAN_NSPR_DATE" ; \
	make -f $(MOZ_CLIENT) checkout MOZ_CO_PROJECT=nspr MOZ_CO_DATE="$$DEBIAN_NSPR_CO_DATE" ; \
	fi ; \
	mkdir $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	mv mozilla $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	rm -f $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz && \
	echo "Creating $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz ..." && \
	tar zcf $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz $(EXCLUDE) $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION && \
	rm -rf cvsco.log* $(STAMP) .pc $(DEBIAN_NSPR_APPNAME)-$$DEBIAN_NSPR_VERSION ; \
	ls -l $(DEBIAN_NSPR_APPNAME)_$$DEBIAN_NSPR_VERSION.orig.tar.gz

.PHONY : all clean help deps client unpatch status