summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2010-06-26 07:46:49 +0200
committerRemi Collet <fedora@famillecollet.com>2010-06-26 07:46:49 +0200
commit6f77138fd8f6b6e3c0cdfbe72acc964da48cc04c (patch)
tree73082d5c987c51c21733c7649e8b50a0b81bb6b9
import sunbird (for thunderbird-lightning)
-rw-r--r--Makefile4
-rwxr-xr-xfind-external-requires23
-rwxr-xr-xmozilla-extension-update.sh144
-rw-r--r--mozilla-jemalloc.patch24
-rw-r--r--sunbird-1.0-libical.patch59
-rw-r--r--sunbird-1.0-uilocale.patch32
-rw-r--r--sunbird-l10n.tarbin0 -> 3840000 bytes
-rw-r--r--sunbird.desktop21
-rw-r--r--sunbird.spec523
-rw-r--r--xulrunner-1.9.2.1-build.patch12
10 files changed, 842 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1e65467
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+SRCDIR := $(shell pwd)
+NAME := $(shell basename $(SRCDIR))
+include ../common/Makefile
+
diff --git a/find-external-requires b/find-external-requires
new file mode 100755
index 0000000..d79db1d
--- /dev/null
+++ b/find-external-requires
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Finds requirements provided outside of the current file set
+
+filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
+
+provides=`echo $filelist | /usr/lib/rpm/find-provides`
+
+{
+for f in $filelist ; do
+ echo $f | /usr/lib/rpm/find-requires | while read req ; do
+ found=0
+ for p in $provides ; do
+ if [ "$req" = "$p" ]; then
+ found=1
+ fi
+ done
+ if [ "$found" = "0" ]; then
+ echo $req
+ fi
+ done
+done
+} | sort -u \ No newline at end of file
diff --git a/mozilla-extension-update.sh b/mozilla-extension-update.sh
new file mode 100755
index 0000000..1bf15a6
--- /dev/null
+++ b/mozilla-extension-update.sh
@@ -0,0 +1,144 @@
+#!/bin/sh
+#
+# This script is used to add and remove our extension from one of the Mozilla
+# products directory, and is run from 'triggers' when the product is installed or
+# upgraded, as well as when our package is installed. It is needed because
+# Mozilla products are installed into versioned directories in /usr/lib[64]/<product>
+# so we have to make a new symlink into the right directory when the
+# application is installed or upgraded. But we would rather not leave
+# our old symlinks behind, since that will cause the application
+# directories not to be removed. (flash-player leaves its old symlinks behind,
+# but that's no excuse for us to do the same...)
+#
+# Because I don't know any way of finding out what the new version
+# is on installation or old version on uninstallation, we have
+# to do things in a somewhat non-intuitive way
+#
+# The order on upgrade of the mozilla application is:
+#
+# 1. new package installed
+# 2. triggerin for new package - we add all symlinks
+# 3. triggerun for old package - we remove all symlinks
+# 4. old package uninstalled
+# 5. triggerpostun for old package - we add all symlinks
+#
+# Triggers are also run on self-upgrade, in that case we do:
+#
+# 1. new package installed
+# 2. triggerin for new package - we add all symlinks
+# 3. triggerun for old package - we remove all symlinks
+# 4. old package uninstalled
+# 5. postun for old package - we add all symlinks
+# 6. triggerpostun for old package - NOT RUN (contrary to RPM docs)
+#
+#
+# Script arguments:
+# --appname: the mozilla application that this extension should register into.
+# Usually firefox or thunderbird.
+# --extname: the name of the extension. It can be determined by looking at
+# the install.rdf file, in the extension directory. This file
+# contains several <em:id> tags. The extname parameter is the
+# content of the em:id tag which is not contained in the
+# em:targetApplication tag
+# --extpath: the path where the extension will be installed
+# --action: either "install" or "remove"
+# --basedir: the dirname of the directory where the target application is
+# installed. Usually /usr/lib or /usr/lib64>, it defaults to
+# /usr/lib
+#
+#
+# Here's an example implementation in rpm scriptlets:
+#
+# %define tbupdate %{_libdir}/lightning/mozilla-extension-update.sh --appname thunderbird --extname {e2fda1a4-762b-4020-b5ad-a41df1933103} --basedir %{_libdir} --extpath %{_libdir}/lightning --action
+#
+# %post
+# %{tbupdate} install || true
+#
+# %preun
+# # On removal (but not upgrade), remove the extention
+# if [ $1 = 0 ] ; then
+# %{tbupdate} remove || true
+# fi
+#
+# %postun
+# # This is needed not to reverse the effect of our preun, which
+# # is guarded against upgrade, but because of our triggerun,
+# # which is run on self-upgrade, though triggerpostun isn't
+# if [ $1 != 0 ] ; then
+# %{tbupdate} install || true
+# fi
+#
+# %triggerin -- thunderbird
+# %{tbupdate} install || true
+#
+# %triggerun -- thunderbird
+# %{tbupdate} remove || true
+#
+# %triggerpostun -- thunderbird
+# # Guard against being run post-self-uninstall, even though that
+# # doesn't happen currently (see comment above)
+# if [ "$1" != 0 ] ; then
+# %{tbupdate} install || true
+# fi
+
+
+die() {
+ echo >&2 "$@"
+ exit 0
+}
+
+usage() {
+ die "Usage: $0 --appname <application-name> --extname <extension-name> --extpath <extension-path> --action <install|remove> [--basedir </usr/lib|/usr/lib64>]"
+}
+
+appname=
+extname=
+extpath=
+action=
+basedir=/usr/lib
+while [ "$#" -gt "0" ]; do
+ case "$1" in
+ --appname)
+ shift; appname="$1" ;;
+ --extname)
+ shift; extname="$1" ;;
+ --extpath)
+ shift; extpath="$1" ;;
+ --action)
+ shift; action="$1" ;;
+ --basedir)
+ shift; basedir="$1" ;;
+ *) usage ;;
+ esac
+ shift
+done
+
+
+if [ "$action" = "install" ] ; then
+ # Add symlinks to any mozilla directory that looks like it is part of a
+ # currently installed package
+ for d in $basedir/${appname}*; do
+ if [ "$d" = "$basedir/${appname}*" ] ; then
+ continue
+ fi
+ link=$d/extensions/$extname
+ if [ -e $extpath -a -e $d/$appname-bin -a -d $d/extensions -a ! -L $link ] ; then
+ ln -s $extpath $link
+ fi
+ done
+elif [ "$action" = "remove" ] ; then
+ # Remove any symlinks we've created into any mozilla directory
+ for d in $basedir/${appname}*; do
+ if [ "$d" = "$basedir/${appname}*" ] ; then
+ continue
+ fi
+ link=$d/extensions/$extname
+ if [ -L $link ] ; then
+ rm $link
+ fi
+ done
+else
+ usage
+fi
+
+exit 0
diff --git a/mozilla-jemalloc.patch b/mozilla-jemalloc.patch
new file mode 100644
index 0000000..2ef0b97
--- /dev/null
+++ b/mozilla-jemalloc.patch
@@ -0,0 +1,24 @@
+diff -r f1af606531f5 memory/jemalloc/jemalloc.h
+--- mozilla/memory/jemalloc/jemalloc.h Sat Nov 22 20:22:22 2008 +0100
++++ mozilla/memory/jemalloc/jemalloc.h Mon Dec 01 16:53:06 2008 -0500
+@@ -45,14 +45,14 @@
+ } jemalloc_stats_t;
+
+ #ifndef MOZ_MEMORY_DARWIN
+-void *malloc(size_t size);
+-void *valloc(size_t size);
+-void *calloc(size_t num, size_t size);
+-void *realloc(void *ptr, size_t size);
+-void free(void *ptr);
++void *malloc(size_t size) __THROW __attribute_malloc__ __wur;
++void *valloc(size_t size) __THROW __attribute_malloc__ __wur;
++void *calloc(size_t num, size_t size) __THROW __attribute_malloc__ __wur;
++void *realloc(void *ptr, size_t size) __THROW __attribute_malloc__ __wur;
++void free(void *ptr) __THROW __attribute_malloc__ __wur;
+ #endif
+
+-int posix_memalign(void **memptr, size_t alignment, size_t size);
++int posix_memalign(void **memptr, size_t alignment, size_t size) __THROW __attribute_malloc__ __wur;
+ void *memalign(size_t alignment, size_t size);
+ size_t malloc_usable_size(const void *ptr);
+ void jemalloc_stats(jemalloc_stats_t *stats);
diff --git a/sunbird-1.0-libical.patch b/sunbird-1.0-libical.patch
new file mode 100644
index 0000000..ba71f01
--- /dev/null
+++ b/sunbird-1.0-libical.patch
@@ -0,0 +1,59 @@
+Link against system libical instead of bundled.
+https://bugzilla.redhat.com/show_bug.cgi?id=459923
+
+Lubomir Rintel <lkundrak@v3.sk>
+
+--- calendar/base/build/Makefile.in.libical 2007-12-27 11:01:41.000000000 +0100
++++ calendar/base/build/Makefile.in 2008-09-23 16:02:42.000000000 +0200
+@@ -63,7 +63,6 @@
+ js \
+ xpconnect \
+ string \
+- ical \
+ calbase
+
+ CPPSRCS = calBaseModule.cpp \
+@@ -74,7 +73,6 @@
+
+ SHARED_LIBRARY_LIBS = \
+ $(DEPTH)/calendar/base/src/$(LIB_PREFIX)calbase_s.$(LIB_SUFFIX) \
+- $(DEPTH)/calendar/libical/src/libical/$(LIB_PREFIX)mozical.$(LIB_SUFFIX) \
+ $(NULL)
+
+ ifdef MOZILLA_INTERNAL_API
+@@ -94,4 +92,7 @@
+ $(NULL)
+ endif
+
++# External libical
++EXTRA_DSO_LDOPTS += -lical
++
+ include $(topsrcdir)/config/rules.mk
+--- calendar/Makefile.in.libical 2008-09-23 17:13:34.000000000 +0200
++++ calendar/Makefile.in 2008-09-23 17:07:30.000000000 +0200
+@@ -42,7 +42,7 @@
+ include $(DEPTH)/config/autoconf.mk
+
+ MODULE = calendar
+-DIRS = libical resources base providers import-export locales
++DIRS = resources base providers import-export locales
+
+ ifdef ENABLE_TESTS
+ DIRS += test
+--- calendar/lightning/Makefile.in.libical 2008-07-24 03:07:05.000000000 +0200
++++ calendar/lightning/Makefile.in 2008-09-23 16:02:42.000000000 +0200
+@@ -71,7 +71,7 @@
+ endif
+ endif
+
+-DIRS = ../libical \
++DIRS = \
+ ../locales \
+ ../base \
+ ../providers \
+--- /dev/null 2008-09-23 20:44:22.879046487 +0200
++++ calendar/base/src/ical.h 2008-09-24 11:28:09.000000000 +0200
+@@ -0,0 +1,3 @@
++#pragma GCC visibility push(default)
++#include <libical/ical.h>
++#pragma GCC visibility pop
diff --git a/sunbird-1.0-uilocale.patch b/sunbird-1.0-uilocale.patch
new file mode 100644
index 0000000..d1a8e2b
--- /dev/null
+++ b/sunbird-1.0-uilocale.patch
@@ -0,0 +1,32 @@
+Guess the UI locale to use. If only intl.locale.matchOS worked...
+
+Lubomir Rintel <lkundrak@v3.sk>
+
+diff -up mozilla/build/unix/mozilla.in.uilocale mozilla/build/unix/mozilla.in
+diff -up mozilla/build/unix/run-mozilla.sh.uilocale mozilla/build/unix/run-mozilla.sh
+--- mozilla/build/unix/run-mozilla.sh.uilocale 2009-04-28 21:53:14.000000000 +0200
++++ mozilla/build/unix/run-mozilla.sh 2009-04-28 21:54:39.000000000 +0200
+@@ -279,6 +279,23 @@ MOZILLA_FIVE_HOME=$MOZ_DIST_BIN
+ if [ -z "$MRE_HOME" ]; then
+ MRE_HOME=$MOZILLA_FIVE_HOME
+ fi
++
++# Try without a local variant first, then with a local variant
++# So that pt-BR doesn't try to use pt for example
++
++SHORTMOZLOCALE=`echo $LANG | sed "s|_\([^.]*\).*||g"`
++MOZLOCALE=`echo $LANG | sed "s|_\([^.]*\).*|-\1|g"`
++
++if [ -f ${MOZ_DIST_BIN}/extensions/langpack-${MOZLOCALE}@sunbird.mozilla.org/chrome/$MOZLOCALE.jar ]
++then
++ set -- "$@" -UILocale $MOZLOCALE
++else
++ if [ -f ${MOZ_DIST_BIN}/extensions/langpack-${SHORTMOZLOCALE}@sunbird.mozilla.org/chrome/$SHORTMOZLOCALE.jar ]
++ then
++ set -- "$@" -UILocale $SHORTMOZLOCALE
++ fi
++fi
++
+ ##
+ ## Set LD_LIBRARY_PATH
+ ##
diff --git a/sunbird-l10n.tar b/sunbird-l10n.tar
new file mode 100644
index 0000000..873891c
--- /dev/null
+++ b/sunbird-l10n.tar
Binary files differ
diff --git a/sunbird.desktop b/sunbird.desktop
new file mode 100644
index 0000000..19d4cf3
--- /dev/null
+++ b/sunbird.desktop
@@ -0,0 +1,21 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Sunbird Calendar
+Name[de]=Sunbird Kalender
+Name[cs]=Sunbird Kalendár
+Name[sk]=Sunbird Kalendár
+Comment=The Mozilla Calendar
+Comment[de]=Der Mozilla-Kalender
+Comment[cs]=Mozilla Kalendár
+Comment[sk]=Mozilla Kalendár
+GenericName=The Mozilla Calendar
+GenericName[de]=Der Mozilla-Kalender
+GenericName[cs]=Mozilla Kalendár
+GenericName[sk]=Mozilla Kalendár
+Exec=sunbird
+TryExec=sunbird
+Icon=sunbird
+MimeType=text/calendar;text/x-vcalendar;
+Categories=Office;Calendar;
+Terminal=false
diff --git a/sunbird.spec b/sunbird.spec
new file mode 100644
index 0000000..ccbcd15
--- /dev/null
+++ b/sunbird.spec
@@ -0,0 +1,523 @@
+%define nspr_version 4.8
+%define nss_version 3.12.3.99
+%define cairo_version 1.8.8
+%define dbus_glib_version 0.6
+%define sqlite_version 3.6.22
+%define lcms_version 1.19
+
+%bcond_without lightning
+%ifarch ppc
+%if 0%{?rhel}
+%define with_lightning %{nil}
+%endif
+%endif
+
+%define version_internal 1.0b2
+%define progdir %{_libdir}/%{name}-%{version_internal}pre
+%define thunderbird_version 3.1
+%define libnotify_version 0.4
+
+# This is to filter unwanted provides, that should be provided only by gecko-devel
+%define _use_internal_dependency_generator 0
+%define __find_requires %{SOURCE100} %{buildroot}
+
+Name: sunbird
+Version: 1.0
+Release: 0.25.b2pre%{?dist}
+Summary: Calendar application built upon Mozilla toolkit
+
+Group: Applications/Productivity
+License: MPLv1.1 or GPLv2+ or LGPLv2+
+URL: http://www.mozilla.org/projects/calendar/sunbird/
+#Source0: http://releases.mozilla.org/pub/mozilla.org/calendar/sunbird/releases/%{version}/source/lightning-sunbird-%{version}-source.tar.bz2
+Source0: thunderbird-%{thunderbird_version}.source.tar.bz2
+Source1: sunbird.desktop
+Source2: sunbird-l10n.tar
+#sunbird-langpacks-0.9.tar.gz
+Source3: mozilla-extension-update.sh
+# This is used just for langpacks.
+# TODO: build them!
+#Source4: http://releases.mozilla.org/pub/mozilla.org/calendar/lightning/releases/0.9/lightning-0.9.linux-i686.xpi
+Source100: find-external-requires
+
+# Pulled from Thunderbird
+Patch0: mozilla-jemalloc.patch
+# Fixes gcc complain that nsFrame::delete is protected
+Patch1: xulrunner-1.9.2.1-build.patch
+
+# Ours
+Patch10: sunbird-1.0-libical.patch
+Patch11: sunbird-1.0-uilocale.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: libIDL-devel
+BuildRequires: desktop-file-utils
+BuildRequires: libgnomeui-devel
+BuildRequires: krb5-devel
+BuildRequires: pango-devel >= 1.22
+BuildRequires: freetype-devel >= 2.1.9
+BuildRequires: libXt-devel
+BuildRequires: libXrender-devel
+BuildRequires: desktop-file-utils
+%if 0%{?fedora} >= 11
+BuildRequires: nspr-devel >= %{nspr_version}
+BuildRequires: nss-devel >= %{nss_version}
+%endif
+BuildRequires: dbus-glib-devel >= %{dbus_glib_version}
+BuildRequires: libpng-devel, libjpeg-devel, gtk2-devel
+BuildRequires: zlib-devel, gzip, zip, unzip
+BuildRequires: GConf2-devel
+BuildRequires: gnome-vfs2-devel
+BuildRequires: libical-devel
+BuildRequires: zip
+BuildRequires: autoconf213
+BuildRequires: alsa-lib-devel
+%if 0%{fedora} >= 11
+BuildRequires: cairo-devel >= %{cairo_version}
+Requires: nspr >= %{nspr_version}
+Requires: nss >= %{nss_version}
+%endif
+%if 0%{?fedora} >= 13
+BuildRequires: sqlite-devel >= %{sqlite_version}
+%endif
+%if %{fedora} >= 10
+BuildRequires: libnotify-devel >= %{libnotify_version}
+%endif
+%if %{fedora} >= 9
+BuildRequires: lcms-devel >= %{lcms_version}
+%endif
+
+
+Requires(post): desktop-file-utils
+Requires(postun): desktop-file-utils
+
+AutoProv: 0
+
+%description
+Mozilla Sunbird is a cross-platform calendar application, built upon
+Mozilla Toolkit. It brings Mozilla-style ease-of-use to your
+calendar, without tying you to a particular storage solution.
+
+
+%if %with lightning
+%package -n thunderbird-lightning
+Summary: The calendar extension to Thunderbird
+Group: Applications/Productivity
+Requires: thunderbird >= %{thunderbird_version}
+Obsoletes: thunderbird-lightning-wcap <= 0.8
+Provides: thunderbird-lightning-wcap = %{version}-%{release}
+AutoProv: 0
+
+%description -n thunderbird-lightning
+Lightning brings the Sunbird calendar to the popular email client,
+Mozilla Thunderbird. Since it's an extension, Lightning is tightly
+integrated with Thunderbird, allowing it to easily perform email-related
+calendaring tasks.
+
+%define lightning_extname '{e2fda1a4-762b-4020-b5ad-a41df1933103}'
+%define tbupdate_lightning \\\
+ %{_libdir}/thunderbird-lightning/mozilla-extension-update.sh \\\
+ --appname thunderbird \\\
+ --extname %{lightning_extname} \\\
+ --basedir %{_libdir} \\\
+ --extpath %{_libdir}/thunderbird-lightning \\\
+ --action
+
+%define gdata_extname '{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}'
+%define tbupdate_gdata \\\
+ %{_libdir}/thunderbird-lightning/mozilla-extension-update.sh \\\
+ --appname thunderbird \\\
+ --extname %{gdata_extname} \\\
+ --basedir %{_libdir} \\\
+ --extpath %{_libdir}/thunderbird-lightning-gdata \\\
+ --action
+%endif
+
+
+%prep
+%setup -n comm-1.9.2 -q -a 2
+%patch0 -p0 -b .jemalloc
+%patch1 -p1 -b .protected
+%patch10 -p0 -b .libical
+%patch11 -p0 -b .uilocale
+
+find . -name '*.cpp' -o -name '*.h' |xargs chmod -x
+
+
+%build
+cat >.mozconfig <<EOF
+ac_add_options --disable-crashreporter
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --disable-install-strip
+ac_add_options --disable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-updater
+ac_add_options --disable-xprint
+ac_add_options --enable-application=calendar
+ac_add_options --enable-calendar
+ac_add_options --enable-canvas
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-optimize="$(echo $RPM_OPT_FLAGS |sed -e 's/-O2/-Os/;s/-Wall//')"
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+%if %{fedora} >= 11
+ac_add_options --enable-system-cairo
+%endif
+ac_add_options --enable-xinerama
+ac_add_options --libdir="%{_libdir}"
+ac_add_options --prefix="%{_prefix}"
+ac_add_options --with-pthreads
+ac_add_options --with-system-jpeg
+%if %{fedora} >= 11
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+%endif
+ac_add_options --with-system-zlib
+%if %{fedora} >= 10
+ac_add_options --enable-libnotify
+%else
+ac_add_options --disable-libnotify
+%endif
+%if %{fedora} >= 11
+ac_add_options --enable-system-lcms
+%endif
+%if %{fedora} >= 13
+ac_add_options --enable-system-sqlite
+%endif
+EOF
+
+make -f client.mk build
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+# make install is bogus
+# copy tree, break symlinks
+mkdir -p $RPM_BUILD_ROOT%{progdir}
+cp -rL mozilla/dist/bin/* $RPM_BUILD_ROOT%{progdir}
+mkdir $RPM_BUILD_ROOT%{_bindir}
+mv $RPM_BUILD_ROOT%{progdir}/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name}
+
+desktop-file-install --vendor="fedora" \
+ --dir=$RPM_BUILD_ROOT%{_datadir}/applications/ \
+ %{SOURCE1}
+
+# Icon
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps
+cp $RPM_BUILD_ROOT%{progdir}/chrome/icons/default/default128.png \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
+
+# Install langpacks
+mkdir -p $RPM_BUILD_ROOT%{progdir}/extensions
+ls sunbird-l10n/*.xpi |while read PACK
+do
+ LANGUAGE=$(echo $PACK |sed 's,sunbird-l10n/sunbird-%{version_internal}pre.\(.*\).langpack.xpi,\1,')
+ DIR=$RPM_BUILD_ROOT%{progdir}/extensions/langpack-$LANGUAGE@sunbird.mozilla.org
+ mkdir -p $DIR
+ unzip -qod $DIR $PACK
+ find $DIR -type f |xargs chmod 0644
+
+ # Fix #441500
+ sed 's/\r//g' $DIR/install.rdf |awk '/^$/ {next} {print}' >lala
+ touch -r $DIR/install.rdf lala
+ mv lala $DIR/install.rdf
+
+done
+
+# GData provider for sunbird
+mkdir -p $RPM_BUILD_ROOT%{progdir}/extensions/%{gdata_extname}
+touch $RPM_BUILD_ROOT%{progdir}/extensions/%{gdata_extname}/chrome.manifest
+unzip -qod $RPM_BUILD_ROOT%{progdir}/extensions/%{gdata_extname} \
+ mozilla/dist/xpi-stage/gdata-provider.xpi
+
+%if %with lightning
+# Avoid "Chrome Registration Failed" message on first startup and extension installation
+touch $RPM_BUILD_ROOT%{progdir}/extensions/%{lightning_extname}/chrome.manifest
+touch $RPM_BUILD_ROOT%{progdir}/extensions/%{gdata_extname}/chrome.manifest
+
+# Lightning and GData provider for it
+unzip -qod $RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning mozilla/dist/xpi-stage/lightning.xpi
+unzip -qod $RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning-gdata mozilla/dist/xpi-stage/gdata-provider.xpi
+install -p -m 755 %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning/mozilla-extension-update.sh
+
+# No langpacks for preview release
+%if 0
+# Unpack lightning language packs, except en_US
+unzip -l %{SOURCE4} '*.jar' |
+ awk '/-[^\/]*\.jar/ && !/en-US/ {print $4}' |
+ xargs unzip -qod $RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning %{SOURCE4}
+
+# Register them
+ls $RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning/chrome |
+ sed -n '/en-US/n;s/\(\([^-]*\)-\(.*\)\.jar\)/locale \2 \3 jar:chrome\/\1!\/locale\/\3\/\2\//p' \
+ >>$RPM_BUILD_ROOT%{_libdir}/thunderbird-lightning/chrome.manifest
+ # ^^^ I'm going to burn in hell for this ^^^
+%endif
+%endif
+
+# Permissions fixup
+find $RPM_BUILD_ROOT -name '*.xpm' -o -name '*.js' |
+ xargs chmod 0644 mozilla/LICENSE
+find $RPM_BUILD_ROOT -name '*.so' |xargs chmod 0755
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%post
+update-desktop-database %{_datadir}/applications
+touch --no-create %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+
+%postun
+update-desktop-database %{_datadir}/applications
+touch --no-create %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+
+%if %with lightning
+%post -n thunderbird-lightning
+%{tbupdate_lightning} install || :
+%{tbupdate_gdata} install || :
+
+
+%preun -n thunderbird-lightning
+if [ $1 = 0 ]; then
+ %{tbupdate_lightning} remove || :
+ %{tbupdate_gdata} remove || :
+fi
+
+
+%postun -n thunderbird-lightning
+# This is needed not to reverse the effect of our preun, which
+# is guarded against upgrade, but because of our triggerun,
+# which is run on self-upgrade, though triggerpostun isn't
+if [ $1 != 0 ]; then
+ %{tbupdate_lightning} install || :
+ %{tbupdate_gdata} install || :
+fi
+
+%triggerin -n thunderbird-lightning -- thunderbird
+%{tbupdate_lightning} install || :
+%{tbupdate_gdata} install || :
+
+%triggerun -n thunderbird-lightning -- thunderbird
+%{tbupdate_lightning} remove || :
+%{tbupdate_gdata} remove || :
+
+%triggerpostun -n thunderbird-lightning -- thunderbird
+# Guard against being run post-self-uninstall, even though that
+# doesn't happen currently (see comment above)
+if [ $1 != 0 ]; then
+ %{tbupdate_lightning} install || :
+ %{tbupdate_gdata} install || :
+fi
+%endif
+
+
+%files
+%defattr(-,root,root,-)
+%doc mozilla/LEGAL mozilla/LICENSE mozilla/README.txt
+%{progdir}
+%{_bindir}/sunbird
+%{_datadir}/applications/*.desktop
+%{_datadir}/icons/hicolor/128x128/apps/sunbird.png
+
+
+%if %with lightning
+%files -n thunderbird-lightning
+%doc mozilla/LEGAL mozilla/LICENSE mozilla/README.txt
+%defattr(-,root,root,-)
+%{_libdir}/thunderbird-lightning
+%{_libdir}/thunderbird-lightning-gdata
+%endif
+
+
+%changelog
+* Sat Jun 25 2010 Remi Collet <rpms@famillecollet.com> 1.0-0.25.b2pre
+- Rebuild for remi repo
+
+* Thu Jun 24 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.25.b2pre
+- Rebuild against Thunderbird 3.1
+
+* Tue Jun 22 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.24.b2pre
+- Fixed Thunderbird requires version
+
+* Tue Jun 22 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.23.b2pre
+- Rebuild against Thunderbird 3.1 RC2
+
+* Tue Mar 30 2010 Remi Collet <rpms@famillecollet.com> 1.0-0.21.20090916hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Tue Mar 30 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.21.20090916hg
+- Rebuild against new Thunderbird
+
+* Mon Mar 1 2010 Remi Collet <rpms@famillecollet.com> 1.0-0.20.20090916hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Mon Mar 1 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.20.20090916hg
+- Rebuild against new Thunderbird
+
+* Thu Feb 25 2010 Remi Collet <rpms@famillecollet.com> 1.0-0.19.20090916hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Thu Feb 25 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.19.20090916hg
+- Rebuild against new Thunderbird
+
+* Thu Jan 21 2010 Remi Collet <rpms@famillecollet.com> 1.0-0.17.20090916hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Thu Jan 21 2010 Jan Horak <jhorak@redhat.com> - 1.0-0.17.20090916hg
+- Rebuild against new Thunderbird
+
+* Wed Nov 25 2009 Remi Collet <rpms@famillecollet.com> 1.0-0.14.20090916hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Wed Nov 25 2009 Jan Horak <jhorak@redhat.com> - 1.0-0.14.20090916hg
+- Rebuild against new Thunderbird
+
+* Thu Sep 24 2009 Remi Collet <rpms@famillecollet.com> 1.0-0.7.20090715hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Tue Sep 22 2009 Jan Horak <jhorak@redhat.com> - 1.0-0.7.20090715hg
+- Sync up with Thunderbird
+
+* Sun Aug 16 2009 Remi Collet <rpms@famillecollet.com> 1.0-0.5.20090715hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Sun Jun 28 2009 Lubomir Rintel <lkundrak@v3.sk> - 1.0-0.5.20090715hg
+- Sync up with Thunderbird
+
+* Sun Jun 28 2009 Lubomir Rintel <lkundrak@v3.sk> - 1.0-0.5.20090513hg
+- Sync up with Thunderbird
+- Enable the Google Data Provider
+
+* Sat May 02 2009 Remi Collet <rpms@famillecollet.com> 1.0-0.2.20090302hg.fc#.remi
+- Rebuild for Fedora <= 10
+
+* Wed Apr 29 2009 Lubomir Rintel <lkundrak@v3.sk> - 1.0-0.2.20090302hg
+- Fix the permissions for real now
+
+* Tue Apr 28 2009 Lubomir Rintel <lkundrak@v3.sk> - 1.0-0.1.20090302hg
+- Update to version matching current Thunderbird
+
+* Sun Mar 1 2009 Lubomir Rintel <lkundrak@v3.sk> 0.9-6
+- Fix build with GCC 4.4
+
+* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Nov 24 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-4
+- Disable lightning on EL-5 ppc, since there's no Desktop with thunderbird
+- Fix summary
+
+* Thu Oct 2 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-3
+- Attempt to fix the libical patch's timezone problem
+
+* Wed Sep 24 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-2
+- Fix problem with symbol visibility and newer gcc I introduced with libical patch
+
+* Tue Sep 23 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-1
+- 0.9 GOLD
+- Fix use of system nss and nspr4
+- Link against system libical (#459923)
+- Add language packs for lightning (#449770)
+
+* Sun Aug 24 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-0.3.20080824cvs
+- Newer snapshot closer to RC
+- New langpacks
+- Fix install root path
+
+* Mon Aug 11 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-0.2.20080807cvs
+- Get rid of relative symlinks
+- Remove lignthing's libcalbasecomps.so provide
+- Fix dependencies of scriptlets
+
+* Sun Aug 10 2008 Lubomir Rintel <lkundrak@v3.sk> 0.9-0.1.20080807cvs
+- First attempt at 0.9, CVS snapshot close to first RC
+- Rewrite the requires generation, for it suffered bitrot
+
+* Mon May 19 2008 Lubomir Rintel <lkundrak@v3.sk> 0.8-4
+- Rebuild for new hunspell
+
+* Tue Apr 08 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-3
+- Really fix lightning dependencies (#441340)
+- Fix "da" and "it" lanugage packs (#441500)
+
+* Mon Apr 07 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-2
+- Blacklist dependencies of lightning on files included in tb (#441340)
+- Fix the extension update scriptlet escaping
+
+* Fri Apr 04 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-1
+- 0.8 GA
+
+* Fri Apr 04 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-0.3.cvs20080331
+- Translations
+
+* Tue Apr 01 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-0.2.cvs20080331
+- Unbreak dependencies (hopefully)
+- Try concurrent builds again, they seem to work now
+
+* Tue Apr 01 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.8-0.1.cvs20080331
+- Corrected license tag to mention all the applicable Licenses
+- Use libxul from XULrunner
+- Post 0.8 Release Candidate 1
+- Obsolete wcap subpackage -- got merged into mainline lightning
+
+* Sun Mar 09 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.7-10
+- Parralel makes were failing unpredictably
+
+* Thu Feb 28 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.7-9
+- Try to use the correct locale (#436693)
+
+* Mon Jan 21 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.7-8
+- Streamlined BuildRequires a bit
+- Do not provide stuff that has to be provided by firefox
+- Do not require what's in our fileset
+- Removed redundant and useless Source0 without upstream
+
+* Thu Jan 03 2008 Lubomir Kundrak <lkundrak@redhat.com> 0.7-7
+- Add patch to correct build with FORTIFY_SOURCE
+- Replace the name in .desktop file with a more descriptive one
+- Add translations to .desktop file
+
+* Sun Dec 30 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-6
+- disable updater
+
+* Tue Dec 11 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-5
+- fix debuginfo package
+
+* Tue Oct 30 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-4
+- rename the mozilla-lightning subpackage to thunderbird-lightning
+ since it's a thunderbird extension
+- create a "chrome.manifest" file to avoid "Chrome Registration Failed" message
+
+* Mon Oct 29 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-3
+- be even more complicated: build the wcap-enabler extension
+ (really, it's just cut'n'paste)
+
+* Mon Oct 29 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-2
+- split the lightning package
+- use scriptlets and triggers based on the mugshot package
+
+* Sat Oct 27 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.7-1
+- version 0.7
+
+* Tue Sep 11 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.5-3
+- minor spec cleanups
+- build the Lightning extension
+- add an option to build with official branding
+
+* Sun Sep 09 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.5-2
+- fix icon
+
+* Wed Jul 25 2007 Aurelien Bompard <abompard@fedoraproject.org> 0.5-1
+- initial release
diff --git a/xulrunner-1.9.2.1-build.patch b/xulrunner-1.9.2.1-build.patch
new file mode 100644
index 0000000..4d9ee43
--- /dev/null
+++ b/xulrunner-1.9.2.1-build.patch
@@ -0,0 +1,12 @@
+diff -up xulrunner-1.9.2.1/mozilla-1.9.2/layout/generic/nsFrame.h.old xulrunner-1.9.2.1/mozilla-1.9.2/layout/generic/nsFrame.h
+--- xulrunner-1.9.2.1/mozilla/layout/generic/nsFrame.h.old 2009-11-11 15:34:51.000000000 +0100
++++ xulrunner-1.9.2.1/mozilla/layout/generic/nsFrame.h 2009-11-11 15:33:09.000000000 +0100
+@@ -157,7 +157,7 @@ private:
+ // Left undefined; nsFrame objects are never allocated from the heap.
+ void* operator new(size_t sz) CPP_THROW_NEW;
+
+-protected:
++public:
+ // Overridden to prevent the global delete from being called, since
+ // the memory came out of an arena instead of the heap.
+ //