PACKAGE=Firefox
VERSION=6
UPSTREAM_VERSION=3.0.1
UPSTREAM_BASE_URL=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(UPSTREAM_VERSION)
UPSTREAM=firefox-$(UPSTREAM_VERSION).tar.bz2
# canonical list of languages supported is in firefox-activity.py
LANGUAGES=$(shell ./firefox-activity.py --languages)
ACTIVITY_FILES=\
	activity/activity.info \
	activity/activity-firefox.svg
EXTRA_FILES=\
	Makefile \
        install-flash \
        install-java \
	firefox-activity.py \
	localstore.rdf \
	vendor.js

bundle: $(PACKAGE)-$(VERSION).xo

download:
	wget -N $(UPSTREAM_BASE_URL)/linux-i686/en-US/$(UPSTREAM)
	wget -N -P lang $(foreach f,$(LANGUAGES),$(UPSTREAM_BASE_URL)/linux-i686/xpi/$(f).xpi)

update-version:
	sed -e '/general.useragent.vendorSub/c pref("general.useragent.vendorSub", "$(PACKAGE)-$(VERSION)");' \
	    -i vendor.js
	sed -e '/^name/c name = $(PACKAGE)' \
	    -e '/^activity_version/c activity_version = $(VERSION)' \
	    -i activity/activity.info
	sed -e '/^<a href="/c <a href="$(PACKAGE)-$(VERSION).xo">$(PACKAGE)-$(VERSION).xo</a>' \
	    -e '/^<span class="olpc-activity-version"/c <span class="olpc-activity-version">$(VERSION)</span>' \
	    -i update.html

$(PACKAGE)-$(VERSION).xo: $(UPSTREAM) $(ACTIVITY_FILES) $(EXTRA_FILES) \
	$(foreach f,$(LANGUAGES),lang/$(f).xpi)
	$(MAKE) update-version
	-$(RM) -r firefox $(PACKAGE)-$(VERSION).activity $@
	tar xjf $(UPSTREAM)
	mkdir -p firefox/activity
	cp $(ACTIVITY_FILES) firefox/activity/
	cp firefox-activity.py firefox
	# tweak defaults
	cp vendor.js firefox/defaults/pref/
	echo "browser.startup.homepage=file:///usr/share/library-common/index.html" \
	  > firefox/browserconfig.properties
	cp localstore.rdf firefox/defaults/profile/
	# install Sugar extension
	cp -r Sugar "firefox/extensions/sugar@laptop.org"
	# install language packs
	for l in $(LANGUAGES); do \
	  mkdir lang.tmp ; \
	  unzip -d lang.tmp lang/$$l.xpi ; \
	  dirname=`sed -ne 's/^.*em:id="\([^"]*\)".*$$/\1/p' lang.tmp/install.rdf` ; \
	  echo $$dirname ; \
	  mkdir firefox/extensions/$$dirname ; \
	  mv lang.tmp/{chrome,chrome.manifest,install.rdf} firefox/extensions/$$dirname/ ; \
	  $(RM) -r lang.tmp ; \
	done
	# install plugin helpers
	cp install-{java,flash} firefox/
	# give rainbox hints about permissions
	echo 'constant-uid' > firefox/activity/permissions.info
	# backwards compatibility with rainbow 0.7.20
	cp firefox/activity/permissions.info firefox/permissions.info
	# package as .xo
	find firefox -type f | sed -e 's:^firefox/::' > MANIFEST
	mv MANIFEST firefox/
	mv firefox $(PACKAGE)-$(VERSION).activity
	zip -r $@ $(PACKAGE)-$(VERSION).activity
	-$(RM) -r $(PACKAGE)-$(VERSION).activity

upload: $(PACKAGE)-$(VERSION).xo
	scp $< dev.laptop.org:public_html/bundles
	scp update.html dev.laptop.org:public_html/bundles/firefox.html
