# Created by Fabien Tassin 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/ /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