diff --git a/.gitattributes b/.gitattributes index 172ec92..9b03811 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,5 +21,3 @@ *.xz filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text -## Specific LFS patterns -mailredirect-0.7.5.xpi filter=lfs diff=lfs merge=lfs -text diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index 4d6b967..3281d71 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Fri Jul 17 13:48:02 CEST 2009 - wr@rosenauer.org + +- major update to 3.0b3 +- update enigmail to 0.96pre +- created enigmail subpackage and install to system wide location + for Thunderbird and SeaMonkey +- define MOZ_APP_LAUNCHER for session management (bmo#453689) + (mozilla-app-launcher.patch and mozilla.sh.in) +- move opensuse.js prefs to all-opensuse.js prefs to be able + to override prefs in all-thunderbird.js +- move intl.locale.matchOS to all-opensuse.js +- added mozilla-jemalloc_deepbind.patch to fix various possible + crashes (bnc#503151, bmo#493541) + ------------------------------------------------------------------- Fri Jun 19 10:35:46 CEST 2009 - coolo@novell.com diff --git a/MozillaThunderbird.desktop b/MozillaThunderbird.desktop index 718b614..080b4b4 100644 --- a/MozillaThunderbird.desktop +++ b/MozillaThunderbird.desktop @@ -1,8 +1,11 @@ [Desktop Entry] +Encoding=UTF-8 Name=Thunderbird GenericName=Mail/News Client Comment=Mail/News Client +TryExec=thunderbird Exec=thunderbird Icon=thunderbird Terminal=false Type=Application +StartupNotify=true diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index ab1e2e8..96e9286 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -1,8 +1,8 @@ # -# spec file for package MozillaThunderbird (Version 2.0.0.21) +# spec file for package MozillaThunderbird (Version 3.0b3) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. -# Copyright (c) 2006-2009 Wolfgang Rosenauer +# Copyright (c) 2009 Wolfgang Rosenauer # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,30 +16,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# norootforbuild Name: MozillaThunderbird -BuildRequires: gcc-c++ libgnomeui-devel libidl-devel orbit-devel unzip update-desktop-files zip +BuildRequires: autoconf213 fdupes gcc-c++ libgnomeui-devel libidl-devel mozilla-nss-devel orbit-devel python startup-notification-devel unzip update-desktop-files zip %if %suse_version > 1030 BuildRequires: hunspell-devel %endif -%if %suse_version > 1020 -BuildRequires: fdupes -%endif %if %suse_version > 1100 BuildRequires: nss-shared-helper-devel %endif -# fix broken 9.3 requirements -%if %suse_version <= 930 -BuildRequires: freetype2-devel popt-devel -%endif -# fix broken SLES9 requirements -%if %suse_version == 910 -BuildRequires: gnome-vfs2 libgnome libgnomeui pkgconfig -%endif License: GPL v2 or later ; LGPL v2.1 or later ; MPL .. -Version: 2.0.0.21 -Release: 4 +%define mainversion 3.0b3 +Version: %{mainversion} +Release: 1 Summary: The Stand-Alone Mozilla Mail Component Url: http://www.mozilla.org/products/thunderbird/ Group: Productivity/Networking/Email/Clients @@ -48,81 +39,42 @@ Source1: MozillaThunderbird.desktop Source2: add-plugins.sh.in Source3: mozilla.sh.in Source4: l10n-%{version}.tar.bz2 -Source5: mailredirect-0.7.5.xpi +Source5: shipped-locales Source6: suse-default-prefs.js -Source9: enigmail-0.95.7.tar.bz2 -Source11: enigmail.manifest -Source12: %{name}-rpmlintrc -Patch1: replytolist.patch +Source7: find-external-requires.sh +Source8: MozillaThunderbird-rpmlintrc +Source9: enigmail-20090716.tar.bz2 +Source10: create-tar.sh +Patch1: mozilla-app-launcher.patch Patch2: thunderbird-appname.patch -Patch3: mozilla-gcc4.3-fixes.patch -Patch4: locale.patch -Patch5: abuild.patch -Patch6: nspr-prdtoa.patch -Patch7: enig-shared.patch -Patch8: gcc-undefined-ops.patch -Patch9: tb-develdirs.patch -Patch10: mips-buildfix.diff -Patch12: misc.dif -Patch13: nss-opt.patch -Patch14: html-compose.patch -Patch15: system-extensions.patch -Patch16: list-replyto-clobber.patch -Patch17: mozilla-path_len.patch -Patch18: mozldap-charray_strdup.patch -Patch19: mozilla-shared-nss-db.patch -Patch20: mozilla-gcc44.patch -Patch22: cjk-postscript-fonts.dif -Patch25: postscript.patch -Patch26: cups-paper.patch -Patch27: thunderbird-1.5.0.8-uninitalized-vars-232305.patch -Patch28: mozilla-system-hunspell.patch +Patch3: mozilla-jemalloc_deepbind.patch +Patch5: tb-develdirs.patch +Patch7: mozilla-path_len.patch +Patch9: mozilla-shared-nss-db.patch +Patch10: mozilla-system-hunspell.patch.bz2 +Patch11: thunderbird-shared-nss-db.patch +Patch12: thunderbird-no-update.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: coreutils fileutils textutils /bin/sh -%if %suse_version > 1000 -Suggests: %{name}-translations -%endif +### build options +%define build_enigmail 1 %define has_system_cairo 0 -%define has_system_nspr 0 -%define has_system_nss 0 -%if %suse_version > 930 +%if %suse_version > 1100 %define has_system_cairo 1 %endif -%if %suse_version > 1010 || 0%{?opensuse_bs} -# NSPR and NSS in OBS:mozilla are always sufficient -%define has_system_nspr 1 -# NSS version on 10.1 is too old (<3.11) -%define has_system_nss 1 -%endif -%if %has_system_nspr -BuildRequires: mozilla-nspr-devel +%define localize 1 +%define lightning 0 +### build options end +%define _use_internal_dependency_generator 0 +%define __find_requires sh %{SOURCE7} +%global provfind sh -c "grep -v '.so' | %__find_provides" +%global __find_provides %provfind Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr) -%endif -%if %has_system_nss -BuildRequires: mozilla-nss-devel -%endif -%define _unpackaged_files_terminate_build 0 -%define releasedate 2009031000 +Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss) +%define releasedate 2009071500 %define progname thunderbird %define progdir %{_prefix}/%_lib/thunderbird -%define my_provides /tmp/my-provides -%define my_requires /tmp/my-requires -%if %suse_version > 920 %define libgssapi libgssapi_krb5.so.2 -%else -%define libgssapi libgssapi.so.1 -%endif -### build options -%define milestone 1 -%define build_enigmail 1 -%define localize 1 -### build options end -%if %build_enigmail -Requires: /usr/bin/gpg -%if %suse_version > 1020 -Requires: pinentry-dialog -%endif -%endif %description Mozilla Thunderbird is a redesign of the Mozilla Mail component. It is @@ -139,81 +91,88 @@ Authors: %package translations License: GPL v2 or later ; LGPL v2.1 or later ; MPL .. Summary: Translations of MozillaThunderbird -Provides: locale(MozillaThunderbird:af;be;bg;ca;cs;da;de;el;en_GB;es_AR;es_ES;eu;fi;fr;ga_IE;he;hu;it;ja;ko;lt;mk;nb_NO;nl;nn_NO;pa_IN;pl;pt_BR;pt_PT;ru;sk;sl;sv_SE;tr;uk;zh_CN;zh_TW) +Provides: locale(%{name}:af;ar;be;bn_BD;ca;cs;de;el;en_GB;en_US;es_AR;es_ES;et;eu;fi;fr;fy_NL;ga_IE;gl;hu;id;is;it;ja;linux;win32;ja_JP_mac;osx;ko;lt;nb_NO;nl;nn_NO;pa_IN;pl;pt_BR;pt_PT;ro;ru;si;sk;sq;sv_SE;ta_LK;tr;uk;vi;zh_CN) Group: Productivity/Networking/Email/Clients -PreReq: %{name} = %{version} +PreReq: %{name} = %{mainversion} %description translations This package contains several optional languages for the user interface of MozillaThunderbird. - - Authors: -------- Mozilla Foundation %package devel License: GPL v2 or later ; LGPL v2.1 or later ; MPL .. -Summary: The Stand-Alone Mozilla Mail Component -Group: Productivity/Networking/Email/Clients -%if %has_system_nspr +Summary: Mozilla Thunderbird SDK +Group: Development/Libraries/Other Requires: mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel) -%endif -%if %has_system_nss -PreReq: mozilla-nss-devel -%endif -PreReq: %{name} = %{version} +PreReq: mozilla-nss-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss-devel) +PreReq: %{name} = %{mainversion} %description devel -Mozilla Thunderbird is a redesign of the Mozilla Mail component. It is -written using the XUL user interface language and designed to be -cross-platform. It is a stand-alone application instead of part of the -Mozilla application suite. - - +Software Development Kit to build plugins/extensions against Thunderbird. Authors: -------- Mozilla Foundation + +%if %lightning + +%package lightning +Version: 0.9 +Release: 1 +License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL) +Summary: Calendaring extension for Thunderbird +Group: Productivity/Networking/Email/Clients +PreReq: %{name} = %{mainversion} + +%description lightning +This package contains the Lightning calendar extension for Mozilla Thunderbird. +%endif +%if %build_enigmail + +%package -n enigmail +Version: 0.95.99 +Release: 1 +License: GPL v2 or later ; MPL .. +Summary: OpenPGP addon for Thunderbird and SeaMonkey +Group: Productivity/Networking/Email/Clients +Url: http://enigmail.mozdev.org +Requires: /usr/bin/gpg +Requires: pinentry-dialog + +%description -n enigmail +This package contains the Enigmail OpenPGP Addon for Thunderbird and SeaMonkey. +%endif + %prep %if %build_enigmail -%setup -n mozilla -q -b 4 -b 9 -cd $RPM_BUILD_DIR -%patch7 +%setup -n thunderbird -q -b 4 -b 9 +pushd $RPM_BUILD_DIR +popd %else -%setup -n mozilla -q -b 4 +%setup -n thunderbird -q -b 4 %endif -cd $RPM_BUILD_DIR/mozilla -%patch1 -%patch2 -%patch3 -%patch4 -%patch5 -%patch6 -%patch8 -%patch9 +# xulrunner patches +pushd mozilla +%patch1 -p1 +%patch3 -p1 +%patch7 -p1 +%patch9 -p1 +pushd extensions %patch10 -%patch12 -%patch13 -%patch14 -%patch15 -%patch16 -%patch17 -p1 -%patch18 -%patch20 -%patch22 -%patch25 -%patch26 -%patch27 -# contain configure changes -%patch19 -%patch28 +popd +popd +# comm-central patches +%patch2 +%patch5 +%patch11 +%patch12 -p1 %build -# This package failed when testing with -Wl,-as-needed being default. -# So we disable it here, if you want to retest, just delete this comment and the line below. export SUSE_ASNEEDED=0 export MOZ_BUILD_DATE=%{releasedate} export MOZILLA_OFFICIAL=1 @@ -222,96 +181,81 @@ export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing" %ifarch ppc64 export CFLAGS="$CFLAGS -mminimal-toc" %endif -# enigmail build fails with visibility enabled -%if %suse_version > 1020 -%ifarch x86_64 s390 s390x -export ac_cv_visibility_hidden="no" -%endif # hopefully only temporary change for gcc 4.3 -%if %suse_version > 1030 +%if %suse_version == 1030 export ac_cv_visibility_hidden="no" %endif -%endif -%ifarch ppc64 -export CFLAGS="$CFLAGS -mminimal-toc" -%endif export CXXFLAGS="$CFLAGS" export MOZCONFIG=$RPM_BUILD_DIR/mozconfig +# cat << EOF > $MOZCONFIG mk_add_options MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 +mk_add_options MOZ_MILESTONE_RELEASE=1 mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs} -. \$topsrcdir/mail/config/mozconfig +ac_add_options --enable-application=mail ac_add_options --prefix=%{_prefix} -ac_add_options --libdir=%{_libdir} -ac_add_options --sysconfdir=%{_sysconfdir} -ac_add_options --mandir=%{_mandir} +ac_add_options --libdir=%{progdir} ac_add_options --includedir=%{_includedir} +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --enable-optimize +ac_add_options --enable-static +ac_add_options --disable-shared +ac_add_options --with-system-nspr +ac_add_options --with-system-nss ac_add_options --with-system-jpeg -ac_add_options --with-system-png ac_add_options --with-system-zlib -#ac_add_options --enable-extensions=default,lightning -ac_add_options --enable-default-toolkit=gtk2 -ac_add_options --enable-xft -%if %suse_version > 920 -ac_add_options --enable-pango +ac_add_options --with-l10n-base=../l10n +#ac_add_options --with-system-png # no apng support +%if %lightning +ac_add_options --enable-extensions=default,lightning %endif %if %suse_version > 1030 ac_add_options --enable-system-myspell %endif -ac_add_options --disable-freetype2 +ac_add_options --enable-ldap-experimental ac_add_options --disable-installer -ac_add_options --disable-plugins -ac_add_options --enable-static -ac_add_options --disable-shared +ac_add_options --disable-mochitest +ac_add_options --disable-crashreporter +ac_add_options --enable-startup-notification +ac_add_options --enable-official-branding EOF -%if %has_system_nspr -cat << EOF >> $MOZCONFIG -ac_add_options --with-system-nspr -EOF -%endif -%if %has_system_nss -cat << EOF >> $MOZCONFIG -ac_add_options --with-system-nss -EOF -%endif %if %has_system_cairo cat << EOF >> $MOZCONFIG ac_add_options --enable-system-cairo EOF %endif -%if %milestone -cat << EOF >> $MOZCONFIG -ac_add_options --enable-official-branding -EOF -%endif make -f client.mk build # ### enigmail build %if %build_enigmail -mv $RPM_BUILD_DIR/enigmail $RPM_BUILD_DIR/mozilla/mailnews/extensions/ -(cd $RPM_BUILD_DIR/mozilla/mailnews/extensions/enigmail; ./makemake -r; make) +mv $RPM_BUILD_DIR/enigmail/src $RPM_BUILD_DIR/thunderbird/mailnews/extensions/enigmail +(cd $RPM_BUILD_DIR/thunderbird/mailnews/extensions/enigmail; ./makemake -r; make; make xpi) %endif %install make -C mail/installer STRIP=/bin/true # copy tree into RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{progdir} -cp -rf $RPM_BUILD_DIR/mozilla/dist/thunderbird/* $RPM_BUILD_ROOT%{progdir} +cp -rf $RPM_BUILD_DIR/thunderbird/mozilla/dist/thunderbird/* \ + $RPM_BUILD_ROOT%{progdir} # build additional locales %if %localize +%if 0%{?SOURCE5:1} +cp %SOURCE5 mail/locales/shipped-locales +%endif echo %defattr\(-,root,root\) > %{_tmppath}/translations.list -#for locale in $(cat mail/locales/all-locales); do for locale in $(awk '{ print $1; }' mail/locales/shipped-locales); do case $locale in ja-JP-mac|en-US) # locales not to be included in translations package ;; *) - make -C mail/locales libs-$locale - cp dist/xpi-stage/locale-$locale/chrome/$locale.jar \ + make -C mail/locales libs-$locale || continue + cp mozilla/dist/xpi-stage/locale-$locale/chrome/$locale.jar \ $RPM_BUILD_ROOT%{progdir}/chrome - cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \ + cp mozilla/dist/xpi-stage/locale-$locale/chrome/$locale.manifest \ $RPM_BUILD_ROOT%{progdir}/chrome echo %{progdir}/chrome/$locale.jar >> %{_tmppath}/translations.list echo %{progdir}/chrome/$locale.manifest >> %{_tmppath}/translations.list @@ -322,25 +266,24 @@ done mkdir --parents $RPM_BUILD_ROOT%{_bindir}/ sed "s:%%PREFIX:%{_prefix}:g s:%%PROGDIR:%{progdir}:g -s:%%APPNAME:%{progname}:g +s:%%APPNAME:thunderbird:g s:%%PROFILE:.thunderbird:g" \ %{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh -ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT/%{_bindir}/%{progname} +ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT%{_bindir}/%{progname} # freedesktop definition mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications install -m 644 %{SOURCE1} \ - $RPM_BUILD_ROOT%{_datadir}/applications + $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop # install add-plugins.sh -sed "s:%%PROGDIR:%{progdir}:g -s:%%APPNAME:%{progname}:g" \ +sed "s:%%PROGDIR:%{progdir}:g" \ %{SOURCE2} > $RPM_BUILD_ROOT%{progdir}/add-plugins.sh chmod 755 $RPM_BUILD_ROOT%{progdir}/add-plugins.sh # apply SUSE defaults -sed -e 's,RPM_VERSION,%{version}-%{release},g +sed -e 's,RPM_VERSION,%{mainversion}-%{release},g s,GSSAPI,%{libgssapi},g' \ %{SOURCE6} > suse-default-prefs -cp suse-default-prefs $RPM_BUILD_ROOT/%{progdir}/defaults/pref/novell.js +cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-opensuse.js rm suse-default-prefs # use correct locale for useragent cat > $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-l10n.js << EOF @@ -349,86 +292,66 @@ EOF ########## # DEVEL # -mkdir -p $RPM_BUILD_ROOT%{_includedir}/thunderbird -mkdir -p $RPM_BUILD_ROOT%{_libdir}/thunderbird/bin/ -mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig/ -cp -rL dist/sdk/bin/ $RPM_BUILD_ROOT%{_libdir}/thunderbird/ -cp -rL dist/sdk/lib/*.a $RPM_BUILD_ROOT%{_libdir}/thunderbird/ -cp -rL dist/idl/* $RPM_BUILD_ROOT%{_includedir}/thunderbird/ -cp -rL dist/include/* $RPM_BUILD_ROOT%{_includedir}/thunderbird/ -cp -rL dist/bin/thunderbird-config $RPM_BUILD_ROOT%{_bindir}/ -install -m 755 $RPM_BUILD_DIR/mozilla/build/unix/thunderbird-*.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/ -%if %has_system_nss -rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc -ln -sf nss.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc -%endif +mkdir -p $RPM_BUILD_ROOT%{_includedir}/%{progname} +cp -rL mozilla/dist/sdk/bin/* $RPM_BUILD_ROOT%{_libdir}/%{progname}/ +cp -rL mozilla/dist/sdk/lib/*.a $RPM_BUILD_ROOT%{_libdir}/%{progname}/ +cp -rL mozilla/dist/idl/* $RPM_BUILD_ROOT%{_includedir}/%{progname}/ +cp -rL mozilla/dist/include/* $RPM_BUILD_ROOT%{_includedir}/%{progname}/ +#mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig/ +#install -m 755 $RPM_BUILD_DIR/thunderbird/mozilla/build/unix/thunderbird-*.pc \ +# $RPM_BUILD_ROOT%{_libdir}/pkgconfig/ +#rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc +#ln -sf nss.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc ########## # ADDONS # -# install enigmail in extension dir +# install enigmail to extension dir %if %build_enigmail -_enig_dir=$RPM_BUILD_ROOT%{progdir}/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\} -mkdir -p $_enig_dir/chrome/ -mkdir -p $_enig_dir/components/ -mkdir -p $_enig_dir/defaults/preferences/ -mv -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail.jar $_enig_dir/chrome/ -mv -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-skin-tbird.jar $_enig_dir/chrome/ -mv -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-locale.jar $_enig_dir/chrome/ -mv -f $RPM_BUILD_ROOT%{progdir}/components/enig* $_enig_dir/components/ -mv -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so $_enig_dir/components/ -mv -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt $_enig_dir/components/ -mv -f $RPM_BUILD_ROOT%{progdir}/defaults/preferences/enigmail.js $_enig_dir/defaults/preferences/ -cp -f $RPM_BUILD_DIR/mozilla/mailnews/extensions/enigmail/package/install.rdf $_enig_dir/ +# Thunderbird location +_enig_dir=$RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\} +mkdir -p $_enig_dir +(cd $_enig_dir; unzip $RPM_BUILD_ROOT%{progdir}/enigmail-*.xpi) +# SeaMonkey location +mkdir -p $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\} +(cd $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}; \ + ln -s ../\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\} ) +# remove unwanted build artifacts +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail.jar +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-locale.jar +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-en-US.jar +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-skin.jar +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/installed-chrome.txt +rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmime.jar +rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so +rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt +rm -f $RPM_BUILD_ROOT%{progdir}/components/enig* +rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so +rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt rm -rf $RPM_BUILD_ROOT%{progdir}/defaults/preferences/ -rm -rf $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-en-US.jar -rm -rf $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-skin.jar -rm -rf $RPM_BUILD_ROOT%{progdir}/chrome/enigmime.jar -rm -rf $RPM_BUILD_ROOT%{progdir}/components/enig* -rm -rf $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so -rm -rf $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt -cp -f %{SOURCE11} $_enig_dir/chrome.manifest +rm -rf $RPM_BUILD_ROOT%{progdir}/platform/ +rm -rf $RPM_BUILD_ROOT%{progdir}/wrappers/ +rm -f $RPM_BUILD_ROOT%{progdir}/enigmail*.xpi %endif # -# install mailredirect -_redir_dir=$RPM_BUILD_ROOT%{progdir}/extensions/\{CC3C233D-6668-41bc-AAEB-F3A1D1D594F5\} -mkdir $_redir_dir -unzip %{SOURCE5} -d $_redir_dir -# # remove spurious executable bits -find $RPM_BUILD_ROOT/usr/include/thunderbird -type f -exec chmod a-x {} \; -find $RPM_BUILD_ROOT%{_libdir}/pkgconfig/* -type f -exec chmod a-x {} \; -find $RPM_BUILD_ROOT%{_libdir}/thunderbird -name "*.js" -o -name "*.xpm" | xargs chmod a-x +find $RPM_BUILD_ROOT/usr/include/%{progname} -type f -exec chmod a-x {} \; +#find $RPM_BUILD_ROOT%{_libdir}/pkgconfig/* -type f -exec chmod a-x {} \; +find $RPM_BUILD_ROOT%{_libdir}/%{progname} -name "*.js" | xargs chmod a-x # -mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps/ -cp -f $RPM_BUILD_ROOT%{progdir}/icons/mozicon50.xpm $RPM_BUILD_ROOT%{_datadir}/pixmaps/thunderbird.xpm +for size in 16 22 24 32 48 256; do + mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/ + ln -sf %{progdir}/chrome/icons/default/default$size.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/%{progname}.png +done %suse_update_desktop_file %{name} Network Email GTK -%if !%has_system_nss -# modify provides and requires lists -cat << EOF > %{my_provides} -grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libfreebl3.so" | %{__find_provides} -EOF -chmod 755 %{my_provides} -%define __find_provides %{my_provides} -cat << EOF > %{my_requires} -grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libpipnss.so|libfreebl3.so|thunderbird-bin" | %{__find_requires} -EOF -chmod 755 %{my_requires} -%define __find_requires %{my_requires} -%endif -%if %suse_version > 1020 # Some sites use different partitions for /usr/(lib|lib64) and /usr/share. Since you # can't create hardlinks across partitions, we'll do this more than once. %fdupes $RPM_BUILD_ROOT%{progdir} +%fdupes $RPM_BUILD_ROOT%{_libdir}/mozilla %fdupes $RPM_BUILD_ROOT%{_datadir} %fdupes $RPM_BUILD_ROOT%{_includedir} -%endif %clean rm -rf $RPM_BUILD_ROOT -%if %has_system_nspr && !%has_system_nss -rm -f %{my_provides} -rm -f %{my_requires} -%endif %triggerin -- myspell-dictionary %progdir/add-plugins.sh > /dev/null 2>&1 @@ -440,11 +363,20 @@ exit 0 %post %progdir/add-plugins.sh > /dev/null 2>&1 +# remove enigmail on updates +if [ -e %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\} ]; then + rm -rf %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\} +fi +exit 0 + +%posttrans +if [ -e %progdir/add-plugins.sh ]; then + %progdir/add-plugins.sh > /dev/null 2>&1 +fi exit 0 %preun if [ "$1" = "0" ]; then # deinstallation - rm -f %{progdir}/components/myspell/* rm -f %{progdir}/dictionaries/* fi exit 0 @@ -454,238 +386,56 @@ exit 0 %attr(755,root,root) %{progdir}/%{progname}.sh %attr(755,root,root) %{progdir}/add-plugins.sh %dir %{progdir} +%{progdir}/application.ini %{progdir}/res/ %{progdir}/icons/ -# NSPR -%if ! %has_system_nspr -%{progdir}/libnspr4.so -%{progdir}/libplc4.so -%{progdir}/libplds4.so -%endif -# NSS -%if ! %has_system_nss -%{progdir}/libnss3.so -%{progdir}/libnssckbi.so -%{progdir}/libsmime3.so -%{progdir}/libsoftokn3.chk -%{progdir}/libsoftokn3.so -%{progdir}/libssl3.so -%{progdir}/libfreebl3.* -%endif -# %{progdir}/dependentlibs.list %{progdir}/LICENSE.txt %{progdir}/README.txt -%{progdir}/libldap50.so +%{progdir}/libldap60.so +%{progdir}/libprldap60.so +%{progdir}/libssldap60.so +%{progdir}/libldif60.so +%{progdir}/libsqlite3.so %{progdir}/libmozjs.so -%{progdir}/libprldap50.so %{progdir}/libxpcom_core.so -%{progdir}/libxpcom_compat.so %{progdir}/libxpcom.so -%{progdir}/libxpistub.so %{progdir}/license.html %{progdir}/mozilla-xremote-client +%{progdir}/platform.ini %{progdir}/run-mozilla.sh %{progdir}/thunderbird %{progdir}/thunderbird-bin -%{progdir}/updater -%{progdir}/updater.ini -%{progdir}/xpicleanup -%dir %{progdir}/components -%{progdir}/components/FeedProcessor.js -%{progdir}/components/accessibility-atk.xpt -%{progdir}/components/accessibility.xpt -%{progdir}/components/addrbook.xpt -%{progdir}/components/alerts.xpt -%{progdir}/components/appshell.xpt -%{progdir}/components/appstartup.xpt -%{progdir}/components/autocomplete.xpt -%{progdir}/components/autoconfig.xpt -%{progdir}/components/bookmarks.xpt -%{progdir}/components/caps.xpt -%{progdir}/components/chardet.xpt -%{progdir}/components/chrome.xpt -%{progdir}/components/commandhandler.xpt -%{progdir}/components/commandlines.xpt -%{progdir}/components/composer.xpt -%{progdir}/components/content_base.xpt -%{progdir}/components/content_htmldoc.xpt -%{progdir}/components/content_html.xpt -%{progdir}/components/content_xmldoc.xpt -%{progdir}/components/content_xslt.xpt -%{progdir}/components/content_xtf.xpt -%{progdir}/components/docshell.xpt -%{progdir}/components/dom_base.xpt -%{progdir}/components/dom_canvas.xpt -%{progdir}/components/dom_core.xpt -%{progdir}/components/dom_css.xpt -%{progdir}/components/dom_events.xpt -%{progdir}/components/dom_html.xpt -%{progdir}/components/dom_loadsave.xpt -%{progdir}/components/dom_range.xpt -%{progdir}/components/dom_sidebar.xpt -%{progdir}/components/dom_storage.xpt -%{progdir}/components/dom_stylesheets.xpt -%{progdir}/components/dom_traversal.xpt -%{progdir}/components/dom_views.xpt -%{progdir}/components/dom_xbl.xpt -%{progdir}/components/dom_xpath.xpt -%{progdir}/components/dom.xpt -%{progdir}/components/dom_xul.xpt -%{progdir}/components/downloads.xpt -%{progdir}/components/editor.xpt -%{progdir}/components/embed_base.xpt -%{progdir}/components/extensions.xpt -%{progdir}/components/exthandler.xpt -%{progdir}/components/fastfind.xpt -%{progdir}/components/feeds.xpt -%{progdir}/components/filepicker.xpt -%{progdir}/components/find.xpt -%{progdir}/components/gfx.xpt -%{progdir}/components/history.xpt -%{progdir}/components/htmlparser.xpt -%{progdir}/components/imgicon.xpt -%{progdir}/components/imglib2.xpt -%{progdir}/components/impComm4xMail.xpt -%{progdir}/components/import.xpt -%{progdir}/components/inspector.xpt -%{progdir}/components/intl.xpt -%{progdir}/components/jar.xpt -%{progdir}/components/jsconsole.xpt -%{progdir}/components/jsconsole-clhandler.js -%{progdir}/components/jsdservice.xpt -%{progdir}/components/layout_base.xpt -%{progdir}/components/layout_printing.xpt -%{progdir}/components/layout_xul_tree.xpt -%{progdir}/components/layout_xul.xpt -%{progdir}/components/libimgicon.so -%{progdir}/components/libjsd.so -%{progdir}/components/libmozgnome.so -%{progdir}/components/libmyspell.so -%{progdir}/components/libspellchecker.so -%{progdir}/components/libxpinstall.so -%{progdir}/components/locale.xpt -%{progdir}/components/lwbrk.xpt -%{progdir}/components/mailnews.xpt -%{progdir}/components/mailprofilemigration.xpt -%{progdir}/components/mailview.xpt -%{progdir}/components/mdn-service.js -%{progdir}/components/mimetype.xpt -%{progdir}/components/mime.xpt -%{progdir}/components/mozbrwsr.xpt -%{progdir}/components/mozfind.xpt -%{progdir}/components/mozgnome.xpt -%{progdir}/components/mozldap.xpt -%{progdir}/components/msgbase.xpt -%{progdir}/components/msgcompose.xpt -%{progdir}/components/msgdb.xpt -%{progdir}/components/msgimap.xpt -%{progdir}/components/msglocal.xpt -%{progdir}/components/msgnews.xpt -%{progdir}/components/msgsearch.xpt -%{progdir}/components/msgsmime.xpt -%{progdir}/components/necko_about.xpt -%{progdir}/components/necko_cache.xpt -%{progdir}/components/necko_cookie.xpt -%{progdir}/components/necko_data.xpt -%{progdir}/components/necko_dns.xpt -%{progdir}/components/necko_file.xpt -%{progdir}/components/necko_ftp.xpt -%{progdir}/components/necko_http.xpt -%{progdir}/components/necko_res.xpt -%{progdir}/components/necko_socket.xpt -%{progdir}/components/necko_strconv.xpt -%{progdir}/components/necko_viewsource.xpt -%{progdir}/components/necko.xpt -%{progdir}/components/newsblog.js -%{progdir}/components/nsAbLDAPAttributeMap.js -%{progdir}/components/nsCloseAllWindows.js -%{progdir}/components/nsComposerCmdLineHandler.js -%{progdir}/components/nsDefaultCLH.js -%{progdir}/components/nsExtensionManager.js -%{progdir}/components/nsFilePicker.js -%{progdir}/components/nsPhishingProtectionApplication.js -%{progdir}/components/nsHelperAppDlg.js -%{progdir}/components/nsInterfaceInfoToIDL.js -%{progdir}/components/nsLDAPPrefsService.js -%{progdir}/components/nsMailDefaultHandler.js -%{progdir}/components/nsUpdateService.js -%{progdir}/components/nsProgressDialog.js -%{progdir}/components/nsProxyAutoConfig.js -%{progdir}/components/nsURLFormatter.js -%{progdir}/components/nsUrlClassifierLib.js -%{progdir}/components/nsUrlClassifierListManager.js -%{progdir}/components/nsUrlClassifierTable.js -%{progdir}/components/url-classifier.xpt -%{progdir}/components/offlineStartup.js -%{progdir}/components/pipboot.xpt -%{progdir}/components/pipnss.xpt -%{progdir}/components/pippki.xpt -%{progdir}/components/pref.xpt -%{progdir}/components/prefetch.xpt -%{progdir}/components/profile.xpt -%{progdir}/components/progressDlg.xpt -%{progdir}/components/proxyObjInst.xpt -%{progdir}/components/rdf.xpt -%{progdir}/components/saxparser.xpt -%{progdir}/components/nsSetDefaultMail.js -%{progdir}/components/shellservice.xpt -%{progdir}/components/shistory.xpt -%{progdir}/components/signonviewer.xpt -%{progdir}/components/smime-service.js -%{progdir}/components/spellchecker.xpt -%{progdir}/components/storage.xpt -%{progdir}/components/toolkitprofile.xpt -%{progdir}/components/toolkitremote.xpt -%{progdir}/components/txmgr.xpt -%{progdir}/components/txtsvc.xpt -%{progdir}/components/uconv.xpt -%{progdir}/components/unicharutil.xpt -%{progdir}/components/update.xpt -%{progdir}/components/uriloader.xpt -%{progdir}/components/urlformatter.xpt -%{progdir}/components/wallet.xpt -%{progdir}/components/walleteditor.xpt -%{progdir}/components/walletpreview.xpt -%{progdir}/components/webBrowser_core.xpt -%{progdir}/components/webbrowserpersist.xpt -%{progdir}/components/webshell_idls.xpt -%{progdir}/components/websrvcs.xpt -%{progdir}/components/widget.xpt -%{progdir}/components/windowds.xpt -%{progdir}/components/windowwatcher.xpt -%{progdir}/components/xpautocomplete.xpt -%{progdir}/components/xpcom_base.xpt -%{progdir}/components/xpcom_components.xpt -%{progdir}/components/xpcom_ds.xpt -%{progdir}/components/xpcom_io.xpt -%{progdir}/components/xpcom_obsolete.xpt -%{progdir}/components/xpcom_threads.xpt -%{progdir}/components/xpcom_xpti.xpt -%{progdir}/components/xpconnect.xpt -%{progdir}/components/xpinstall.xpt -%{progdir}/components/xulapp.xpt -%{progdir}/components/xuldoc.xpt -%{progdir}/components/xultmpl.xpt +%{progdir}/components/ +%{progdir}/modules/ %dir %{progdir}/chrome/ %{progdir}/chrome/classic.* %{progdir}/chrome/comm.* %{progdir}/chrome/en-US.* +%{progdir}/chrome/gloda.* %{progdir}/chrome/messenger.* %{progdir}/chrome/newsblog.* %{progdir}/chrome/pippki.* %{progdir}/chrome/toolkit.* -%{progdir}/chrome/US.jar %{progdir}/chrome/icons/ -%{progdir}/dictionaries/ +%dir %{progdir}/dictionaries/ %{progdir}/defaults/ %{progdir}/greprefs/ %{progdir}/extensions/ -%{progdir}/init.d/ %{progdir}/isp/ %{_datadir}/applications/%{name}.desktop -%{_datadir}/pixmaps/thunderbird.xpm +%{_datadir}/icons/hicolor/*/apps/%{progname}.png %{_bindir}/%{progname} +# excluded files +%exclude %{progdir}/thunderbird +%exclude %{progdir}/removed-files +%exclude %{progdir}/updater +%exclude %{progdir}/updater.ini +%exclude %{progdir}/update.locale +%exclude %{progdir}/dictionaries/en-US* +%if %lightning +%exclude %{progdir}/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103} +%endif %if %localize %files translations -f %{_tmppath}/translations.list @@ -694,455 +444,25 @@ exit 0 %files devel %defattr(-,root,root) -%{_libdir}/thunderbird/*.a -%{_libdir}/thunderbird/bin/ -%{_libdir}/pkgconfig/*.pc -%{_includedir}/thunderbird/ -%{_bindir}/thunderbird-config +%{_libdir}/%{progname}/*.a +%{_libdir}/%{progname}/regxpcom +%{_libdir}/%{progname}/xpidl +%{_libdir}/%{progname}/xpt_dump +%{_libdir}/%{progname}/xpt_link +#%{_libdir}/pkgconfig/*.pc +%{_includedir}/%{progname}/ +%if %lightning + +%files lightning +%defattr(-,root,root) +%{progdir}/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103} +%endif +%if %build_enigmail + +%files -n enigmail +%defattr(-,root,root) +%dir %{_libdir}/mozilla +%{_libdir}/mozilla/extensions/ +%endif %changelog -* Fri Jun 19 2009 coolo@novell.com -- disable as-needed for this package as it fails to build with it -* Tue Jun 02 2009 wr@rosenauer.org -- Fixed build issue for gcc 4.4 (mozilla-gcc44.patch) -* Wed Mar 18 2009 wr@rosenauer.org -- security update to version 2.0.0.21 (bnc#484321) - * MFSA 2009-07/CVE-2009-0771, CVE-2009-0772, CVE-2009-0773 - CVE-2009-0774: - Crashes with evidence of memory corruption (rv:1.9.0.7) - * MFSA 2009-09/CVE-2009-0776: - XML data theft via RDFXMLDataSource and cross-domain redirect - * MFSA 2009-10/CVE-2009-0040: - Upgrade PNG library to fix memory safety hazards -* Fri Jan 02 2009 hfiguiere@suse.de -- Review and approve changes. -* Wed Dec 31 2008 wr@rosenauer.org -- security update to version 2.0.0.19 (bnc#455804) - + MFSA 2008-68/CVE-2008-5511 and CVE-2008-5512: XSS and JavaScript - privilege escalation - + MFSA 2008-67/CVE-2008-5510: Escaped null characters ignored by - CSS parser - + MFSA 2008-66/CVE-2008-5508: Errors parsing URLs with leading - whitespace and control characters - + MFSA 2008-65/CVE-2008-5507: Cross-domain data theft via script - redirect error message - + MFSA 2008-64/CVE-2008-5506: XMLHttpRequest 302 response disclosure - + MFSA 2008-61/CVE-2008-5503: Information stealing via loadBindingDocument - + MFSA 2008-60/CVE-2008-5500, CVE-2008-5501 and CVE-2008-5502: - Crashes with evidence of memory corruption (rv:1.9.0.5/1.8.1.19) -- improved mozilla-shared-nss-db.patch and - mozilla-system-hunspell.patch to be able to apply them - unconditionally -* Fri Nov 21 2008 wr@rosenauer.org -- Add mozilla-shared-nss-db.patch which allows migrating to and - sharing with other applications using NSS - (same functionality as in xulrunner/firefox) - (can be disabled completely exporting MOZ_TB_NO_NSSHELPER=1) -* Fri Nov 21 2008 maw@suse.de -- Review and approve changes. -* Thu Nov 13 2008 wr@rosenauer.org -- security update to version 2.0.0.18 (bnc#439841) - * MFSA 2008-48 / CVE-2008-5012 - Image stealing via canvas and HTTP redirect - * MFSA 2008-50 / CVE-2008-5014 (bmo#436741) - Crash and remote code execution via __proto__ tampering - * MFSA 2008-52 / CVE-2008-5016 / CVE-2008-5017 / CVE-2008-5018 - Crashes with evidence of memory corruption (rv:1.9.0.4/1.8.1.18) - * MFSA 2008-55 / CVE-2008-5021 (bmo#456896) - Crash and remote code execution in nsFrameManager - * MFSA 2008-56 / CVE-2008-5022 (bmo#460002) - nsXMLHttpRequest::NotifyEventListeners() same-origin violation - * MFSA 2008-58 / CVE-2008-5024 (bmo#453915) - Parsing error in E4X default namespace -* Wed Oct 15 2008 maw@suse.de -- Review and approve changes. -* Wed Oct 08 2008 wr@rosenauer.org -- use system hunspell from 11.0 on (bnc#385739) -- remove more executable bits from non-executable files -* Tue Sep 23 2008 wr@rosenauer.org -- security update to version 2.0.0.17 (bnc#429179) - * MFSA 2008-37 / CVE-2008-0016 - UTF-8 URL stack buffer overflow - * MFSA 2008-38 / CVE-2008-3835 - nsXMLDocument::OnChannelRedirect() same-origin violation - * MFSA 2008-41 / CVE-2008-4058 / CVE-2008-4059 / CVE-2008-4060 - Privilege escalation via XPCnativeWrapper pollution - * MFSA 2008-42 / CVE-2008-4061 / CVE-2008-4062 / CVE-2008-4063 - CVE-2008-4064 - Crashes with evidence of memory corruption - * MFSA 2008-43 / CVE-2008-4065 / CVE-2008-4066 - BOM characters, low surrogates stripped from JavaScript before - execution - * MFSA 2008-44 / CVE-2008-4067 / CVE-2008-4068 - resource: traversal vulnerabilities - * MFSA 2008-46 / CVE-2008-4070 - Heap overflow when canceling newsgroup message -* Mon Sep 15 2008 wr@rosenauer.org -- fixed undefined operation in nsMailboxService.cpp (abuild.patch) -- cleanup spec a bit while merging from OBS/mozilla - * forwarding old fixes to cups-paper.patch, mozilla.sh.in and - add-plugins.sh (were fixed long ago in the OBS repo) -* Thu Sep 11 2008 mauro@suse.de -- Update to 2.0.0.16 (fixed bnc#417869), fixes: - + MFSA 2008-34 Remote code execution by overflowing CSS - reference counter - + MFSA 2008-33 Crash and remote code execution in block reflow - + MFSA 2008-31 Peer-trusted certs can use alt names to spoof - + MFSA 2008-29 Faulty .properties file results in uninitialized - memory being used - + MFSA 2008-26 Buffer length checks in MIME processing - + MFSA 2008-25 Arbitrary code execution in - mozIJSSubScriptLoader.loadSubScript() - + MFSA 2008-24 Chrome script loading from fastload file - + MFSA 2008-21 Crashes with evidence of memory corruption (rv:1.8.1.15) -* Wed Jul 23 2008 schwab@suse.de -- Remove unused includes. -* Tue Jun 24 2008 maw@suse.de -- Security update to version 2.0.0.14 (bnc#390992): - + MFSA 2008-15 / CVE-2008-1236 and CVE-2008-1237: Crashes with - evidence of memory corruption (rv:1.8.1.13) - + MFSA 2008-14 / CVE-2008-1233, CVE-2008-1234, and CVE-2008-1235: - JavaScript privilege escalation and arbitrary code execution -- Drop the following patches: thunderbird-2.0.0.14-backports.patch, - mozilla-missing-decl.patch, and unused-includes.patch -- Respin mozilla-gcc4.3-fixes.patch. -* Fri May 30 2008 maw@suse.de -- Add thunderbird-2.0.0.14-backports.patch (bnc390992). -* Fri May 16 2008 schwab@suse.de -- Remove unused includes. -* Mon Mar 24 2008 maw@suse.de -- Add mozilla-missing-decl.patch, which is necessary when building - against new versions of mozilla-nss (bmo#399589). -* Fri Mar 07 2008 maw@suse.de -- Security update to version 2.0.0.12 (bnc#354469) - * MFSA 2008-12 Buffer overflow in external MIME bodies -- Replace mozilla-maxpathlen.patch with mozilla-path_len.patch, for - consistency's sake. -* Thu Jan 17 2008 maw@suse.de -- Add mozilla-maxpathlen.patch (#354150 and bmo #412610). -* Tue Jan 15 2008 maw@suse.de -- Merge changes from the build service (thanks, Wolfgang) -- Update to version 2.0.9.9 (MFSA 2007-29) -- Update enigmail to version 0.95.6 -- Add a -devel subpackage -- Various fixes to enable building with gcc 4.3. -* Tue Nov 13 2007 maw@suse.de -- Add thunderbird-gcc4.3-fixes.patch -- Add visibility.patch. -* Thu Sep 13 2007 cthiel@suse.de -- recommend gpg instead of requireing a fixed path -* Wed Sep 12 2007 maw@suse.de -- Added gpg/pinentry requirements (#309160). -* Tue Sep 04 2007 maw@suse.de -- Don't run %%fdupes on directories where multiple partitions - are liable to be mounted. -* Mon Sep 03 2007 maw@suse.de -- Merge some changes from the build service (thanks, Wolfgang): - + Provide locale info (#302288) - + Update releasedate -- Uncomment %%clean. -* Tue Aug 21 2007 maw@suse.de -- Use %%fdupes. -* Tue Aug 21 2007 maw@suse.de -- Merge updates from the build service: -- Update to security release 2.0.0.6: - * MFSA 2007-26 Privilege escalation through chrome-loaded - about:blank windows - * MFSA 2007-27 Unescaped URIs passed to external programs -- Update enigmail to version 0.95.3. -* Wed Aug 15 2007 maw@suse.de -- On x86_64, s390, and s390x, deactivate the hidden visibility - support, thereby fixing the build. -* Wed Jul 25 2007 maw@suse.de -- Security update to version 2.0.0.5 (#288115) -- This new release has fixes for: - MFSA 2007-18 - CVE-2007-3734 - Browser flaws - CVE-2007-3735 - Javascript flaws - MFSA 2007-19 - CVE-2007-3736 - MFSA 2007-20 - CVE-2007-3089 - MFSA 2007-21 - CVE-2007-3737 - MFSA 2007-22 - CVE-2007-3285 - MFSA 2007-23 - CVE-2007-3670 - MFSA 2007-24 - CVE-2007-3656 - MFSA 2007-25 - CVE-2007-3738 -- Update to enigmail 0.95.2. -* Thu Jun 21 2007 adrian@suse.de -- fix changelog entry order -* Sat Jun 16 2007 maw@suse.de -- Merge update to 2.0.0.4 from the build service (thanks, Wolfgang) -- Remove some commented out stuff. -* Wed Jun 13 2007 wr@rosenauer.org -- update to maintenance release 2.0.0.4 -- update enigmail to 0.95.1 -- adopted patches: - * fixed cups-paper.patch (copied from FF) - * removed obsolete visibility.patch -* Tue Jun 12 2007 maw@suse.de -- Merge chagnges from the build service (thanks, Wolfgang) -- Now use l10n-%%{version}.tar.bz2 instead of l10n.tar.bz2 as - before. -* Tue Jun 05 2007 maw@suse.de -- Security update to version 1.5.0.12 (#271197). -* Tue Jun 05 2007 sbrabec@suse.cz -- Removed invalid desktop category "Application" (#254654). -* Thu Apr 19 2007 wr@rosenauer.org -- update to final version 2.0.0.0 - (http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/) -- update enigmail to 0.95.0 -* Wed Apr 18 2007 mfabian@suse.de -- add Japanese to the languages which get PANGO enabled in the - start script to support the Japanese combining characters - U+3099 U+309A (see bugzilla #262718 comment #29). -* Thu Apr 12 2007 wr@rosenauer.org -- update to 2.0.0.0rc1 -- enabled translations package -* Fri Mar 30 2007 wr@rosenauer.org -- update to snapshot 2.0.0.0pre-20070329 -- security update enigmail 0.94.3 - (Bugtraq #22758) -* Fri Mar 30 2007 meissner@suse.de -- require unzip -* Tue Mar 13 2007 wr@rosenauer.org -- update to snapshot 2.0pre-20060312 -- removed implicit NSS version dependency -* Thu Mar 08 2007 meissner@suse.de -- Upgraded to 1.5.0.10 security release. -- Upgraded to enigmail 0.94.2. -* Thu Feb 15 2007 wr@rosenauer.org -- update to snapshot 2.0beta2-20060214 -- fixed build on SLES9 -* Mon Feb 05 2007 wr@rosenauer.org -- fixed check in add-plugins.sh (#242237) -* Tue Jan 30 2007 maw@suse.de -- Add thunderbird-1.5.0.8-uninitalized-vars-232305.patch (#232305). -* Fri Jan 19 2007 maw@suse.de -- Add undefined-ops.patch, silencing some warnings. -* Thu Nov 09 2006 jhargadon@suse.de -- security update to version 1.5.0.8 -* Tue Sep 12 2006 stark@suse.de -- security update to version 1.5.0.7 -* Mon Aug 14 2006 stark@suse.de -- update enigmail to 0.94.1 - * Added support for signing attachments with inline-PGP -- update mailredirect to 0.7.4 -- added backend patch to allow replies to list with - ReplyToListThunderbirdExtension (#199125, bmo #45715) -- added mailnews.clobber_list_reply pref which switches - "Reply All" to "Reply List" functionality if set -* Thu Jul 27 2006 stark@suse.de -- security update to version 1.5.0.5 (#195043) -- fixed overwrite confirmation for GTK filesaver (#179531) -* Wed Jun 07 2006 stark@suse.de -- fixed up BuildRequires -* Fri Jun 02 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Fri Jun 02 2006 stark@suse.de -- update to security/stability release 1.5.0.4 (#179011) - (http://www.mozilla.org/projects/security/known-vulnerabilities.html#Thunderbird) -* Mon May 15 2006 stark@suse.de -- update to version 1.5.0.2 -- update mailredirect to 0.7.3 -- save printer settings properly (#174082, bmo #324072) -- improved postscript output (bmo #334485) -- changed defaults for printer properties (#6534) -- get available paper sizes from CUPS (#65482) -* Sat Mar 18 2006 stark@suse.de -- translations package is suggested now by main package -- yet another set of upstream fixes (#148876) -* Sun Mar 12 2006 stark@suse.de -- added Khmer (km-*) to pango locales (#157397) -- yet another set of upstream fixes (#148876) -* Sat Mar 04 2006 stark@suse.de -- latest security fixes from upstream (#148876) -- show multiple Reply-To addresses (bmo #106189) -* Fri Feb 24 2006 stark@suse.de -- added GTK category to desktop-file -- dumpstack.patch is in upstream patches now -- get some more patches (#148876) -* Tue Feb 14 2006 stark@suse.de -- applied set of security patches (#148876) -* Tue Feb 07 2006 stark@suse.de -- fixed disabling of Pango (#148788) -* Thu Feb 02 2006 stark@suse.de -- defined gssapi lib explicitely (#147670) -* Wed Feb 01 2006 stark@suse.de -- removed additional CA certs from builtin NSS -- make it possible to choose $HOME as download directory - (#144894, bmo #300856) -- cleaned up BuildRequires -* Wed Jan 25 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Mon Jan 23 2006 stark@suse.de -- disable Pango if MOZ_ENABLE_PANGO is not set - and no typical language which needs Pango is used (#143428) -- preload libaoss for plugin sound (#117079) -- fix to ignore X composite extension (#135373) -* Wed Jan 18 2006 stark@suse.de -- added default (font) settings -- tweak useragent -- fixed DumpStackToFile() for glibc 2.4 -* Thu Jan 12 2006 stark@suse.de -- update to 1.5 (20060111) -- added sytem extensions patch -- added XUL filechooser patch (MOZ_XUL_PICKER) -- update enigmail to 0.94.0 -- use -fstack-protector where available -- use system NSS since CODE10 -* Wed Dec 28 2005 stark@suse.de -- update to 1.5rc2 (20051227) -* Sun Dec 11 2005 stark@suse.de -- update to 1.5 (20051211) -- update enigmail to 0.93.2 -* Tue Nov 29 2005 stark@suse.de -- update enigmail to 0.93.1 -- added patch for GTK2 handling (#134831) -* Fri Nov 25 2005 stark@suse.de -- update to 1.5 (20051124) -* Fri Oct 28 2005 stark@suse.de -- update to latest 1.5 snapshot (20051027) -- added patch to be able to reply to and forward rfc822 messages - (bmo #204350) -- again don't provide and require NSS stuff -- removed disable-gconf patch (no registration needed in build - process anymore) -- added mailredirect extension -- removed update functionality -* Mon Oct 10 2005 stark@suse.de -- update to 1.5b2 (20051008) -- preinstall Enigmail (version 0.93.0) as global extension -- add all supported locales and use if installed -* Tue Oct 04 2005 stark@suse.de -- update to 1.5b2 (20051003) (RPM version 1.4.1) -- prerequire NSPR -- prepared translations subpackage -- fixed filelist -- fixed build with new gcc -* Wed Sep 21 2005 stark@suse.de -- update to 1.5b1 (20050920) -- added spellchecker integration with myspell (add-plugins.sh) -- removed aviary-install-global patch (not needed anymore, with - new EM) -- enabled pango font rendering (through cairo hopefully) -- fixed GNOME gconf registration (#117851) -* Sat Aug 20 2005 stark@suse.de -- workaround for linking with pangoxft and pangox - (broken by gtk 2.8 update) (#105764) -* Thu Aug 18 2005 stark@suse.de -- fixed Gdk-WARNING at startup (gtk.patch) -- fixed regression in profile locking change (bmo #303633) -- fixed crash with gtk 2.7 (bmo #300226, bnc #104586) -* Wed Aug 03 2005 stark@suse.de -- fixed profile locking (bmo #151188) -* Fri Jul 29 2005 stark@suse.de -- don't require and provide NSS libs (#98002) -* Fri Jul 22 2005 stark@suse.de -- fixed printing patch -* Tue Jul 19 2005 stark@suse.de -- added NSPR to PreReq -- disable stripping in specfile -* Fri Jul 15 2005 stark@suse.de -- update to 1.0.6 which restores API compatibility -- fixed width calculation in Postscript module (bmo #290292) -* Thu Jul 14 2005 stark@suse.de -- fixed filelist to include icon-file and startscript again -* Tue Jul 12 2005 stark@suse.de -- fixed remote usage behaviour in start script (bnc #41903) -- update to 1.0.5 security release -- fixed quoting patch -- moved desktop file to a Gnome independent location -- don't strip explicitely -- use RPM_OPT_FLAGS for NSS component -- fixed implicit declarations and uninitialized used variables -* Thu Apr 28 2005 stark@suse.de -- updated to current 1.0 branch version -- use static NSPR from other location -* Sat Apr 23 2005 stark@suse.de -- activate usage of system NSPR for distributions after 9.3 -- add patch to be able to use systen NSPR at all -- extended desktop file -* Fri Apr 22 2005 ro@suse.de -- apply mozilla-gcc4.patch -* Wed Mar 23 2005 stark@suse.de -- update to 1.0.2 -- use system NSPR on SUSE releases after 9.3 -- made startscript PIS aware -- set g-application-name correctly (bmo #281979) -* Mon Mar 07 2005 stark@suse.de -- don't use gconfd in registration phase (#66381) -* Fri Feb 25 2005 stark@suse.de -- update to version 1.0.1 -* Tue Feb 22 2005 stark@suse.de -- added patch to create Postscript level 2 (instead of 3) - (special thanks to Jungshik Shin) -- disabled freetype explicitly to be able to use the above patch - (freetype wasn't used anymore since some time anyway) -* Wed Feb 02 2005 stark@suse.de -- added a JS crasher fix (bmc #268535) -* Sat Jan 22 2005 stark@suse.de -- added some backported bugfixes -* Tue Dec 07 2004 stark@suse.de -- update to 1.0 -- fixed extra lines in replies (bmo #144998) -- fixed build on s390/s390x -* Wed Nov 24 2004 stark@suse.de -- update to 20041123 snapshot -- inherit downloadFolder patch from Firefox -* Fri Nov 12 2004 stark@suse.de -- fixed chrome filelist -* Thu Nov 04 2004 stark@suse.de -- update to 0.9 -- sync patch-set with firefox base -- fixed neededforbuild to get GNOME functionalities -* Fri Sep 17 2004 stark@suse.de -- added some missing fixes for official release -- synced add-plugins.sh -* Sat Sep 11 2004 stark@suse.de -- update to official 0.8 version (20040911) -- fixed enigmail config -* Mon Sep 06 2004 stark@suse.de -- fixed profile directory -* Fri Sep 03 2004 stark@suse.de -- update to thunderbird 0.8 (20040903) -- update enigmail to 0.86.0 and ipc to 1.0.8 (deactivated) -* Tue Aug 24 2004 stark@suse.de -- update to thunderbird 0.7.3 -- update enigmail to 0.85.0 and ipc to 1.0.7 -* Tue Jun 29 2004 stark@suse.de -- update to thunderbird 0.7.1 -- update enigmail to 0.84.1 -* Wed May 12 2004 ro@suse.de -- add some missing return values -* Mon May 03 2004 stark@suse.de -- update to Thunderbird 0.6 (based on 1.7rc1) -- use official branding for release builds -- added desktop-icon (#39139) -* Fri Apr 02 2004 stark@suse.de -- removing relocation of TEMP directory (#34391) -* Fri Mar 26 2004 uli@suse.de -- fixed hang during build on s390* (bug #35440) -* Mon Mar 08 2004 ro@suse.de -- match function declaration in enigmail mimedummy.cpp -* Fri Mar 05 2004 stark@suse.de -- more fixes for #35179 -- added firefox as default handler for its protocols -- update enigmail to 0.83.4 -* Wed Mar 03 2004 stark@suse.de -- removed unused patches for GTK2 build -* Sun Feb 29 2004 stark@suse.de -- improved start-script to interact with firefox and mozilla - (#35179) -* Fri Feb 27 2004 stark@suse.de -- update to 0.5 -- spec-file cleanup -* Wed Oct 15 2003 stark@suse.de -- update to 0.3 (sync with mozilla 1.5) -* Tue Jul 15 2003 stark@suse.de -- initial package (snapshot 20030714) diff --git a/abuild.patch b/abuild.patch deleted file mode 100644 index 6e35fc9..0000000 --- a/abuild.patch +++ /dev/null @@ -1,156 +0,0 @@ -From: Wolfgang Rosenauer -Subject: Fix compiler warnings which disturb autobuild -References: - -### autobuild -... testing for serious compiler warnings -Program is using uninitialized variables. Note the difference between "is used" -and "may be used". Please investigate and fix. -Problematic file(s) and their linenumbers: - nsUnicodeToJamoTTF.cpp: 855 - nsObjectFrame.cpp: 1933 -### - -### autobuild -... testing for serious compiler warnings -Program returns random data in a function. Please fix. -Problematic file(s) and their linenumbers: - nsWebShell.cpp: 562 - Program is using uninitialized variables. Note the difference between "is used" and "may be used". - Please investigate and fix. - Problematic file(s) and their linenumbers: - nsFrame.cpp: 3536 -### - -### autobuild -I: Program causes undefined operation -(likely same variable used twiceand post/pre incremented in the same expression). -e.g. x = x++; Split it in two operations. -E: MozillaThunderbird sequence-point nsMailboxService.cpp: 231 -### - ---- gfx/src/gtk/nsFontMetricsUtils.cpp.old 2005-03-24 07:27:33.000000000 +0100 -+++ gfx/src/gtk/nsFontMetricsUtils.cpp 2005-03-24 07:28:26.000000000 +0100 -@@ -75,6 +75,7 @@ NS_FontMetricsGetHints(void) - #ifdef MOZ_ENABLE_COREXFONTS - return nsFontMetricsGTK::GetHints(); - #endif -+ return 1; - } - - nsresult -@@ -95,6 +96,7 @@ NS_FontMetricsFamilyExists(nsIDeviceCont - #ifdef MOZ_ENABLE_COREXFONTS - return nsFontMetricsGTK::FamilyExists(aDevice, aName); - #endif -+ return 1; - } - - #ifdef MOZ_ENABLE_XFT -Index: intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp -=================================================================== -RCS file: /cvsroot/mozilla/intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp,v -retrieving revision 1.10 -diff -u -p -6 -r1.10 nsUnicodeToJamoTTF.cpp ---- intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp 19 Feb 2005 07:27:54 -0000 1.10 -+++ intl/uconv/ucvko/nsUnicodeToJamoTTF.cpp 7 Jun 2005 07:21:10 -0000 -@@ -842,12 +842,13 @@ PRInt16 JamoSrchReplace (const JamoNormM - // we don't need a separate range check here because the one in - // for-loop is sufficient. - for (PRInt32 i = start; i <= end - clusterLen; i++) - { - const JamoNormMap *match; - JamoNormMap key; -+ key.liga = 0; - - // cluster array is made up of PRUint8's to save memory - // and we have to subtract aOffset from the input before looking it up. - key.seq[0] = aIn[i] - aOffset; - key.seq[1] = aIn[i + 1] - aOffset; - key.seq[2] = clusterLen == 3 ? (aIn[i + 2] - aOffset) : 0; -Index: layout/generic/nsObjectFrame.cpp -=================================================================== -RCS file: /cvsroot/mozilla/layout/generic/nsObjectFrame.cpp,v -retrieving revision 1.505 -diff -u -p -6 -r1.505 nsObjectFrame.cpp ---- layout/generic/nsObjectFrame.cpp 6 May 2005 03:14:31 -0000 1.505 -+++ layout/generic/nsObjectFrame.cpp 7 Jun 2005 07:23:27 -0000 -@@ -1850,12 +1850,13 @@ nsObjectFrame::Paint(nsPresContext* - // now we need to setup the correct location for printing - nsresult rv; - nsPluginWindow window; - nsPoint origin; - float t2p; - window.window = nsnull; -+ window.ws_info = nsnull; - - // prepare embedded mode printing struct - nsPluginPrint npprint; - npprint.mode = nsPluginMode_Embedded; - - // we need to find out if we are windowless or not -Index: docshell/base/nsWebShell.cpp -=================================================================== -RCS file: /cvsroot/mozilla/docshell/base/nsWebShell.cpp,v -retrieving revision 1.656.2.1 -diff -u -p -6 -r1.656.2.1 nsWebShell.cpp ---- docshell/base/nsWebShell.cpp 16 Sep 2005 19:11:52 -0000 1.656.2.1 -+++ docshell/base/nsWebShell.cpp 22 Sep 2005 06:30:30 -0000 -@@ -556,12 +556,13 @@ nsWebShell::OnLinkClickSync(nsIContent * - // XXX TODO Should be similar to the HTML IMG ALT attribute handling - // in NS 4.x - default: - NS_ABORT_IF_FALSE(0,"unexpected link verb"); - return NS_ERROR_UNEXPECTED; - } -+ return NS_ERROR_UNEXPECTED; - } - - NS_IMETHODIMP - nsWebShell::OnOverLink(nsIContent* aContent, - nsIURI* aURI, - const PRUnichar* aTargetSpec) -Index: layout/generic/nsFrame.cpp -=================================================================== -RCS file: /cvsroot/mozilla/layout/generic/nsFrame.cpp,v -retrieving revision 3.574.2.4 -diff -u -p -6 -r3.574.2.4 nsFrame.cpp ---- layout/generic/nsFrame.cpp 20 Sep 2005 06:32:09 -0000 3.574.2.4 -+++ layout/generic/nsFrame.cpp 22 Sep 2005 06:31:42 -0000 -@@ -3528,13 +3528,13 @@ nsresult - nsFrame::PeekOffsetParagraph(nsPresContext* aPresContext, - nsPeekOffsetStruct *aPos) - { - #ifdef DEBUG_paragraph - printf("Selecting paragraph\n"); - #endif -- nsIFrame* blockFrame; -+ nsIFrame* blockFrame = NULL; - nsCOMPtr iter (getter_AddRefs(GetBlockFrameAndLineIter(this, &blockFrame))); - if (!blockFrame || !iter) - return NS_ERROR_UNEXPECTED; - - PRInt32 thisLine; - nsresult result = iter->FindLineContaining(this, &thisLine); -Index: mailnews/local/src/nsMailboxService.cpp -=================================================================== -RCS file: /cvsroot/mozilla/mailnews/local/src/nsMailboxService.cpp,v -retrieving revision 1.114.8.7 -diff -u -p -6 -r1.114.8.7 nsMailboxService.cpp ---- mailnews/local/src/nsMailboxService.cpp 30 Aug 2006 22:18:29 -0000 1.114.8.7 -+++ mailnews/local/src/nsMailboxService.cpp 11 Sep 2008 11:09:24 -0000 -@@ -225,13 +225,13 @@ nsresult nsMailboxService::FetchMessage( - } - else - { - - // this happens with forward inline of message/rfc822 attachment - // opened in a stand-alone msg window. -- PRInt32 typeIndex = typeIndex = uriString.Find("&type=application/x-message-display"); -+ PRInt32 typeIndex = uriString.Find("&type=application/x-message-display"); - if (typeIndex != kNotFound) - { - uriString.Cut(typeIndex, sizeof("&type=application/x-message-display") - 1); - rv = NS_NewURI(getter_AddRefs(url), uriString.get()); - mailboxurl = do_QueryInterface(url); - } diff --git a/add-plugins.sh.in b/add-plugins.sh.in index 25b09c8..32a0422 100644 --- a/add-plugins.sh.in +++ b/add-plugins.sh.in @@ -1,7 +1,5 @@ #! /bin/sh -# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved. -# 2002-2004 SuSE Linux AG, Nuernberg, Germany -# 2005 SUSE LINUX Products GmbH, Nuernberg, Germany +# Copyright (c) 2008 Wolfgang Rosenauer. All rights reserved. # # check if we are started as root @@ -12,10 +10,8 @@ if test "$UID" != 0 -a "$USER" != root; then fi PREFIX="%PROGDIR" -MOZ_APP="%APPNAME" - -# MySPELL +# dictionaries MYSPELL=/usr/share/myspell MOZ_SPELL=$PREFIX/dictionaries if [ -d $MOZ_SPELL ] ; then diff --git a/cjk-postscript-fonts.dif b/cjk-postscript-fonts.dif deleted file mode 100644 index 016bb03..0000000 --- a/cjk-postscript-fonts.dif +++ /dev/null @@ -1,28 +0,0 @@ ---- modules/libpref/src/init/all.js.orig 2004-01-23 11:22:44.000000000 +0100 -+++ modules/libpref/src/init/all.js 2004-01-23 11:24:10.000000000 +0100 -@@ -1819,8 +1819,10 @@ - pref("print.postscript.nativefont.ar", ""); - pref("print.postscript.nativefont.el", ""); - pref("print.postscript.nativefont.he", ""); --pref("print.postscript.nativefont.ja", ""); --pref("print.postscript.nativefont.ko", ""); -+pref("print.postscript.nativefont.ja", "UTF-8"); -+pref("print.postscript.nativefont.ja", "Ryumin-Light-UniJIS-UTF8-H"); -+pref("print.postscript.nativefont.ko", "UTF-8"); -+pref("print.postscript.nativefont.ko", "Baekmuk-Gulim-UniKS-UTF8-H"); - pref("print.postscript.nativefont.th", ""); - pref("print.postscript.nativefont.tr", ""); - pref("print.postscript.nativefont.x-baltic", ""); -@@ -1829,8 +1831,10 @@ - pref("print.postscript.nativefont.x-unicode", ""); - pref("print.postscript.nativefont.x-user-def", ""); - pref("print.postscript.nativefont.x-western", ""); --pref("print.postscript.nativefont.zh-CN", ""); --pref("print.postscript.nativefont.zh-TW", ""); -+pref("print.postscript.nativefont.zh-CN", "UTF-8"); -+pref("print.postscript.nativefont.zh-CN", "GB-Song-Medium-UniGB-UTF8-H"); -+pref("print.postscript.nativefont.zh-TW", "UTF-8"); -+pref("print.postscript.nativefont.zh-TW", "B5-Song-Medium-UniCNS-UTF8-H"); - pref("print.postscript.nativefont.zh-HK", ""); - - # XP_UNIX diff --git a/create-tar.sh b/create-tar.sh new file mode 100644 index 0000000..0f59ac3 --- /dev/null +++ b/create-tar.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +RELEASE_TAG="THUNDERBIRD_3_0b3_RELEASE" +VERSION="3.0b3" + +# mozilla +hg clone http://hg.mozilla.org/comm-central thunderbird +pushd thunderbird +hg update -r $RELEASE_TAG +python client.py checkout --skip-chatzilla --skip-venkman +popd +tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird + +# l10n +# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales +if [ -e shipped-locales ]; then + SHIPPED_LOCALES=shipped-locales +else + SHIPPED_LOCALES=thunderbird/mail/locales/shipped-locales +fi +test ! -d l10n && mkdir l10n +for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do + case $locale in + ja-JP-mac|en-US) + ;; + *) + hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/$locale l10n/$locale + hg -R l10n/$locale up -C -r $RELEASE_TAG + ;; + esac +done +tar cjf l10n-$VERSION.tar.bz2 \ + --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \ + --exclude=suite \ + l10n diff --git a/cups-paper.patch b/cups-paper.patch deleted file mode 100644 index 5083593..0000000 --- a/cups-paper.patch +++ /dev/null @@ -1,889 +0,0 @@ -From: Wolfgang Rosenauer , Arne John Glenstrup -Subject: get paper sizes from CUPS -References: -https://bugzilla.novell.com/show_bug.cgi?id=65482 -https://bugzilla.mozilla.org/show_bug.cgi?id=324060 - - -================================================================================ ---- gfx/src/gtk/nsDeviceContextSpecG.cpp -+++ gfx/src/gtk/nsDeviceContextSpecG.cpp -@@ -66,6 +66,7 @@ - #ifdef USE_POSTSCRIPT - #include "nsPSPrinters.h" - #include "nsPaperPS.h" /* Paper size list */ -+#include "nsPaperFactoryPS.h" /* Paper size list factory */ - #endif /* USE_POSTSCRIPT */ - - /* Ensure that the result is always equal to either PR_TRUE or PR_FALSE */ -@@ -1210,34 +1211,38 @@ - #ifdef SET_PRINTER_FEATURES_VIA_PREFS - printerFeatures.SetCanChangePaperSize(PR_TRUE); - #endif /* SET_PRINTER_FEATURES_VIA_PREFS */ -- nsXPIDLCString papername; -- if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", printerName, "paper_size", getter_Copies(papername)))) { -- nsPaperSizePS paper; -- -- if (paper.Find(papername)) { -- DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n", -- paper.Name(), paper.Width_mm(), paper.Height_mm())); -- aPrintSettings->SetPaperSizeUnit(paper.IsMetric() ? -- (int)nsIPrintSettings::kPaperSizeMillimeters : -- (int)nsIPrintSettings::kPaperSizeInches); -- aPrintSettings->SetPaperWidth(paper.Width_mm()); -- aPrintSettings->SetPaperHeight(paper.Height_mm()); -- aPrintSettings->SetPaperName(NS_ConvertASCIItoUCS2(paper.Name()).get()); -- } -- else { -- DO_PR_DEBUG_LOG(("Unknown paper size '%s' given.\n", papername.get())); -+ { -+ nsIPaperSizePS* paper; -+ nsresult rv; -+ rv = nsPaperFactoryPS::CreatePaper -+ (fullPrinterName.get(), printerName.get(), paper); -+ if (NS_FAILED(rv)) return rv; -+ paper->FindDefault(); -+ -+ nsXPIDLCString papername; -+ if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", fullPrinterName, "print_paper_name", getter_Copies(papername)))) { -+ if (!paper->Find(papername)) { -+ DO_PR_DEBUG_LOG(("Unknown paper size '%s' given.\n", papername.get())); -+ } - } -+ DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n", -+ paper->Name(), paper->Width_mm(), paper->Height_mm())); -+ aPrintSettings->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters); -+ aPrintSettings->SetPaperWidth(paper->Width_mm()); -+ aPrintSettings->SetPaperHeight(paper->Height_mm()); -+ aPrintSettings->SetPaperName(NS_ConvertASCIItoUTF16(paper->Name()).get()); - #ifdef SET_PRINTER_FEATURES_VIA_PREFS -- paper.First(); -+ paper->First(); - int count = 0; -- while (!paper.AtEnd()) -+ while (!paper->AtEnd()) - { -- printerFeatures.SetPaperRecord(count++, paper.Name(), -- (int)paper.Width_mm(), (int)paper.Height_mm(), !paper.IsMetric()); -- paper.Next(); -+ printerFeatures.SetPaperRecord(count++, paper->Name(), -+ (int)paper->Width_mm(), (int)paper->Height_mm(), !paper->IsMetric()); -+ paper->Next(); - } - printerFeatures.SetNumPaperSizeRecords(count); - #endif /* SET_PRINTER_FEATURES_VIA_PREFS */ -+ delete(paper); - } - - PRBool hasSpoolerCmd = (nsPSPrinterList::kTypePS == ---- gfx/src/ps/nsPrintJobPS.cpp -+++ gfx/src/ps/nsPrintJobPS.cpp -@@ -364,6 +364,10 @@ - const char *slash = strchr(printerName, '/'); - mPrinterName = slash ? slash + 1 : printerName; - mJobTitle.SetIsVoid(PR_TRUE); -+ /* Paper name */ -+ const char* paperName = nsnull; -+ aSpec->GetPaperName(&paperName); -+ mPaperName = paperName; - return NS_OK; - } - -@@ -445,6 +449,11 @@ - mNumCopies.get(), - dest->num_options, - &dest->options); -+ if (!mPaperName.IsEmpty()) -+ dest->num_options = (mCups.mCupsAddOption)("media", -+ mPaperName.get(), -+ dest->num_options, -+ &dest->options); - const char *title = mJobTitle.IsVoid() ? - "Untitled Document" : mJobTitle.get(); - result = (mCups.mCupsPrintFile)(printer.CStringAt(0)->get(), ---- gfx/src/ps/nsPrintJobPS.h -+++ gfx/src/ps/nsPrintJobPS.h -@@ -179,6 +179,7 @@ - nsCUPSShim mCups; - nsCString mPrinterName; - nsCString mNumCopies; -+ nsCString mPaperName; - nsCString mJobTitle; // IsVoid() if no title - }; - #endif /* VMS */ ---- gfx/src/psshared/Makefile.in -+++ gfx/src/psshared/Makefile.in -@@ -57,13 +57,16 @@ - - EXPORTS = nsCUPSShim.h \ - nsPaperPS.h \ -+ nsIPaperPS.h \ - nsPSPrinters.h\ - psSharedCore.h \ -+ nsPaperFactoryPS.h \ - $(NULL) - - CPPSRCS = nsCUPSShim.cpp \ - nsPaperPS.cpp \ - nsPSPrinters.cpp \ -+ nsPaperFactoryPS.cpp \ - $(NULL) - - EXTRA_DSO_LDOPTS = \ ---- gfx/src/psshared/nsCUPSShim.cpp -+++ gfx/src/psshared/nsCUPSShim.cpp -@@ -45,13 +45,18 @@ - // List of symbols to find in libcups. Must match symAddr[] defined in Init(). - // Making this an array of arrays instead of pointers allows storing the - // whole thing in read-only memory. --static const char gSymName[][sizeof("cupsPrintFile")] = { -+static const char gSymName[][sizeof("ppdMarkDefaults")] = { - { "cupsAddOption" }, - { "cupsFreeDests" }, - { "cupsGetDest" }, - { "cupsGetDests" }, - { "cupsPrintFile" }, - { "cupsTempFd" }, -+ { "cupsGetPPD" }, -+ { "ppdOpenFile" }, -+ { "ppdClose" }, -+ { "ppdMarkDefaults" }, -+ { "ppdIsMarked" }, - }; - static const int gSymNameCt = sizeof(gSymName) / sizeof(gSymName[0]); - -@@ -71,6 +76,11 @@ - (void **)&mCupsGetDests, - (void **)&mCupsPrintFile, - (void **)&mCupsTempFd, -+ (void **)&mCupsGetPPD, -+ (void **)&mPpdOpenFile, -+ (void **)&mPpdClose, -+ (void **)&mPpdMarkDefaults, -+ (void **)&mPpdIsMarked, - }; - - for (int i = gSymNameCt; i--; ) { ---- gfx/src/psshared/nsCUPSShim.h -+++ gfx/src/psshared/nsCUPSShim.h -@@ -62,6 +62,82 @@ - cups_option_t *options; /* Options */ - } cups_dest_t; - -+typedef enum /**** Colorspaces ****/ -+{ -+ PPD_CS_CMYK = -4, /* CMYK colorspace */ -+ PPD_CS_CMY, /* CMY colorspace */ -+ PPD_CS_GRAY = 1, /* Grayscale colorspace */ -+ PPD_CS_RGB = 3, /* RGB colorspace */ -+ PPD_CS_RGBK, /* RGBK (K = gray) colorspace */ -+ PPD_CS_N /* DeviceN colorspace */ -+} ppd_cs_t; -+ -+typedef struct /**** Page Sizes ****/ -+{ -+ int marked; /* Page size selected? */ -+ char name[41]; -+ /* Media size option */ -+ float width, /* Width of media in points */ -+ length, /* Length of media in points */ -+ left, /* Left printable margin in points */ -+ bottom, /* Bottom printable margin in points */ -+ right, /* Right printable margin in points */ -+ top; /* Top printable margin in points */ -+} ppd_size_t; -+ -+typedef struct /**** Files ****/ -+{ -+ int language_level, /* Language level of device */ -+ color_device, /* 1 = color device, 0 = grayscale */ -+ variable_sizes, /* 1 = supports variable sizes, 0 = doesn't */ -+ accurate_screens, /* 1 = supports accurate screens, 0 = not */ -+ contone_only, /* 1 = continuous tone only, 0 = not */ -+ landscape, /* -90 or 90 */ -+ model_number, /* Device-specific model number */ -+ manual_copies, /* 1 = Copies done manually, 0 = hardware */ -+ throughput; /* Pages per minute */ -+ ppd_cs_t colorspace; /* Default colorspace */ -+ char *patches; /* Patch commands to be sent to printer */ -+ int num_emulations; /* Number of emulations supported */ -+ void *emulations; /* Emulations and the code to invoke them */ -+ char *jcl_begin, /* Start JCL commands */ -+ *jcl_ps, /* Enter PostScript interpreter */ -+ *jcl_end, /* End JCL commands */ -+ *lang_encoding, /* Language encoding */ -+ *lang_version, /* Language version (English, Spanish, etc.) */ -+ *modelname, /* Model name (general) */ -+ *ttrasterizer, /* Truetype rasterizer */ -+ *manufacturer, /* Manufacturer name */ -+ *product, /* Product name (from PS RIP/interpreter) */ -+ *nickname, /* Nickname (specific) */ -+ *shortnickname; /* Short version of nickname */ -+ int num_groups; /* Number of UI groups */ -+ void *groups; /* UI groups */ -+ int num_sizes; /* Number of page sizes */ -+ ppd_size_t *sizes; /* Page sizes */ -+ float custom_min[2], /* Minimum variable page size */ -+ custom_max[2], /* Maximum variable page size */ -+ custom_margins[4];/* Margins around page */ -+ int num_consts; /* Number of UI/Non-UI constraints */ -+ void *consts; /* UI/Non-UI constraints */ -+ int num_fonts; /* Number of pre-loaded fonts */ -+ char **fonts; /* Pre-loaded fonts */ -+ int num_profiles; /* Number of sRGB color profiles */ -+ void *profiles; /* sRGB color profiles */ -+ int num_filters; /* Number of filters */ -+ char **filters; /* Filter strings... */ -+ -+ /**** New in CUPS 1.1 ****/ -+ int flip_duplex; /* 1 = Flip page for back sides */ -+ -+ /**** New in CUPS 1.1.19 ****/ -+ char *protocols, /* Protocols (BCP, TBCP) string */ -+ *pcfilename; /* PCFileName string */ -+ int num_attrs, /* Number of attributes */ -+ cur_attr; /* Current attribute */ -+ void **attrs; /* Attributes */ -+} ppd_file_t; -+ - typedef cups_dest_t* (PR_CALLBACK *CupsGetDestType)(const char *printer, - const char *instance, - int num_dests, -@@ -80,6 +156,11 @@ - const char *value, - int num_options, - cups_option_t **options); -+typedef const char* (PR_CALLBACK *CupsGetPPDType) (const char* name); -+typedef ppd_file_t* (PR_CALLBACK *PPDOpenFileType) (const char* filename); -+typedef void (PR_CALLBACK *PPDCloseType) (ppd_file_t* ppd); -+typedef void (PR_CALLBACK *PPDMarkDefaultsType) (ppd_file_t* ppd); -+typedef int (PR_CALLBACK *PPDIsMarkedType) (ppd_file_t* ppd, const char* pname, const char* pname_clear); - - struct PRLibrary; - -@@ -113,6 +194,11 @@ - CupsGetDestsType mCupsGetDests; - CupsPrintFileType mCupsPrintFile; - CupsTempFdType mCupsTempFd; -+ CupsGetPPDType mCupsGetPPD; -+ PPDOpenFileType mPpdOpenFile; -+ PPDCloseType mPpdClose; -+ PPDMarkDefaultsType mPpdMarkDefaults; -+ PPDIsMarkedType mPpdIsMarked; - - private: - PRLibrary *mCupsLib; ---- gfx/src/psshared/nsIPaperPS.h -+++ gfx/src/psshared/nsIPaperPS.h -@@ -0,0 +1,102 @@ -+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * Contributor(s): -+ * Arne John Glenstrup -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+ -+#ifndef _NSIPAPERPS_H_ -+#define _NSIPAPERPS_H_ -+ -+#include "prtypes.h" -+#include "psSharedCore.h" -+ -+class nsIPaperSizePS { -+ public: -+ /** --------------------------------------------------- -+ * Virtual destructor. -+ */ -+ virtual ~nsIPaperSizePS(); -+ -+ /* Allow the paper factory to create instances */ -+ friend class nsPaperFactoryPS; -+ -+ /** --------------------------------------------------- -+ * @return PR_TRUE if the cursor points past the last item. -+ */ -+ virtual PRBool AtEnd() = 0; -+ -+ /** --------------------------------------------------- -+ * Position the cursor at the beginning of the paper size list. -+ * @return VOID -+ */ -+ virtual void First() = 0; -+ -+ /** --------------------------------------------------- -+ * Advance the cursor to the next item. -+ * @return VOID -+ */ -+ virtual void Next() = 0; -+ -+ /** --------------------------------------------------- -+ * Point the cursor to the entry with the given paper name. -+ * @return PR_TRUE if pointing to a valid entry. -+ */ -+ virtual PRBool Find(const char *aName) = 0; -+ -+ /** --------------------------------------------------- -+ * Point the cursor to a default entry if available. -+ * Otherwise it's equivalent to First(). -+ * @return PR_TRUE if pointing to a valid entry. -+ */ -+ virtual PRBool FindDefault() = 0; -+ -+ /** --------------------------------------------------- -+ * @return a pointer to the name of the current paper size -+ */ -+ virtual const char *Name() = 0; -+ -+ /** --------------------------------------------------- -+ * @return the width of the page in millimeters -+ */ -+ virtual float Width_mm() = 0; -+ -+ /** --------------------------------------------------- -+ * @return the height of the page in millimeters -+ */ -+ virtual float Height_mm() = 0; -+ -+ /** --------------------------------------------------- -+ * @return PR_TRUE if the paper should be presented to -+ * the user in metric units. -+ */ -+ virtual PRBool IsMetric() { return PR_TRUE; }; -+}; -+ -+#endif /* _NSIPAPERPS_H_ */ ---- gfx/src/psshared/nsPSPrinters.h -+++ gfx/src/psshared/nsPSPrinters.h -@@ -44,6 +44,7 @@ - #include "prtypes.h" - #include "nsCUPSShim.h" - #include "psSharedCore.h" -+#include "nsCOMPtr.h" - - class nsIPrefService; - class nsIPrefBranch; ---- gfx/src/psshared/nsPaperFactoryPS.cpp -+++ gfx/src/psshared/nsPaperFactoryPS.cpp -@@ -0,0 +1,65 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is mozilla.org code. -+ * -+ * The Initial Developer of the Original Code is -+ * Kenneth Herron . -+ * Portions created by the Initial Developer are Copyright (C) 2004 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Arne John Glenstrup -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+ -+#include "nsDebug.h" -+#include "nsPaperFactoryPS.h" -+#include "nsIPaperPS.h" -+#include "nsPaperPS.h" -+#include "nsPSPrinters.h" -+ -+nsresult -+nsPaperFactoryPS::CreatePaper(const char* fullPrinterName, -+ const char* printerName, -+ nsIPaperSizePS* &aPaper) -+{ -+ nsIPaperSizePS *newPZ; -+ -+ if (nsPSPrinterList::kTypeCUPS == nsPSPrinterList::GetPrinterType -+ (nsDependentCString(fullPrinterName))) -+ newPZ = new nsPaperSizeCUPS(fullPrinterName, printerName); -+ else -+ newPZ = new nsPaperSizePS(); -+ -+ if (!newPZ) -+ return NS_ERROR_OUT_OF_MEMORY; -+ -+ aPaper = newPZ; -+ return NS_OK; -+} ---- gfx/src/psshared/nsPaperFactoryPS.h -+++ gfx/src/psshared/nsPaperFactoryPS.h -@@ -0,0 +1,64 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* ex: set tabstop=8 softtabstop=4 shiftwidth=4 expandtab: */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * Contributor(s): -+ * Arne John Glenstrup -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#ifndef nsPaperFactoryPS_h__ -+#define nsPaperFactoryPS_h__ -+ -+#include "nscore.h" -+#include "nsIPaperPS.h" -+ -+/* Factory class for the paper sizes. This class determines -+ * which paper size class should handle a request, and constructs -+ * an object of the appropriate class. -+ */ -+ -+class NS_PSSHARED nsPaperFactoryPS -+{ -+public: -+ /** -+ * Construct a paper size object for the given device context spec. -+ * On success, the paper size object is owned by the caller and should -+ * be destroyed when no longer needed. -+ * -+ * @param fullPrinterName Fully qualified name, e.g., "CUPS/myprinter" -+ * @param printerName Stripped name, e.g., "myprinter" -+ * @param aPaper If NS_OK is returned, this will be filled -+ * in with a pointer to a paper size object. -+ * @return NS_OK or a suitable error value. -+ */ -+ static nsresult CreatePaper(const char* fullPrinterName, -+ const char* printerName, -+ nsIPaperSizePS* &aPaper); -+}; -+ -+ -+#endif /* nsPaperFactoryPS_h__ */ ---- gfx/src/psshared/nsPaperPS.h -+++ gfx/src/psshared/nsPaperPS.h -@@ -40,9 +40,9 @@ - #ifndef _PAPERPS_H_ - #define _PAPERPS_H_ - --#include "prtypes.h" -+#include "nsIPaperPS.h" - #include "nsDebug.h" --#include "psSharedCore.h" -+#include "nsCUPSShim.h" - - struct nsPaperSizePS_ { - const char *name; -@@ -51,13 +51,13 @@ - PRBool isMetric; // Present to the user in metric, if possible - }; - --class NS_PSSHARED nsPaperSizePS { -+class NS_PSSHARED nsPaperSizePS : public nsIPaperSizePS { - public: - /** --------------------------------------------------- - * Constructor - */ -- nsPaperSizePS() { mCurrent = 0; } -- -+ nsPaperSizePS(); -+ - /** --------------------------------------------------- - * @return PR_TRUE if the cursor points past the last item. - */ -@@ -85,6 +85,12 @@ - PRBool Find(const char *aName); - - /** --------------------------------------------------- -+ * Position the cursor at the beginning of the paper size list. -+ * @return PR_TRUE -+ */ -+ PRBool FindDefault() { mCurrent = 0; return PR_TRUE; } -+ -+ /** --------------------------------------------------- - * @return a pointer to the name of the current paper size - */ - const char *Name() { -@@ -117,11 +123,83 @@ - return mList[mCurrent].isMetric; - } - -- private: -+ protected: - unsigned int mCurrent; - // the class visibility should export these, but it doesn't - static NS_PSSHARED_STATIC_MEMBER_(const nsPaperSizePS_) mList[]; -- static NS_PSSHARED_STATIC_MEMBER_(const unsigned int) mCount; -+ unsigned int mCount; -+}; -+ -+class NS_PSSHARED nsPaperSizeCUPS : public nsPaperSizePS { -+ public: -+ /** --------------------------------------------------- -+ * Constructor for a specific CUPS printer. -+ * @param fullPrinterName Fully qualified name, e.g., "CUPS/myprinter" -+ * @param printerName Stripped name, e.g., "myprinter" -+ */ -+ nsPaperSizeCUPS(const char* fullPrinterName, const char* printerName); -+ -+ /** --------------------------------------------------- -+ * Destructor. -+ */ -+ ~nsPaperSizeCUPS(); -+ -+ /** --------------------------------------------------- -+ * Position the cursor at the beginning of the paper size list. -+ * @return VOID -+ */ -+ void First() { -+ nsPaperSizePS::First(); -+ SkipZeroSizes(); -+ } -+ -+ /** --------------------------------------------------- -+ * Advance the cursor to the next item. -+ * @return VOID -+ */ -+ void Next() { -+ nsPaperSizePS::Next(); -+ SkipZeroSizes(); -+ } -+ -+ /** --------------------------------------------------- -+ * Point the cursor to the entry with the given paper name. -+ * @return PR_TRUE if pointing to a valid entry. -+ */ -+ PRBool Find(const char *aName); -+ -+ /** --------------------------------------------------- -+ * Point the cursor to the CUPS default entry for paper size. -+ * @return PR_TRUE if pointing to a valid entry. -+ */ -+ PRBool FindDefault(); -+ -+ /** --------------------------------------------------- -+ * @return a pointer to the name of the current paper size -+ */ -+ const char *Name(); -+ -+ /** --------------------------------------------------- -+ * @return the width of the page in millimeters -+ */ -+ float Width_mm(); -+ -+ /** --------------------------------------------------- -+ * @return the height of the page in millimeters -+ */ -+ float Height_mm(); -+ -+ /** --------------------------------------------------- -+ * @return PR_TRUE if the paper should be presented to -+ * the user in metric units. -+ */ -+ PRBool IsMetric(); -+ -+ private: -+ void SkipZeroSizes(); -+ PRBool mUsingCups; -+ static NS_PSSHARED_STATIC_MEMBER_(nsCUPSShim) mCups; -+ ppd_file_t* mPPD; - }; - - #endif ---- gfx/src/xlib/nsDeviceContextSpecXlib.cpp -+++ gfx/src/xlib/nsDeviceContextSpecXlib.cpp -@@ -1212,7 +1212,11 @@ - #endif /* SET_PRINTER_FEATURES_VIA_PREFS */ - nsXPIDLCString papername; - if (NS_SUCCEEDED(CopyPrinterCharPref(pPrefs, "postscript", printerName, "paper_size", getter_Copies(papername)))) { -- nsPaperSizePS paper; -+ nsIPaperSizePS* paper; -+ nsresult rv; -+ rv = nsPaperFactoryPS::CreatePaper -+ (fullPrinterName.get(), printerName.get(), paper); -+ if (NS_FAILED(rv)) return rv; - - if (paper.Find(papername)) { - DO_PR_DEBUG_LOG(("setting default paper size to '%s' (%g mm/%g mm)\n", -@@ -1238,6 +1242,7 @@ - } - printerFeatures.SetNumPaperSizeRecords(count); - #endif /* SET_PRINTER_FEATURES_VIA_PREFS */ -+ delete(paper); - } - - PRBool hasSpoolerCmd = (nsPSPrinterList::kTypePS == -Index: gfx/src/psshared/nsPaperPS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/psshared/nsPaperPS.cpp,v -retrieving revision 1.1.20.1 -diff -u -p -6 -r1.1.20.1 nsPaperPS.cpp ---- gfx/src/psshared/nsPaperPS.cpp 3 Dec 2006 17:59:29 -0000 1.1.20.1 -+++ gfx/src/psshared/nsPaperPS.cpp 31 Oct 2007 14:28:58 -0000 -@@ -19,12 +19,14 @@ - * The Initial Developer of the Original Code is - * Kenneth Herron . - * Portions created by the Initial Developer are Copyright (C) 2004 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Arne John Glenstrup -+ * Wolfgang Rosenauer - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only -@@ -34,15 +36,32 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -- -+#ifdef MOZ_LOGGING -+#define FORCE_PR_LOG 1 /* Allow logging in the release build */ -+#endif /* MOZ_LOGGING */ -+#include "prlog.h" -+#include "prio.h" -+ - #include "nsPaperPS.h" - #include "plstr.h" -+#include "nsPSPrinters.h" -+#include -+ -+#ifdef PR_LOGGING -+static PRLogModuleInfo *PaperSizePSLM = PR_NewLogModule("PaperSizePS"); -+#endif /* PR_LOGGING */ -+/* Macro to make lines shorter */ -+#define DO_PR_DEBUG_LOG(x) PR_LOG(PaperSizePSLM, PR_LOG_DEBUG, x) -+ -+#define MM_PER_PT (25.4 / 72.0) -+#define HALF_INCH_PT 36.0 -+#define EPSILON 0.125 - - #define COUNTOF(x) (sizeof(x) / sizeof((x)[0])) - - const nsPaperSizePS_ nsPaperSizePS::mList[] = - { - #define SIZE_MM(x) (x) -@@ -55,19 +74,153 @@ const nsPaperSizePS_ nsPaperSizePS::mLis - { "Tabloid", SIZE_INCH(11), SIZE_INCH(17), PR_FALSE }, - { "Executive", SIZE_INCH(7.5), SIZE_INCH(10), PR_FALSE }, - #undef SIZE_INCH - #undef SIZE_MM - }; - --const unsigned int nsPaperSizePS::mCount = COUNTOF(mList); -+nsCUPSShim nsPaperSizeCUPS::mCups; -+ -+/* ~nsIPaperSizePS() is virtual, so must implement a destructor. */ -+nsIPaperSizePS::~nsIPaperSizePS () { } -+ -+nsPaperSizePS::nsPaperSizePS() { -+ mCount = COUNTOF(mList); -+ mCurrent = 0; -+} - - PRBool - nsPaperSizePS::Find(const char *aName) - { - for (int i = mCount; i--; ) { - if (!PL_strcasecmp(aName, mList[i].name)) { - mCurrent = i; - return PR_TRUE; - } - } - return PR_FALSE; - } -+ -+nsPaperSizeCUPS::nsPaperSizeCUPS(const char* fullPrinterName, -+ const char* printerName) { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS('%s', '%s')\n", -+ fullPrinterName, printerName)); -+ /* Don't use CUPS before we are sure we have access to the PPD */ -+ mUsingCups = false; -+ mPPD = nsnull; -+ mCount = COUNTOF(mList); -+ mCurrent = 0; -+ if (!fullPrinterName || !printerName || -+ nsPSPrinterList::kTypeCUPS != -+ nsPSPrinterList::GetPrinterType(nsDependentCString(fullPrinterName))) -+ return; -+ if (!mCups.IsInitialized()) { mCups.Init(); } -+ if (!mCups.IsInitialized()) { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: CUPS unavailable\n")); -+ return; -+ } -+ const char* ppdFileName = mCups.mCupsGetPPD(printerName); -+ if (!ppdFileName) { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: " -+ "cannot get PPD file name for printer '%s'\n", -+ printerName)); -+ return; -+ } -+ mPPD = mCups.mPpdOpenFile(ppdFileName); -+ // Remove the PPD file returned (it is a temporary file) -+ // as soon as we've opened it -+ if (ppdFileName) PR_Delete(ppdFileName); -+ -+ if (!mPPD) { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::nsPaperSizeCUPS: " -+ "cannot open PPD file '%s'\n", -+ ppdFileName)); -+ return; -+ } -+ mCount = mPPD->num_sizes; -+ mUsingCups = true; -+} -+ -+nsPaperSizeCUPS::~nsPaperSizeCUPS() { -+ if (mPPD) mCups.mPpdClose(mPPD); -+} -+ -+void -+nsPaperSizeCUPS::SkipZeroSizes() { -+ if (!mUsingCups) return; -+ while (mCurrent < mCount -+ && (mPPD->sizes[mCurrent].width == 0.0f || -+ mPPD->sizes[mCurrent].length == 0.0f)) { -+ mCurrent++; -+ } -+} -+ -+PRBool -+nsPaperSizeCUPS::Find(const char* aName) { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::Find ('%s') ", aName)); -+ if (!mUsingCups) return nsPaperSizePS::Find(aName); -+ for (int i = mCount; i--; ) { -+ if (!PL_strcasecmp(aName, mPPD->sizes[i].name)) { -+ DO_PR_DEBUG_LOG -+ (("found paper '%s' (%gx%gmm)\n", -+ aName, -+ round(mPPD->sizes[i].width * MM_PER_PT), -+ round(mPPD->sizes[i].length * MM_PER_PT))); -+ mCurrent = i; -+ return PR_TRUE; -+ } -+ } -+ DO_PR_DEBUG_LOG(("did not find paper '%s'\n", aName)); -+ return PR_FALSE; -+} -+ -+PRBool -+nsPaperSizeCUPS::FindDefault() { -+ DO_PR_DEBUG_LOG(("nsPaperSizeCUPS::FindDefault")); -+ if (!mUsingCups) return nsPaperSizePS::FindDefault(); -+ mCups.mPpdMarkDefaults(mPPD); -+ for (int i = mCount; i--; ) { -+ if (mCups.mPpdIsMarked(mPPD, "PageSize", mPPD->sizes[i].name )) { -+ DO_PR_DEBUG_LOG -+ (("found default paper '%s' (%gx%gmm)\n", -+ mPPD->sizes[i].name, -+ round(mPPD->sizes[i].width * MM_PER_PT), -+ round(mPPD->sizes[i].length * MM_PER_PT))); -+ mCurrent = i; -+ return PR_TRUE; -+ } -+ } -+ mCurrent = 0; -+ DO_PR_DEBUG_LOG(("no default paper found, therefore set the first\n")); -+ return PR_TRUE; -+} -+ -+const char* -+nsPaperSizeCUPS::Name() { -+ if (!mUsingCups) return nsPaperSizePS::Name(); -+ NS_PRECONDITION(!AtEnd(), "Invalid current item"); -+ return mPPD->sizes[mCurrent].name; -+} -+ -+float -+nsPaperSizeCUPS::Width_mm() { -+ if (!mUsingCups) return nsPaperSizePS::Width_mm(); -+ NS_PRECONDITION(!AtEnd(), "Invalid current item"); -+ return round(mPPD->sizes[mCurrent].width * MM_PER_PT); -+} -+ -+float -+nsPaperSizeCUPS::Height_mm() { -+ if (!mUsingCups) return nsPaperSizePS::Height_mm(); -+ NS_PRECONDITION(!AtEnd(), "Invalid current item"); -+ return round(mPPD->sizes[mCurrent].length * MM_PER_PT); -+} -+ -+PRBool -+nsPaperSizeCUPS::IsMetric() { -+ if (!mUsingCups) return nsPaperSizePS::IsMetric(); -+ NS_PRECONDITION(!AtEnd(), "Invalid current item"); -+ /* Educated guess: unless sizes are integral number */ -+ /* of half inches, present them to the user in metric. */ -+ return -+ fabs(fmod(mPPD->sizes[mCurrent].width, HALF_INCH_PT)) > EPSILON || -+ fabs(fmod(mPPD->sizes[mCurrent].length, HALF_INCH_PT)) > EPSILON; -+} diff --git a/enig-shared.patch b/enig-shared.patch deleted file mode 100644 index 6f5e05f..0000000 --- a/enig-shared.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- ipc/src/Makefile.in.orig 2005-06-14 09:19:56.000000000 +0200 -+++ enigmail/ipc/src/Makefile.in 2005-06-14 09:20:09.000000000 +0200 -@@ -74,6 +74,7 @@ EXPORTS = \ - - LOCAL_INCLUDES = \ - -I$(srcdir)/../build \ -+ -fPIC \ - $(NULL) - - CPPSRCS = \ ---- enigmail/build/Makefile.in.orig 2005-10-04 20:12:03.000000000 +0200 -+++ enigmail/build/Makefile.in 2005-10-04 20:12:35.000000000 +0200 -@@ -51,9 +51,10 @@ - LIBRARY_NAME = enigmime - SHORT_LIBNAME = enigmime - --MODULE_NAME = EnigModule -+#MODULE_NAME = EnigModule - - IS_COMPONENT = 1 -+FORCE_SHARED_LIB = 1 - - ifdef USE_XPCOM_GLUE - # Ensure that the xpcom classes that we build ---- enigmail/src/Makefile.in.orig 2006-01-11 20:54:23.000000000 +0100 -+++ enigmail/src/Makefile.in 2006-01-11 20:54:43.000000000 +0100 -@@ -94,6 +94,7 @@ - LOCAL_INCLUDES = \ - -I$(srcdir)/../build \ - -I$(srcdir)/../../../mime/src \ -+ -fPIC \ - $(NULL) - - CPPSRCS = \ diff --git a/enigmail-0.95.7.tar.bz2 b/enigmail-0.95.7.tar.bz2 deleted file mode 100644 index 21aea8e..0000000 --- a/enigmail-0.95.7.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab763fdbde5bd249a1e40309d656fa5cdbc0e614fbc59f1a2704f80dd084ee3b -size 852073 diff --git a/enigmail-20090716.tar.bz2 b/enigmail-20090716.tar.bz2 new file mode 100644 index 0000000..b580c65 --- /dev/null +++ b/enigmail-20090716.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce63e22bf581d5152f9aaa3f0049a68d5c3027e8f21f8850c3b515da7895d0b5 +size 759314 diff --git a/enigmail.manifest b/enigmail.manifest deleted file mode 100644 index a1b0d84..0000000 --- a/enigmail.manifest +++ /dev/null @@ -1,17 +0,0 @@ -content enigmail jar:chrome/enigmail.jar!/content/enigmail/ -locale enigmail en-US jar:chrome/enigmail.jar!/locale/en-US/enigmail/ -skin enigmail classic jar:chrome/enigmail-skin-tbird.jar!/skin/classic/enigmail/ -overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailCheckLanguage.xul -overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailMsgComposeOverlay.xul -overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/enigmailCheckLanguage.xul -overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/enigmailMessengerOverlay.xul -overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://enigmail/content/enigmailMsgHdrViewOverlay.xul -overlay chrome://messenger/content/msgPrintEngine.xul chrome://enigmail/content/enigmailMsgPrintOverlay.xul -overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailAmIdEditOverlay.xul -overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul -overlay chrome://messenger/content/addressbook/addressbook.xul chrome://enigmail/content/enigmailAbCardViewOverlay.xul -overlay chrome://messenger/content/addressbook/abContactsPanel.xul chrome://enigmail/content/enigmailAbContactsPanel.xul -overlay chrome://global/content/customizeToolbar.xul chrome://enigmail/content/enigmailCustToolOverlay.xul -overlay chrome://communicator/content/pref/preftree.xul chrome://enigmail/content/enigmailPrefsOverlay.xul -overlay chrome://enigmail/content/am-enigprefs.xul chrome://enigmail/content/enigmailEditIdentity.xul -overlay chrome://enigmail/content/am-enigprefs-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul diff --git a/find-external-requires.sh b/find-external-requires.sh new file mode 100644 index 0000000..1168ff2 --- /dev/null +++ b/find-external-requires.sh @@ -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 diff --git a/gcc-undefined-ops.patch b/gcc-undefined-ops.patch deleted file mode 100644 index 4bc7884..0000000 --- a/gcc-undefined-ops.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- layout/base/nsCSSRendering.cpp.orig 2006-10-25 23:59:19.000000000 +0200 -+++ layout/base/nsCSSRendering.cpp 2006-10-26 00:00:04.000000000 +0200 -@@ -1000,14 +1000,14 @@ - FillOrInvertRect(aContext, dashRect.x, borderOutside.y,dashRect.width, dashRect.height-adjust,isInvert); - FillOrInvertRect(aContext,dashRect.x,(borderOutside.YMost()-(dashRect.height-adjust)),dashRect.width, dashRect.height-adjust,isInvert); - currRect.y += (dashRect.height-adjust); -- temp = temp-= (dashRect.height-adjust); -+ temp -= (dashRect.height-adjust); - } else { - adjust = (temp%dashRect.width)/2; // adjust a tad longer - // draw in the left and right - FillOrInvertRect(aContext, dashRect.x, borderOutside.y,dashRect.width, dashRect.height+adjust,isInvert); - FillOrInvertRect(aContext, dashRect.x,(borderOutside.YMost()-(dashRect.height+adjust)),dashRect.width, dashRect.height+adjust,isInvert); - currRect.y += (dashRect.height+adjust); -- temp = temp-= (dashRect.height+adjust); -+ temp -= (dashRect.height+adjust); - } - - if( temp > ywidth) -@@ -1066,14 +1066,14 @@ - FillOrInvertRect(aContext, borderOutside.x,dashRect.y,dashRect.width-adjust,dashRect.height,isInvert); - FillOrInvertRect(aContext, (borderOutside.XMost()-(dashRect.width-adjust)),dashRect.y,dashRect.width-adjust,dashRect.height,isInvert); - currRect.x += (dashRect.width-adjust); -- temp = temp-= (dashRect.width-adjust); -+ temp -= (dashRect.width-adjust); - } else { - adjust = (temp%dashRect.width)/2; - // draw in the left and right - FillOrInvertRect(aContext, borderOutside.x,dashRect.y,dashRect.width+adjust,dashRect.height,isInvert); - FillOrInvertRect(aContext, (borderOutside.XMost()-(dashRect.width+adjust)),dashRect.y,dashRect.width+adjust,dashRect.height,isInvert); - currRect.x += (dashRect.width+adjust); -- temp = temp-= (dashRect.width+adjust); -+ temp -= (dashRect.width+adjust); - } - - ---- layout/xul/base/src/nsBox.cpp.orig 2006-10-26 00:00:26.000000000 +0200 -+++ layout/xul/base/src/nsBox.cpp 2006-10-26 00:01:30.000000000 +0200 -@@ -863,7 +863,7 @@ - while (box) { - nsRect* overflowArea = box->GetOverflowAreaProperty(); - nsRect bounds = overflowArea ? *overflowArea + box->GetPosition() : -- bounds = box->GetRect(); -+ box->GetRect(); - rect.UnionRect(rect, bounds); - - box->GetNextBox(&box); ---- intl/unicharutil/src/nsEntityConverter.cpp.orig 2005-04-02 20:44:00.000000000 +0200 -+++ intl/unicharutil/src/nsEntityConverter.cpp 2006-10-26 00:07:24.000000000 +0200 -@@ -236,7 +236,8 @@ - if (IS_HIGH_SURROGATE(inString[i]) && - i + 2 < len && - IS_LOW_SURROGATE(inString[i + 1])) { -- key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[++i]), 10); -+ key.AppendInt(SURROGATE_TO_UCS4(inString[i], inString[i + 1]), 10); -+ ++i; - } - else { - key.AppendInt(inString[i],10); ---- content/events/src/nsEventStateManager.cpp.orig 2006-08-06 00:19:17.000000000 +0200 -+++ content/events/src/nsEventStateManager.cpp 2006-10-26 00:11:16.000000000 +0200 -@@ -4301,7 +4301,7 @@ - do_QueryInterface(GetDocumentOuterWindow(mDocument)); - if (newWindow) { - nsIFocusController *newFocusController = -- newFocusController = newWindow->GetRootFocusController(); -+ newWindow->GetRootFocusController(); - nsCOMPtr oldWindow = - do_QueryInterface(GetDocumentOuterWindow(gLastFocusedDocument)); - if (oldWindow) { ---- netwerk/cache/src/nsDiskCacheMap.h.orig 2006-02-04 23:01:22.000000000 +0100 -+++ netwerk/cache/src/nsDiskCacheMap.h 2006-10-26 00:15:09.000000000 +0200 -@@ -168,7 +168,7 @@ - - // set blockCount - NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count"); -- blockCount = --blockCount; -+ --blockCount; - mDataLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask; - - mDataLocation |= eLocationInitializedMask; -@@ -236,7 +236,7 @@ - - // set blockCount - NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count"); -- blockCount = --blockCount; -+ --blockCount; - mMetaLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask; - - mMetaLocation |= eLocationInitializedMask; diff --git a/html-compose.patch b/html-compose.patch deleted file mode 100644 index ae0c2a5..0000000 --- a/html-compose.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: mail/base/content/mailWindowOverlay.js -=================================================================== -RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.js,v -retrieving revision 1.95.2.55 -diff -u -p -6 -r1.95.2.55 mailWindowOverlay.js ---- mail/base/content/mailWindowOverlay.js 12 Feb 2007 21:07:34 -0000 1.95.2.55 -+++ mail/base/content/mailWindowOverlay.js 15 Feb 2007 19:46:05 -0000 -@@ -1064,12 +1064,19 @@ function MsgNewMessage(event) - if (event && event.shiftKey) - ComposeMessage(msgComposeType.New, msgComposeFormat.OppositeOfDefault, loadedFolder, messageArray); - else - ComposeMessage(msgComposeType.New, msgComposeFormat.Default, loadedFolder, messageArray); - } - -+function MsgNewHtmlMessage() -+{ -+ var loadedFolder = GetFirstSelectedMsgFolder(); -+ var messageArray = GetSelectedMessages(); -+ ComposeMessage(msgComposeType.New, msgComposeFormat.HTML, loadedFolder, messageArray); -+} -+ - function MsgReplyMessage(event) - { - var loadedFolder = GetLoadedMsgFolder(); - if (loadedFolder) - { - var server = loadedFolder.server; -Index: mail/base/content/mailWindowOverlay.xul -=================================================================== -RCS file: /cvsroot/mozilla/mail/base/content/mailWindowOverlay.xul,v -retrieving revision 1.116.2.72 -diff -u -p -6 -r1.116.2.72 mailWindowOverlay.xul ---- mail/base/content/mailWindowOverlay.xul 10 Feb 2007 22:56:29 -0000 1.116.2.72 -+++ mail/base/content/mailWindowOverlay.xul 15 Feb 2007 19:46:55 -0000 -@@ -1511,12 +1511,15 @@ - - - -+ - - GetCharacterSet(getter_Copies(charset)); - -+ nsCOMPtr prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID)); -+ if (prefBranch) -+ prefBranch->GetBoolPref("mailnews.clobber_list_reply", &clobberListReply); -+ -+ mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset); -+ -+ mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset); -+ -+ if (clobberListReply) { -+ /* the 'Al fix'. Try to fake up Mail-Reply-To: and -+ * Mail-Followup-To: headers if we don't have any, and if it looks -+ * like it came via a mailing list. -+ * -+ * Currently only supports List-Post header. -+ */ -+ -+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset); -+ -+ if (mailFollowupTo.IsEmpty()) { -+ nsAutoString mailingList; -+ -+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString)); -+ if (outCString) -+ { -+ mMimeConverter->DecodeMimeHeader(outCString, mailingList, charset); -+ /* s//$1/; */ -+ if (StringBeginsWith(mailingList, NS_LITERAL_STRING(""))) { -+ -+ mailingList = Substring(mailingList, 8, mailingList.Length() - 9); -+ } -+ } -+ -+ mailFollowupTo = mailingList; -+ } -+ -+ if (mailReplyTo.IsEmpty()) { -+ nsAutoString from; -+ nsAutoString xReplyTo; -+ -+ mHeaders->ExtractHeader(HEADER_FROM, PR_FALSE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, from, charset); -+ -+ mHeaders->ExtractHeader(HEADER_X_REPLY_TO, PR_FALSE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, xReplyTo, charset); -+ -+ if (replyTo == mailFollowupTo) { -+ if (!xReplyTo.IsEmpty()) -+ mailReplyTo = xReplyTo; -+ else -+ mailReplyTo = from; -+ } -+ } -+ } -+ -+ - if (type == nsIMsgCompType::ReplyAll) - { - mHeaders->ExtractHeader(HEADER_TO, PR_TRUE, getter_Copies(outCString)); -@@ -2252,10 +2317,10 @@ NS_IMETHODIMP QuotingOutputStreamListene - compFields->SetBcc(bcc); - } - -- mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString)); -- if (outCString) -- { -- mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset); -+ if (!clobberListReply) { // else we've already looked this up earlier -+ mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString)); -+ if (outCString) -+ mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset); - } - - if (! mailFollowupTo.IsEmpty()) -@@ -2296,18 +2361,6 @@ NS_IMETHODIMP QuotingOutputStreamListene - } - } - -- mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString)); -- if (outCString) -- { -- mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset); -- } -- -- mHeaders->ExtractHeader(HEADER_MAIL_REPLY_TO, PR_TRUE, getter_Copies(outCString)); -- if (outCString) -- { -- mMimeConverter->DecodeMimeHeader(outCString, mailReplyTo, charset); -- } -- - mHeaders->ExtractHeader(HEADER_NEWSGROUPS, PR_FALSE, getter_Copies(outCString)); - if (outCString) - { diff --git a/locale.patch b/locale.patch deleted file mode 100644 index 8463f03..0000000 --- a/locale.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- modules/libpref/src/init/all.js.orig 2004-10-15 14:50:11.740865580 +0200 -+++ modules/libpref/src/init/all.js 2004-10-15 14:50:34.371625152 +0200 -@@ -653,7 +653,7 @@ - pref("intl.charset.detector", "chrome://navigator/locale/navigator.properties"); - pref("intl.charset.default", "chrome://navigator-platform/locale/navigator.properties"); - pref("intl.content.langcode", "chrome://communicator-region/locale/region.properties"); --pref("intl.locale.matchOS", false); -+pref("intl.locale.matchOS", true); - // fallback charset list for Unicode conversion (converting from Unicode) - // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes) - // for ISO-8859-1 diff --git a/mailredirect-0.7.5.xpi b/mailredirect-0.7.5.xpi deleted file mode 100644 index 48aee74..0000000 --- a/mailredirect-0.7.5.xpi +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:08815def52275fc8b9c998b9ee0b1a56abae3092c646302a984ac4832b5c412b -size 105913 diff --git a/mips-buildfix.diff b/mips-buildfix.diff deleted file mode 100644 index f54fbf3..0000000 --- a/mips-buildfix.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4.orig 2003-10-31 10:06:36.000000000 +0000 -+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4 2003-10-31 10:07:06.000000000 +0000 -@@ -36,7 +36,7 @@ - LOCALSZ=2 # gp, ra - FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK - --define(STUB_NAME, `Stub'$1`__14nsXPTCStubBase') -+define(STUB_NAME, ```_ZN14nsXPTCStubBase'len(Stub'$1`)Stub'$1`Ev'') - - define(STUB_ENTRY, - ` .globl 'STUB_NAME($1)` diff --git a/misc.dif b/misc.dif deleted file mode 100644 index be6fda9..0000000 --- a/misc.dif +++ /dev/null @@ -1,20 +0,0 @@ ---- gfx/src/x11shared/nsFT2FontCatalog.cpp -+++ gfx/src/x11shared/nsFT2FontCatalog.cpp -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -92,9 +93,6 @@ - // Called to get the TrueType font summary from the disk font catalog. - // - --// Solaris is missing a prototype for ctime --extern "C" {char *ctime(const time_t *timep);} -- - #include - #include FT_GLYPH_H - #include FT_FREETYPE_H diff --git a/mozilla-app-launcher.patch b/mozilla-app-launcher.patch new file mode 100644 index 0000000..b7c0882 --- /dev/null +++ b/mozilla-app-launcher.patch @@ -0,0 +1,70 @@ +From: mozilla-central +Subject: make it possible to define MOZILLA_APP_LAUNCHER to control which + app should be used for session management +References: +https://bugzilla.mozilla.org/show_bug.cgi?id=453689 + + +--- mozilla-1.9.1/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-04-27 09:23:29.000000000 +0200 ++++ mozilla-central/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-07-07 12:55:10.000000000 +0200 +@@ -155,31 +155,37 @@ gboolean save_yourself_cb(GnomeClient *c + interact_cb, nsnull); + return TRUE; + } +- +- // Tell GNOME the command for restarting us so that we can be part of XSMP session restore +- NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!"); +- nsCOMPtr executablePath; +- nsresult rv; +- +- PRBool dummy; +- rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath)); +- +- if (NS_SUCCEEDED(rv)) { +- nsCAutoString path; +- char* argv[1]; +- +- // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does +- nsCAutoString leafName; +- rv = executablePath->GetNativeLeafName(leafName); +- if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) { +- leafName.SetLength(leafName.Length() - strlen("-bin")); +- executablePath->SetNativeLeafName(leafName); ++ ++ // Is there a request to suppress default binary launcher? ++ char* argv1 = getenv("MOZ_APP_LAUNCHER"); ++ ++ if(!argv1) { ++ // Tell GNOME the command for restarting us so that we can be part of XSMP session restore ++ NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!"); ++ nsCOMPtr executablePath; ++ nsresult rv; ++ ++ PRBool dummy; ++ rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath)); ++ ++ if (NS_SUCCEEDED(rv)) { ++ nsCAutoString path; ++ ++ // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does ++ nsCAutoString leafName; ++ rv = executablePath->GetNativeLeafName(leafName); ++ if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) { ++ leafName.SetLength(leafName.Length() - strlen("-bin")); ++ executablePath->SetNativeLeafName(leafName); ++ } ++ ++ executablePath->GetNativePath(path); ++ argv1 = (char*)(path.get()); + } ++ } + +- executablePath->GetNativePath(path); +- argv[0] = (char*)(path.get()); +- +- gnome_client_set_restart_command(client, 1, argv); ++ if(argv1) { ++ gnome_client_set_restart_command(client, 1, &argv1); + } + + return TRUE; diff --git a/mozilla-gcc4.3-fixes.patch b/mozilla-gcc4.3-fixes.patch deleted file mode 100644 index 58891c6..0000000 --- a/mozilla-gcc4.3-fixes.patch +++ /dev/null @@ -1,109 +0,0 @@ -References: -https://bugzilla.mozilla.org/show_bug.cgi?id=403675 -https://bugzilla.mozilla.org/show_bug.cgi?id=386362 - -Index: modules/libpr0n/encoders/png/nsPNGEncoder.h -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h,v -retrieving revision 1.1.18.1 -diff -u -p -6 -r1.1.18.1 nsPNGEncoder.h ---- modules/libpr0n/encoders/png/nsPNGEncoder.h 20 May 2006 17:20:49 -0000 1.1.18.1 -+++ modules/libpr0n/encoders/png/nsPNGEncoder.h 13 Nov 2007 22:07:36 -0000 -@@ -35,14 +35,16 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #include "imgIEncoder.h" - #ifdef MOZILLA_1_8_BRANCH - #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH -+#ifndef NS_DECL_IMGIENCODER - #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH - #endif -+#endif - - #include - - #define NS_PNGENCODER_CID \ - { /* 38d1592e-b81e-432b-86f8-471878bbfe07 */ \ - 0x38d1592e, \ -@@ -60,12 +62,20 @@ public: - NS_DECL_ISUPPORTS - NS_DECL_IMGIENCODER - NS_DECL_NSIINPUTSTREAM - - nsPNGEncoder(); - -+ NS_IMETHOD InitFromData(const PRUint8* aData, -+ PRUint32 aLength, // (unused, req'd by JS) -+ PRUint32 aWidth, -+ PRUint32 aHeight, -+ PRUint32 aStride, -+ PRUint32 aInputFormat, -+ const nsAString& aOutputOptions); -+ - private: - ~nsPNGEncoder(); - - protected: - void ConvertHostARGBRow(const PRUint8* aSrc, PRUint8* aDest, - PRUint32 aPixelWidth, PRBool aUseTransparency); -Index: modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h,v -retrieving revision 1.1.14.1 -diff -u -p -6 -r1.1.14.1 nsJPEGEncoder.h ---- modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 20 May 2006 17:20:48 -0000 1.1.14.1 -+++ modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 13 Nov 2007 22:07:57 -0000 -@@ -36,14 +36,16 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #include "imgIEncoder.h" - #ifdef MOZILLA_1_8_BRANCH - #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH -+#ifndef NS_DECL_IMGIENCODER - #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH - #endif -+#endif - - // needed for JPEG library - #include - - extern "C" { - #include "jpeglib.h" -@@ -66,12 +68,20 @@ public: - NS_DECL_ISUPPORTS - NS_DECL_IMGIENCODER - NS_DECL_NSIINPUTSTREAM - - nsJPEGEncoder(); - -+ NS_IMETHOD InitFromData(const PRUint8* aData, -+ PRUint32 aLength, // (unused, req'd by JS) -+ PRUint32 aWidth, -+ PRUint32 aHeight, -+ PRUint32 aStride, -+ PRUint32 aInputFormat, -+ const nsAString& aOutputOptions); -+ - private: - ~nsJPEGEncoder(); - - protected: - - void ConvertHostARGBRow(const PRUint8* aSrc, PRUint8* aDest, -Index: modules/libpr0n/public/imgIEncoder.idl -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/public/imgIEncoder.idl,v -retrieving revision 1.1.10.3 -diff -u -p -r1.1.10.3 imgIEncoder.idl ---- modules/libpr0n/public/imgIEncoder.idl 20 May 2006 17:20:49 -0000 1.1.10.3 -+++ modules/libpr0n/public/imgIEncoder.idl 14 Nov 2007 10:41:40 -0000 -@@ -96,6 +96,6 @@ interface nsIFile; - [scriptable, uuid(CCC5B3AD-3E67-4e3d-97E1-B06B2E96FEF8)] - interface imgIEncoder : nsISupports - { -- void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); -+ /* void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); */ - }; - diff --git a/mozilla-gcc44.patch b/mozilla-gcc44.patch deleted file mode 100644 index ba8f026..0000000 --- a/mozilla-gcc44.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: ./toolkit/xre/nsAppRunner.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v -retrieving revision 1.215 -diff -u -p -6 -r1.215 nsAppRunner.cpp ---- ./toolkit/xre/nsAppRunner.cpp 17 Nov 2008 14:36:43 -0000 1.215 -+++ ./toolkit/xre/nsAppRunner.cpp 27 Apr 2009 18:24:19 -0000 -@@ -1456,13 +1456,13 @@ XRE_GetBinaryPath(const char* argv0, nsI - - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; - --#elif -+#else - #error Oops, you need platform-specific code here - #endif - - NS_ADDREF(*aResult = lf); - return NS_OK; - } diff --git a/mozilla-jemalloc_deepbind.patch b/mozilla-jemalloc_deepbind.patch new file mode 100644 index 0000000..2ebf506 --- /dev/null +++ b/mozilla-jemalloc_deepbind.patch @@ -0,0 +1,47 @@ +From: Karl Tomlinson +Subject: jemalloc integration cause crashes when libraries or plugins dlopen with RTLD_DEEPBIND +References: +https://bugzilla.mozilla.org/show_bug.cgi?id=493541 +https://bugzilla.novell.com/show_bug.cgi?id=503151 + +diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c +--- a/memory/jemalloc/jemalloc.c ++++ b/memory/jemalloc/jemalloc.c +@@ -7225,8 +7225,37 @@ jemalloc_darwin_init(void) + * default zone. + */ + assert(malloc_num_zones > 1); + memmove(&malloc_zones[1], &malloc_zones[0], + sizeof(malloc_zone_t *) * (malloc_num_zones - 1)); + malloc_zones[0] = &zone; + } + #endif ++ ++#ifdef HAVE_LIBDL ++# include ++/* ++ * glibc provides the RTLD_DEEPBIND flag for dlopen which can make it possible ++ * to inconsistently reference libc's malloc(3)-compatible functions ++ * (bug 493541). ++ * ++ * XXX On systems that support RTLD_GROUP or DF_1_GROUP, do their ++ * implementations permit similar inconsistencies? Should STV_SINGLETON ++ * visibility be used for interposition where available? ++ */ ++# ifdef RTLD_DEEPBIND ++# if defined(__GLIBC__) && !defined(__UCLIBC__) ++ ++/* ++ * These interpose hooks in glibc. They are actually passed an extra ++ * argument for the caller return address, which will be ignored. ++ */ ++void (*__free_hook)(void *ptr) = free; ++void *(*__malloc_hook)(size_t size) = malloc; ++void *(*__realloc_hook)(void *ptr, size_t size) = realloc; ++void *(*__memalign_hook)(size_t alignment, size_t size) = memalign; ++ ++# elif !defined(malloc) ++# error "Interposing malloc is unsafe on this system without libc malloc hooks." ++# endif ++# endif ++#endif diff --git a/mozilla-path_len.patch b/mozilla-path_len.patch index 74d163f..c8d693d 100644 --- a/mozilla-path_len.patch +++ b/mozilla-path_len.patch @@ -81,19 +81,6 @@ diff -up mozilla/dbm/include/mcom_db.h.old mozilla/dbm/include/mcom_db.h #endif #include -diff -up mozilla/js/src/jsfile.c.old mozilla/js/src/jsfile.c ---- mozilla/js/src/jsfile.c.old 2006-07-26 20:55:08.000000000 +0200 -+++ mozilla/js/src/jsfile.c 2007-09-25 18:22:52.000000000 +0200 -@@ -105,7 +105,8 @@ - #define utfstring "binary" - #define unicodestring "unicode" - --#define MAX_PATH_LENGTH 1024 -+#include -+#define MAX_PATH_LENGTH PATH_MAX - #define MODE_SIZE 256 - #define NUMBER_SIZE 32 - #define MAX_LINE_LENGTH 256 diff -up mozilla/xpcom/typelib/xpidl/xpidl_java.c.old mozilla/xpcom/typelib/xpidl/xpidl_java.c --- mozilla/xpcom/typelib/xpidl/xpidl_java.c.old 2007-09-25 18:38:52.000000000 +0200 +++ mozilla/xpcom/typelib/xpidl/xpidl_java.c 2007-09-25 18:39:17.000000000 +0200 diff --git a/mozilla-shared-nss-db.patch b/mozilla-shared-nss-db.patch index a8afb31..ed1266d 100644 --- a/mozilla-shared-nss-db.patch +++ b/mozilla-shared-nss-db.patch @@ -1,190 +1,14 @@ -? .mozconfig.mk -? .mozconfig.out -Index: configure -=================================================================== -RCS file: /cvsroot/mozilla/configure,v -retrieving revision 1.1492.2.130 -diff -u -p -6 -r1.1492.2.130 configure ---- configure 19 Oct 2008 16:21:23 -0000 1.1492.2.130 -+++ configure 21 Nov 2008 09:52:32 -0000 -@@ -19337,12 +19337,115 @@ echo "configure:19307: checking CAIRO_LI - fi - - - - - -+ -+ -+ succeeded=no -+ -+ if test -z "$PKG_CONFIG"; then -+ # Extract the first word of "pkg-config", so it can be a program name with args. -+set dummy pkg-config; ac_word=$2 -+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -+echo "configure:19352: checking for $ac_word" >&5 -+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then -+ echo $ac_n "(cached) $ac_c" 1>&6 -+else -+ case "$PKG_CONFIG" in -+ /*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ ?:/*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. -+ ;; -+ *) -+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" -+ ac_dummy="$PATH" -+ for ac_dir in $ac_dummy; do -+ test -z "$ac_dir" && ac_dir=. -+ if test -f $ac_dir/$ac_word; then -+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" -+ break -+ fi -+ done -+ IFS="$ac_save_ifs" -+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -+ ;; -+esac -+fi -+PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+if test -n "$PKG_CONFIG"; then -+ echo "$ac_t""$PKG_CONFIG" 1>&6 -+else -+ echo "$ac_t""no" 1>&6 -+fi -+ -+ fi -+ -+ if test "$PKG_CONFIG" = "no" ; then -+ echo "*** The pkg-config script could not be found. Make sure it is" -+ echo "*** in your path, or set the PKG_CONFIG environment variable" -+ echo "*** to the full path to pkg-config." -+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." -+ else -+ PKG_CONFIG_MIN_VERSION=0.9.0 -+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then -+ echo $ac_n "checking for nss-shared-helper""... $ac_c" 1>&6 -+echo "configure:19396: checking for nss-shared-helper" >&5 -+ -+ if $PKG_CONFIG --exists "nss-shared-helper" ; then -+ echo "$ac_t""yes" 1>&6 -+ succeeded=yes -+ -+ echo $ac_n "checking NSSHELPER_CFLAGS""... $ac_c" 1>&6 -+echo "configure:19403: checking NSSHELPER_CFLAGS" >&5 -+ NSSHELPER_CFLAGS=`$PKG_CONFIG --cflags "nss-shared-helper"` -+ echo "$ac_t""$NSSHELPER_CFLAGS" 1>&6 -+ -+ echo $ac_n "checking NSSHELPER_LIBS""... $ac_c" 1>&6 -+echo "configure:19408: checking NSSHELPER_LIBS" >&5 -+ ## don't use --libs since that can do evil things like add -+ ## -Wl,--export-dynamic -+ NSSHELPER_LIBS="`$PKG_CONFIG --libs-only-L \"nss-shared-helper\"` `$PKG_CONFIG --libs-only-l \"nss-shared-helper\"`" -+ echo "$ac_t""$NSSHELPER_LIBS" 1>&6 -+ else -+ NSSHELPER_CFLAGS="" -+ NSSHELPER_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ NSSHELPER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss-shared-helper"` -+ -+ fi -+ -+ -+ -+ else -+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." -+ echo "*** See http://www.freedesktop.org/software/pkgconfig" -+ fi -+ fi -+ -+ if test $succeeded = yes; then -+ MOZ_ENABLE_NSSHELPER=1 -+ else -+ MOZ_ENABLE_NSSHELPER= -+ fi -+ -+ -+if test "$MOZ_ENABLE_NSSHELPER"; then -+ cat >> confdefs.h <<\EOF -+#define MOZ_ENABLE_NSSHELPER 1 -+EOF -+ -+fi -+ -+ -+ -+ - # Check whether --enable-xul or --disable-xul was given. - if test "${enable_xul+set}" = set; then - enableval="$enable_xul" - if test "$enableval" = "no"; then - MOZ_XUL= - elif test "$enableval" = "yes"; then -@@ -20583,12 +20686,15 @@ s%@ATSUI_FONT_FEATURE@%$ATSUI_FONT_FEATU - s%@PNG_FUNCTIONS_FEATURE@%$PNG_FUNCTIONS_FEATURE%g - s%@CAIRO_CFLAGS@%$CAIRO_CFLAGS%g - s%@CAIRO_LIBS@%$CAIRO_LIBS%g - s%@MOZ_TREE_CAIRO@%$MOZ_TREE_CAIRO%g - s%@MOZ_CAIRO_CFLAGS@%$MOZ_CAIRO_CFLAGS%g - s%@MOZ_CAIRO_LIBS@%$MOZ_CAIRO_LIBS%g -+s%@NSSHELPER_CFLAGS@%$NSSHELPER_CFLAGS%g -+s%@NSSHELPER_LIBS@%$NSSHELPER_LIBS%g -+s%@MOZ_ENABLE_NSSHELPER@%$MOZ_ENABLE_NSSHELPER%g - s%@MOZ_XUL@%$MOZ_XUL%g - s%@MOZ_PYTHON@%$MOZ_PYTHON%g - s%@MOZ_PYTHON_PREFIX@%$MOZ_PYTHON_PREFIX%g - s%@MOZ_PYTHON_INCLUDES@%$MOZ_PYTHON_INCLUDES%g - s%@MOZ_PYTHON_LIBS@%$MOZ_PYTHON_LIBS%g - s%@MOZ_PYTHON_VER@%$MOZ_PYTHON_VER%g -Index: configure.in -=================================================================== -RCS file: /cvsroot/mozilla/configure.in,v -retrieving revision 1.1503.2.112 -diff -u -p -6 -r1.1503.2.112 configure.in ---- configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112 -+++ configure.in 21 Nov 2008 09:52:34 -0000 -@@ -6808,12 +6808,27 @@ fi - - AC_SUBST(MOZ_TREE_CAIRO) - AC_SUBST(MOZ_CAIRO_CFLAGS) - AC_SUBST(MOZ_CAIRO_LIBS) - - dnl ======================================================== -+dnl Check for nss-shared-helper -+dnl ======================================================== -+ -+PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, -+ [MOZ_ENABLE_NSSHELPER=1], -+ [MOZ_ENABLE_NSSHELPER=]) -+ -+if test "$MOZ_ENABLE_NSSHELPER"; then -+ AC_DEFINE(MOZ_ENABLE_NSSHELPER) -+fi -+AC_SUBST(MOZ_ENABLE_NSSHELPER) -+AC_SUBST(NSSHELPER_CFLAGS) -+AC_SUBST(NSSHELPER_LIBS) -+ -+dnl ======================================================== - dnl disable xul - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(xul, - [ --disable-xul Disable XUL], - MOZ_XUL= ) - if test "$MOZ_XUL"; then -Index: config/autoconf.mk.in -=================================================================== -RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v -retrieving revision 3.363.2.20 -diff -u -p -6 -r3.363.2.20 autoconf.mk.in ---- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20 -+++ config/autoconf.mk.in 21 Nov 2008 09:52:35 -0000 -@@ -492,12 +492,16 @@ GLIB_CFLAGS = @GLIB_CFLAGS@ - GLIB_LIBS = @GLIB_LIBS@ - GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@ - LIBIDL_CFLAGS = @LIBIDL_CFLAGS@ +From: Hans Petter Jansson + Wolfgang Rosenauer +Subject: use libnsssharedhelper if available at compile time + (can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1) +References: + + +diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in +--- a/config/autoconf.mk.in ++++ b/config/autoconf.mk.in +@@ -535,6 +535,10 @@ LIBIDL_LIBS = @LIBIDL_LIBS@ LIBIDL_LIBS = @LIBIDL_LIBS@ STATIC_LIBIDL = @STATIC_LIBIDL@ @@ -195,44 +19,35 @@ diff -u -p -6 -r3.363.2.20 autoconf.mk.in MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@ # Used for LD_LIBRARY_PATH - LIBS_PATH = @LIBS_PATH@ +diff --git a/configure.in b/configure.in +--- a/configure.in ++++ b/configure.in +@@ -7613,6 +7613,21 @@ dnl ==================================== - MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@ -Index: mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -p -6 -r1.46.2.10 Makefile.in ---- mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mail/app/Makefile.in 21 Nov 2008 09:52:45 -0000 -@@ -100,12 +100,16 @@ endif - endif - - ifdef MOZ_JPROF - LIBS += -ljprof - endif - -+ifdef MOZ_ENABLE_NSSHELPER -+LIBS += $(NSSHELPER_LIBS) -+endif + QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)' + AC_SUBST(QCMS_LIBS) + - ifndef MOZ_WINCONSOLE - ifdef MOZ_DEBUG - MOZ_WINCONSOLE = 1 - else - MOZ_WINCONSOLE = 0 - endif -Index: security/manager/ssl/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/ssl/src/Makefile.in,v -retrieving revision 1.67.2.5 -diff -u -p -6 -r1.67.2.5 Makefile.in ---- security/manager/ssl/src/Makefile.in 4 Jun 2008 20:42:03 -0000 1.67.2.5 -+++ security/manager/ssl/src/Makefile.in 21 Nov 2008 09:52:50 -0000 -@@ -128,17 +128,18 @@ REQUIRES = nspr \ - EXTRA_DEPS = $(NSS_DEP_LIBS) ++dnl ======================================================== ++dnl Check for nss-shared-helper ++dnl ======================================================== ++ ++ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, ++ [MOZ_ENABLE_NSSHELPER=1], ++ [MOZ_ENABLE_NSSHELPER=]) ++ ++if test "$MOZ_ENABLE_NSSHELPER"; then ++ AC_DEFINE(MOZ_ENABLE_NSSHELPER) ++fi ++AC_SUBST(MOZ_ENABLE_NSSHELPER) ++AC_SUBST(NSSHELPER_CFLAGS) ++AC_SUBST(NSSHELPER_LIBS) - DEFINES += -DNSS_ENABLE_ECC + dnl ======================================================== + dnl disable xul +diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in +--- a/security/manager/ssl/src/Makefile.in ++++ b/security/manager/ssl/src/Makefile.in +@@ -137,12 +137,13 @@ DEFINES += -DNSS_ENABLE_ECC # Use local includes because they are inserted before INCLUDES # so that Mozilla's nss.h is used, not glibc's @@ -247,39 +62,24 @@ diff -u -p -6 -r1.67.2.5 Makefile.in $(NSS_LIBS) \ $(NULL) - include $(topsrcdir)/config/rules.mk - -Index: security/manager/ssl/src/nsNSSComponent.cpp -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v -retrieving revision 1.126.2.9 -diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp ---- security/manager/ssl/src/nsNSSComponent.cpp 30 Jun 2008 22:54:11 -0000 1.126.2.9 -+++ security/manager/ssl/src/nsNSSComponent.cpp 21 Nov 2008 09:52:51 -0000 -@@ -41,12 +41,19 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under +diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp +--- a/security/manager/ssl/src/nsNSSComponent.cpp ++++ b/security/manager/ssl/src/nsNSSComponent.cpp +@@ -43,6 +43,13 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ - ++ +#ifdef MOZ_ENABLE_NSSHELPER +#pragma GCC visibility push(default) +#include +#pragma GCC visibility pop +#include "prenv.h" +#endif -+ + #include "nsNSSComponent.h" #include "nsNSSCallbacks.h" - #include "nsNSSIOLayer.h" - #include "nsSSLThread.h" - #include "nsCertVerificationThread.h" - #include "nsNSSEvent.h" -@@ -1422,13 +1429,27 @@ nsNSSComponent::InitializeNSS(PRBool sho - // If we could assume i18n will not change between profiles, one call per application - // run were sufficient. As I can't predict what happens in the future, let's repeat - // this call for every re-init of NSS. +@@ -1602,7 +1609,21 @@ nsNSSComponent::InitializeNSS(PRBool sho ConfigureInternalPKCS11Token(); @@ -289,7 +89,7 @@ diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp + if (PR_GetEnv("MOZ_TB_NO_NSSHELPER")) { + init_rv = ::NSS_InitReadWrite(profileStr.get()); + } else { -+ init_rv = ::nsshelp_open_db("thunderbird", profileStr.get(), 0); ++ init_rv = ::nsshelp_open_db ("Thunderbird", profileStr.get(), 0); + + if (init_rv != SECSuccess) { + PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get())); @@ -302,6 +102,15 @@ diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp if (init_rv != SECSuccess) { PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get())); +diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in +--- a/toolkit/library/Makefile.in ++++ b/toolkit/library/Makefile.in +@@ -194,7 +194,7 @@ endif - if (supress_warning_preference) { - which_nss_problem = problem_none; + DEFINES += -DIMPL_XREAPI + +-EXTRA_DSO_LDOPTS += $(NSPR_LIBS) ++EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(NSSHELPER_LIBS) + + ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) + CXXFLAGS += $(TK_CFLAGS) diff --git a/mozilla-system-hunspell.patch b/mozilla-system-hunspell.patch deleted file mode 100644 index 7088055..0000000 --- a/mozilla-system-hunspell.patch +++ /dev/null @@ -1,304 +0,0 @@ -Index: config/autoconf.mk.in -=================================================================== -RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v -retrieving revision 3.363.2.20 -diff -u -p -6 -r3.363.2.20 autoconf.mk.in ---- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20 -+++ config/autoconf.mk.in 29 Dec 2008 13:52:18 -0000 -@@ -187,12 +187,16 @@ MOZ_XUL = @MOZ_XUL@ - - NECKO_PROTOCOLS = @NECKO_PROTOCOLS@ - NECKO_DISK_CACHE = @NECKO_DISK_CACHE@ - NECKO_SMALL_BUFFERS = @NECKO_SMALL_BUFFERS@ - NECKO_COOKIES = @NECKO_COOKIES@ - -+MOZ_NATIVE_MYSPELL = @SYSTEM_MYSPELL@ -+MOZ_MYSPELL_LIBS = @MOZ_MYSPELL_LIBS@ -+MOZ_MYSPELL_CFLAGS = @MOZ_MYSPELL_CFLAGS@ -+ - MOZ_NATIVE_ZLIB = @SYSTEM_ZLIB@ - MOZ_NATIVE_JPEG = @SYSTEM_JPEG@ - MOZ_NATIVE_PNG = @SYSTEM_PNG@ - MOZ_TREE_CAIRO = @MOZ_TREE_CAIRO@ - - MOZ_UPDATE_XTERM = @MOZ_UPDATE_XTERM@ -Index: extensions/spellcheck/myspell/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/extensions/spellcheck/myspell/src/Attic/Makefile.in,v -retrieving revision 1.11.4.1 -diff -u -p -6 -r1.11.4.1 Makefile.in ---- extensions/spellcheck/myspell/src/Makefile.in 29 Jun 2006 21:23:45 -0000 1.11.4.1 -+++ extensions/spellcheck/myspell/src/Makefile.in 29 Dec 2008 13:52:22 -0000 -@@ -57,28 +57,36 @@ REQUIRES = xpcom \ - uconv \ - unicharutil \ - spellchecker \ - xulapp \ - $(NULL) - --CPPSRCS = affentry.cpp \ -- affixmgr.cpp \ -- hashmgr.cpp \ -- suggestmgr.cpp \ -- csutil.cpp \ -- myspell.cpp \ -- mozMySpell.cpp \ -- mozMySpellFactory.cpp \ -+CPPSRCS = mozMySpell.cpp \ -+ mozMySpellFactory.cpp \ - $(NULL) -+ifndef MOZ_NATIVE_MYSPELL -+CPPSRCS += affentry.cpp \ -+ affixmgr.cpp \ -+ hashmgr.cpp \ -+ suggestmgr.cpp \ -+ csutil.cpp \ -+ myspell.cpp \ -+ $(NULL) -+endif - - ifdef MOZ_XUL_APP - CPPSRCS += mozMySpellDirProvider.cpp - endif - - EXTRA_DSO_LDOPTS = \ - $(LIBS_DIR) \ - $(XPCOM_LIBS) \ - $(NSPR_LIBS) \ - $(MOZ_UNICHARUTIL_LIBS) \ -+ $(MOZ_MYSPELL_LIBS) \ - $(NULL) - - include $(topsrcdir)/config/rules.mk -+ -+ifdef MOZ_NATIVE_MYSPELL -+CXXFLAGS += $(MOZ_MYSPELL_CFLAGS) -+endif -Index: extensions/spellcheck/myspell/src/mozMySpell.h -=================================================================== -RCS file: /cvsroot/mozilla/extensions/spellcheck/myspell/src/Attic/mozMySpell.h,v -retrieving revision 1.3.12.3 -diff -u -p -6 -r1.3.12.3 mozMySpell.h ---- extensions/spellcheck/myspell/src/mozMySpell.h 29 Jun 2006 21:46:59 -0000 1.3.12.3 -+++ extensions/spellcheck/myspell/src/mozMySpell.h 29 Dec 2008 13:52:22 -0000 -@@ -53,13 +53,17 @@ - * (the home page for ispell) - * - * ***** END LICENSE BLOCK ***** */ - #ifndef mozMySpell_h__ - #define mozMySpell_h__ - -+#ifdef MOZ_NATIVE_MYSPELL -+#include "hunspell.hxx" -+#else - #include "myspell.hxx" -+#endif - #include "mozISpellCheckingEngine.h" - #include "mozIPersonalDictionary.h" - #include "nsString.h" - #include "nsCOMPtr.h" - #include "nsIObserver.h" - #include "nsIUnicodeEncoder.h" -Index: config/system-headers -=================================================================== -RCS file: /cvsroot/mozilla/config/system-headers,v -retrieving revision 3.4.4.4 -diff -u -p -6 -r3.4.4.4 system-headers ---- config/system-headers 8 Nov 2007 09:03:24 -0000 3.4.4.4 -+++ config/system-headers 29 Dec 2008 15:11:37 -0000 -@@ -929,6 +929,7 @@ pk11sdr.h - #if MOZ_NATIVE_PNG==1 - png.h - #endif - #if MOZ_NATIVE_ZLIB==1 - zlib.h - #endif -+hunspell/hunspell.hxx -Index: configure.in -=================================================================== -RCS file: /cvsroot/mozilla/configure.in,v -retrieving revision 1.1503.2.112 -diff -u -p -r1.1503.2.112 configure.in ---- configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112 -+++ configure.in 29 Dec 2008 15:44:08 -0000 -@@ -3916,6 +3916,24 @@ fi - - fi # SKIP_LIBRARY_CHECKS - -+dnl system MySpell Support -+dnl ======================================================== -+MOZ_ARG_ENABLE_BOOL(system-myspell, -+[ --enable-system-myspell Use system myspell (located with pkgconfig)], -+ SYSTEM_MYSPELL=1 ) -+ -+if test -n "$SYSTEM_MYSPELL"; then -+ PKG_CHECK_MODULES(MOZ_MYSPELL, hunspell) -+ MOZ_MYSPELL_CFLAGS="$MOZ_MYSPELL_CFLAGS -DMySpell=Hunspell" -+fi -+ -+if test "$SYSTEM_MYSPELL" = 1; then -+ AC_DEFINE(MOZ_NATIVE_MYSPELL) -+fi -+AC_SUBST(SYSTEM_MYSPELL) -+AC_SUBST(MOZ_MYSPELL_LIBS) -+AC_SUBST(MOZ_MYSPELL_CFLAGS) -+ - dnl ======================================================== - dnl Java SDK support - dnl ======================================================== -Index: configure -=================================================================== -RCS file: /cvsroot/mozilla/configure,v -retrieving revision 1.1492.2.130 -diff -u -p -r1.1492.2.130 configure ---- configure 19 Oct 2008 16:21:23 -0000 1.1492.2.130 -+++ configure 29 Dec 2008 15:44:16 -0000 -@@ -60,6 +60,8 @@ ac_help="$ac_help - --with-system-png[=PFX] - Use system libpng [installed at prefix PFX]" - ac_help="$ac_help -+ --enable-system-myspell Use system myspell (located with pkgconfig)" -+ac_help="$ac_help - --with-java-include-path=dir Location of Java SDK headers" - ac_help="$ac_help - --with-java-bin-path=dir Location of Java binaries (java, javac, jar)" -@@ -12185,6 +12187,124 @@ fi - - fi # SKIP_LIBRARY_CHECKS - -+# Check whether --enable-system-myspell or --disable-system-myspell was given. -+if test "${enable_system_myspell+set}" = set; then -+ enableval="$enable_system_myspell" -+ if test "$enableval" = "yes"; then -+ SYSTEM_MYSPELL=1 -+ elif test "$enableval" = "no"; then -+ : -+ else -+ { echo "configure: error: Option, system-myspell, does not take an argument ($enableval)." 1>&2; exit 1; } -+ fi -+fi -+ -+ -+if test -n "$SYSTEM_MYSPELL"; then -+ -+ succeeded=no -+ -+ if test -z "$PKG_CONFIG"; then -+ # Extract the first word of "pkg-config", so it can be a program name with args. -+set dummy pkg-config; ac_word=$2 -+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -+echo "configure:12212: checking for $ac_word" >&5 -+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then -+ echo $ac_n "(cached) $ac_c" 1>&6 -+else -+ case "$PKG_CONFIG" in -+ /*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ ?:/*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. -+ ;; -+ *) -+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" -+ ac_dummy="$PATH" -+ for ac_dir in $ac_dummy; do -+ test -z "$ac_dir" && ac_dir=. -+ if test -f $ac_dir/$ac_word; then -+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" -+ break -+ fi -+ done -+ IFS="$ac_save_ifs" -+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -+ ;; -+esac -+fi -+PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+if test -n "$PKG_CONFIG"; then -+ echo "$ac_t""$PKG_CONFIG" 1>&6 -+else -+ echo "$ac_t""no" 1>&6 -+fi -+ -+ fi -+ -+ if test "$PKG_CONFIG" = "no" ; then -+ echo "*** The pkg-config script could not be found. Make sure it is" -+ echo "*** in your path, or set the PKG_CONFIG environment variable" -+ echo "*** to the full path to pkg-config." -+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." -+ else -+ PKG_CONFIG_MIN_VERSION=0.9.0 -+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then -+ echo $ac_n "checking for hunspell""... $ac_c" 1>&6 -+echo "configure:12256: checking for hunspell" >&5 -+ -+ if $PKG_CONFIG --exists "hunspell" ; then -+ echo "$ac_t""yes" 1>&6 -+ succeeded=yes -+ -+ echo $ac_n "checking MOZ_MYSPELL_CFLAGS""... $ac_c" 1>&6 -+echo "configure:12263: checking MOZ_MYSPELL_CFLAGS" >&5 -+ MOZ_MYSPELL_CFLAGS=`$PKG_CONFIG --cflags "hunspell"` -+ echo "$ac_t""$MOZ_MYSPELL_CFLAGS" 1>&6 -+ -+ echo $ac_n "checking MOZ_MYSPELL_LIBS""... $ac_c" 1>&6 -+echo "configure:12268: checking MOZ_MYSPELL_LIBS" >&5 -+ ## don't use --libs since that can do evil things like add -+ ## -Wl,--export-dynamic -+ MOZ_MYSPELL_LIBS="`$PKG_CONFIG --libs-only-L \"hunspell\"` `$PKG_CONFIG --libs-only-l \"hunspell\"`" -+ echo "$ac_t""$MOZ_MYSPELL_LIBS" 1>&6 -+ else -+ MOZ_MYSPELL_CFLAGS="" -+ MOZ_MYSPELL_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ MOZ_MYSPELL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "hunspell"` -+ echo $MOZ_MYSPELL_PKG_ERRORS -+ fi -+ -+ -+ -+ else -+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." -+ echo "*** See http://www.freedesktop.org/software/pkgconfig" -+ fi -+ fi -+ -+ if test $succeeded = yes; then -+ : -+ else -+ { echo "configure: error: Library requirements (hunspell) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; exit 1; } -+ fi -+ -+ MOZ_MYSPELL_CFLAGS="$MOZ_MYSPELL_CFLAGS -DMySpell=Hunspell" -+fi -+ -+if test "$SYSTEM_MYSPELL" = 1; then -+ cat >> confdefs.h <<\EOF -+#define MOZ_NATIVE_MYSPELL 1 -+EOF -+ -+fi -+ -+ -+ -+ - JAVA_INCLUDE_PATH= - # Check whether --with-java-include-path or --without-java-include-path was given. - if test "${with_java_include_path+set}" = set; then -@@ -20459,10 +20579,13 @@ s%@NSPR_LIBS@%$NSPR_LIBS%g - s%@NSS_CONFIG@%$NSS_CONFIG%g - s%@NSS_CFLAGS@%$NSS_CFLAGS%g - s%@NSS_LIBS@%$NSS_LIBS%g -+s%@PKG_CONFIG@%$PKG_CONFIG%g -+s%@MOZ_MYSPELL_CFLAGS@%$MOZ_MYSPELL_CFLAGS%g -+s%@MOZ_MYSPELL_LIBS@%$MOZ_MYSPELL_LIBS%g -+s%@SYSTEM_MYSPELL@%$SYSTEM_MYSPELL%g - s%@GTK_CONFIG@%$GTK_CONFIG%g - s%@GTK_CFLAGS@%$GTK_CFLAGS%g - s%@GTK_LIBS@%$GTK_LIBS%g --s%@PKG_CONFIG@%$PKG_CONFIG%g - s%@MOZ_GTK2_CFLAGS@%$MOZ_GTK2_CFLAGS%g - s%@MOZ_GTK2_LIBS@%$MOZ_GTK2_LIBS%g - s%@HOST_MOC@%$HOST_MOC%g diff --git a/mozilla-system-hunspell.patch.bz2 b/mozilla-system-hunspell.patch.bz2 new file mode 100644 index 0000000..ee9d62a --- /dev/null +++ b/mozilla-system-hunspell.patch.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcf32288d607a0b8ebd4d275c1ccfa42390944d4711c24cdf8e6ee4f4953be0a +size 124011 diff --git a/mozilla.sh.in b/mozilla.sh.in index 47d3e09..108dec2 100644 --- a/mozilla.sh.in +++ b/mozilla.sh.in @@ -1,30 +1,47 @@ #!/bin/sh # -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 # -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ # -# The Original Code is mozilla.org code. +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. # -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. +# The Original Code is mozilla.org Code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. # # Contributor(s): # Wolfgang Rosenauer +# # +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** ## ## Usage: ## -## $ mozilla +## $ mozilla [args] ## ## This script is meant to run a mozilla program from the mozilla ## rpm installation. @@ -40,99 +57,77 @@ cmdname=`basename $0` MOZ_DIST_BIN="%PREFIX" MOZ_DIST_LIB="%PROGDIR" MOZ_APPNAME="%APPNAME" -MOZ_PROFILE="%PROFILE" MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME-bin" -# enigmail should honor env -export ENIGMAIL_PASS_ENV=http_proxy +export MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh" -# ignore composite extension -export XLIB_SKIP_ARGB_VISUALS=1 +mozilla_lib=`file $MOZ_PROGRAM` +LIB=lib +echo $mozilla_lib | grep -q -E 'x86-64|s390x|ppc64' && LIB=lib64 -# Pango support -if [ -z "$MOZ_ENABLE_PANGO" -a -z "$MOZ_DISABLE_PANGO" ]; then - case "${LC_ALL-${LC_CTYPE-${LANG-en_US}}}" in - bn*|gu*|hi*|ja*|km*|kn*|ml*|mr*|pa*|ta*|te*) # list of languages which need pango - ;; - *) - export MOZ_DISABLE_PANGO=1 # disable by default - ;; - esac +BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins +if [ ! -d $BROWSER_PLUGIN_DIR ]; then + BROWSER_PLUGIN_DIR=/opt/netscape/plugins fi -## -## Set MOZILLA_FIVE_HOME -## MOZILLA_FIVE_HOME="$MOZ_DIST_LIB" export MOZILLA_FIVE_HOME - -## -## Set LD_LIBRARY_PATH -## -if [ "$LD_LIBRARY_PATH" ] -then - LD_LIBRARY_PATH=$MOZ_DIST_LIB/plugins:$MOZ_DIST_LIB:$LD_LIBRARY_PATH -else - LD_LIBRARY_PATH=$MOZ_DIST_LIB/plugins:$MOZ_DIST_LIB -fi +LD_LIBRARY_PATH=$MOZ_DIST_LIB:$LD_LIBRARY_PATH export LD_LIBRARY_PATH -## Make sure that we set the plugin path for backwards compatibility -## Set MOZ_PLUGIN_PATH to $HOME/.mozilla/plugins if not set +# ignore composite extension (needed for Flash) +export XLIB_SKIP_ARGB_VISUALS=1 + +# needed for SUN Java under Xorg >= 7.2 +export LIBXCB_ALLOW_SLOPPY_LOCK=1 + ## if [ -z "$MOZ_PLUGIN_PATH" ]; then - export MOZ_PLUGIN_PATH=$MOZILLA_FIVE_HOME/plugins - if [ "$HOME" ] ; then - export MOZ_PLUGIN_PATH=$HOME/$MOZ_PROFILE/plugins:$MOZ_PLUGIN_PATH + export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR +else + # make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH + echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null + _retval=$? + if [ ${_retval} -ne 0 ]; then + export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR fi fi -moz_pis_startstop_scripts() -{ - MOZ_USER_DIR="$MOZ_PROFILE" - # MOZ_PIS_ is the name space for "Mozilla Plugable Init Scripts" - # These variables and there meaning are specified in - # mozilla/xpfe/bootstrap/init.d/README - MOZ_PIS_API=2 - MOZ_PIS_MOZBINDIR="$MOZ_DIST_LIB" - MOZ_PIS_SESSION_PID="$$" - MOZ_PIS_USER_DIR="${MOZ_USER_DIR}" - export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR - - case "${1}" in - "start") - for curr_pis in "$MOZ_DIST_LIB/init.d"/S* "${HOME}/${MOZ_USER_DIR}/init.d"/S* ; do - if [ -x "${curr_pis}" ] ; then - case "${curr_pis}" in - *.sh) . "${curr_pis}" ;; - *) "${curr_pis}" "start" ;; - esac - fi - done - ;; - "stop") - for curr_pis in "${HOME}/${MOZ_USER_DIR}/init.d"/K* "$MOZ_DIST_LIB/init.d"/K* ; do - if [ -x "${curr_pis}" ] ; then - case "${curr_pis}" in - *.sh) . "${curr_pis}" ;; - *) "${curr_pis}" "stop" ;; - esac - fi - done +moz_debug=0 +script_args="" +pass_arg_count=0 +while [ $# -gt $pass_arg_count ] +do + case "$1" in + -d | --debugger) + moz_debugger=$2; + if [ "${moz_debugger}" != "" ]; then + shift 2 + moz_debug=1 + else + echo "-d requires an argument" + exit 1 + fi ;; *) - echo 1>&2 "$0: Internal error in moz_pis_startstop_scripts." - exit 1 + # Move the unrecognized argument to the end of the list. + arg="$1" + shift + set -- "$@" "$arg" + pass_arg_count=`expr $pass_arg_count + 1` ;; esac -} +done +if [ $moz_debug -eq 1 ]; then + tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; } + trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15 + echo -e "set args ${1+"$@"}\nrun" > $tmpfile + echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile" + $moz_debugger "$MOZ_PROGRAM" -x $tmpfile +else + $MOZ_PROGRAM "$@" +fi +exitcode=$? -## Start addon scripts -moz_pis_startstop_scripts "start" - -$MOZ_PROGRAM $@ - -## Stop addon scripts -moz_pis_startstop_scripts "stop" -exit 0 +exit $exitcode diff --git a/mozldap-charray_strdup.patch b/mozldap-charray_strdup.patch deleted file mode 100644 index 5729634..0000000 --- a/mozldap-charray_strdup.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- directory/c-sdk/ldap/libraries/libldap/charray.c_orig 2008-10-28 14:12:34.000000000 +0100 -+++ directory/c-sdk/ldap/libraries/libldap/charray.c 2008-10-28 14:36:05.000000000 +0100 -@@ -191,7 +191,7 @@ - */ - char ** - LDAP_CALL --ldap_str2charray( char *str, char *brkstr ) -+ldap_str2charray( char *str_in, char *brkstr ) - /* This implementation fails if brkstr contains multibyte characters. - But it works OK if str is UTF-8 and brkstr is 7-bit ASCII. - */ -@@ -199,6 +199,12 @@ - char **res; - char *s; - int i; -+ char *str; -+ -+ str = nsldapi_strdup( str_in ); -+ if ( str == NULL ) { -+ return NULL; -+ } - - i = 1; - for ( s = str; *s; s++ ) { -@@ -209,6 +215,7 @@ - - res = (char **)NSLDAPI_MALLOC( (i + 1) * sizeof(char *) ); - if ( res == NULL ) { -+ NSLDAPI_FREE( str ); - return NULL; - } - i = 0; -@@ -221,11 +228,13 @@ - for ( j = 0; j < (i - 1); j++ ) - NSLDAPI_FREE( res[j] ); - NSLDAPI_FREE( res ); -+ NSLDAPI_FREE( str ); - return NULL; - } - } - res[i] = NULL; - -+ NSLDAPI_FREE( str ); - return( res ); - } - diff --git a/nspr-prdtoa.patch b/nspr-prdtoa.patch deleted file mode 100644 index e49314c..0000000 --- a/nspr-prdtoa.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- nsprpub/pr/src/misc/Makefile.in.foo Wed Jun 11 15:42:57 2003 -+++ nsprpub/pr/src/misc/Makefile.in Wed Jun 11 15:42:49 2003 -@@ -82,6 +82,14 @@ - - include $(topsrcdir)/config/rules.mk - -+NONOPT_CFLAGS=$(filter-out -O%, $(CFLAGS)) -+ -+ifeq ($(OS_ARCH),Linux) -+$(OBJDIR)/prdtoa.$(OBJ_SUFFIX): prdtoa.c -+ @$(MAKE_OBJDIR) -+ $(CC) -o $@ -c $(NONOPT_CFLAGS) -ffloat-store $< -+endif -+ - # - # Generate prerr.h, prerr.c, and prerr.properties from prerr.et. - # diff --git a/nss-opt.patch b/nss-opt.patch deleted file mode 100644 index 1510174..0000000 --- a/nss-opt.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Wolfgang Rosenauer -Subject: NSS doesn't inherit CFLAGS -References: https://bugzilla.mozilla.org/show_bug.cgi?id=101249 -Description: -CFLAGS are not taken from mozilla build - -Index: security/manager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v -retrieving revision 1.52 -diff -u -r1.52 Makefile.in ---- security/manager/Makefile.in 7 Jan 2004 13:36:50 -0000 1.52 -+++ security/manager/Makefile.in 10 Mar 2004 09:44:29 -0000 -@@ -71,7 +71,10 @@ - ifneq ($(ABS_topsrcdir),$(MOZ_BUILD_ROOT)) - DEFAULT_GMAKE_FLAGS += BUILD_TREE=$(MOZ_BUILD_ROOT) - endif --ifndef MOZ_DEBUG -+ifdef MOZ_DEBUG -+DEFAULT_GMAKE_FLAGS += OPTIMIZER="$(MOZ_DEBUG_FLAGS)" -+else -+DEFAULT_GMAKE_FLAGS += OPTIMIZER="$(MOZ_OPTIMIZE_FLAGS)" - DEFAULT_GMAKE_FLAGS += BUILD_OPT=1 - endif - ifdef GNU_CC diff --git a/postscript.patch b/postscript.patch deleted file mode 100644 index c788d31..0000000 --- a/postscript.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Wolfgang Rosenauer -Subject: make pagesize postscript DSC conform -References: -http://www.cups.org/str.php?L1542 -https://bugzilla.mozilla.org/show_bug.cgi?id=334485 - -Index: gfx/src/ps/nsPostScriptObj.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/ps/nsPostScriptObj.cpp,v -retrieving revision 1.124 -diff -u -p -6 -r1.124 nsPostScriptObj.cpp ---- gfx/src/ps/nsPostScriptObj.cpp 26 Jul 2005 15:54:18 -0000 1.124 -+++ gfx/src/ps/nsPostScriptObj.cpp 25 Apr 2006 18:10:34 -0000 -@@ -463,20 +463,23 @@ nsPostScriptObj::write_prolog(FILE *aHan - - // now begin prolog - fprintf(f, "%%%%BeginProlog\n"); - - // Tell the printer what size paper it should use - fprintf(f, -+ "%%%%BeginFeature: *PageSize %s\n" - "/setpagedevice where\n" // Test for the feature - "{ pop 2 dict\n" - " dup /PageSize [ %s %s ] put\n" // Paper dimensions - " dup /Policies 1 dict\n" - " dup /PageSize 3 put\n" // Select the nearest page size to fit - " put\n" - " setpagedevice\n" // Install settings -- "} if\n", -+ "} if\n" -+ "%%%%EndFeature\n", -+ mPrintSetup->paper_name, - fpCString(NSTwipsToFloatPoints(paper_width)).get(), - fpCString(NSTwipsToFloatPoints(paper_height)).get()); - - fprintf(f, "["); - for (i = 0; i < 256; i++){ - if (*isotab[i] == '\0'){ diff --git a/replytolist.patch b/replytolist.patch deleted file mode 100644 index f5a1160..0000000 --- a/replytolist.patch +++ /dev/null @@ -1,244 +0,0 @@ -Index: mailnews/compose/public/nsIMsgComposeParams.idl -=================================================================== -RCS file: /cvsroot/mozilla/mailnews/compose/public/nsIMsgComposeParams.idl,v -retrieving revision 1.8 -diff -u -p -r1.8 nsIMsgComposeParams.idl ---- mailnews/compose/public/nsIMsgComposeParams.idl 16 Sep 2005 15:18:32 -0000 1.8 -+++ mailnews/compose/public/nsIMsgComposeParams.idl 6 Apr 2006 02:26:57 -0000 -@@ -59,6 +59,7 @@ interface nsIMsgCompType { - const long Template = 10; - const long MailToUrl = 11; - const long ReplyWithTemplate = 12; -+ const long ReplyToList = 13; - }; - - -Index: mailnews/mime/public/nsMailHeaders.h -=================================================================== -RCS file: /cvsroot/mozilla/mailnews/mime/public/nsMailHeaders.h,v -retrieving revision 1.11 -diff -u -p -6 -r1.11 nsMailHeaders.h ---- mailnews/mime/public/nsMailHeaders.h 28 Feb 2005 17:10:57 -0000 1.11 -+++ mailnews/mime/public/nsMailHeaders.h 14 Aug 2006 07:31:12 -0000 -@@ -62,12 +62,13 @@ - #define HEADER_DISTRIBUTION "Distribution" - #define HEADER_FCC "FCC" - #define HEADER_FOLLOWUP_TO "Followup-To" - #define HEADER_FROM "From" - #define HEADER_STATUS "Status" - #define HEADER_LINES "Lines" -+#define HEADER_LIST_POST "List-Post" - #define HEADER_MAIL_FOLLOWUP_TO "Mail-Followup-To" - #define HEADER_MAIL_REPLY_TO "Mail-Reply-To" - #define HEADER_MESSAGE_ID "Message-ID" - #define HEADER_MIME_VERSION "MIME-Version" - #define HEADER_NEWSGROUPS "Newsgroups" - #define HEADER_ORGANIZATION "Organization" -@@ -99,12 +100,13 @@ - #define HEADER_X_SUN_CONTENT_LINES "X-Sun-Content-Lines" - #define HEADER_X_SUN_DATA_DESCRIPTION "X-Sun-Data-Description" - #define HEADER_X_SUN_DATA_NAME "X-Sun-Data-Name" - #define HEADER_X_SUN_DATA_TYPE "X-Sun-Data-Type" - #define HEADER_X_SUN_ENCODING_INFO "X-Sun-Encoding-Info" - #define HEADER_X_PRIORITY "X-Priority" -+#define HEADER_X_REPLY_TO "X-Reply-To" - - #define HEADER_PARM_CHARSET "charset" - #define HEADER_PARM_START "start" - #define HEADER_PARM_BOUNDARY "BOUNDARY" - #define HEADER_PARM_FILENAME "FILENAME" - #define HEADER_PARM_NAME "NAME" -Index: mail/base/content/mailCommands.js -=================================================================== -RCS file: /cvsroot/mozilla/mail/base/content/mailCommands.js,v -retrieving revision 1.20.2.5 -diff -u -p -6 -r1.20.2.5 mailCommands.js ---- mail/base/content/mailCommands.js 10 Jul 2006 19:44:11 -0000 1.20.2.5 -+++ mail/base/content/mailCommands.js 21 Nov 2006 07:35:42 -0000 -@@ -260,12 +260,13 @@ function ComposeMessage(type, format, fo - var messageID = hdr.messageId; - var messageIDScheme = messageID ? messageID.split(":")[0] : ""; - if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this) - openComposeWindowForRSSArticle(messageID, hdr, type); - else if (type == msgComposeType.Reply || - type == msgComposeType.ReplyAll || -+ type == msgComposeType.ReplyToList || - type == msgComposeType.ForwardInline || - type == msgComposeType.ReplyToGroup || - type == msgComposeType.ReplyToSender || - type == msgComposeType.ReplyToSenderAndGroup || - type == msgComposeType.Template || - type == msgComposeType.Draft) -Index: mailnews/base/resources/content/mailCommands.js -=================================================================== -RCS file: /cvsroot/mozilla/mailnews/base/resources/content/mailCommands.js,v -retrieving revision 1.96.4.4 -diff -u -p -6 -r1.96.4.4 mailCommands.js ---- mailnews/base/resources/content/mailCommands.js 25 Jun 2006 08:56:04 -0000 1.96.4.4 -+++ mailnews/base/resources/content/mailCommands.js 21 Nov 2006 07:35:51 -0000 -@@ -267,12 +267,13 @@ function ComposeMessage(type, format, fo - identity = tmpIdentity; - } - } - - if (type == msgComposeType.Reply || - type == msgComposeType.ReplyAll || -+ type == msgComposeType.ReplyToList || - type == msgComposeType.ForwardInline || - type == msgComposeType.ReplyToGroup || - type == msgComposeType.ReplyToSender || - type == msgComposeType.ReplyToSenderAndGroup || - type == msgComposeType.Template || - type == msgComposeType.Draft) -Index: mailnews/compose/src/nsMsgCompose.cpp -=================================================================== -RCS file: /cvsroot/mozilla/mailnews/compose/src/nsMsgCompose.cpp,v -retrieving revision 1.460.2.27 -diff -u -p -6 -r1.460.2.27 nsMsgCompose.cpp ---- mailnews/compose/src/nsMsgCompose.cpp 4 Jan 2007 19:34:56 -0000 1.460.2.27 -+++ mailnews/compose/src/nsMsgCompose.cpp 10 Jan 2007 09:01:35 -0000 -@@ -1748,12 +1748,13 @@ nsresult nsMsgCompose::CreateMessage(con - - switch (type) - { - default: break; - case nsIMsgCompType::Reply : - case nsIMsgCompType::ReplyAll: -+ case nsIMsgCompType::ReplyToList: - case nsIMsgCompType::ReplyToGroup: - case nsIMsgCompType::ReplyToSender: - case nsIMsgCompType::ReplyToSenderAndGroup: - { - if (!isFirstPass) // safeguard, just in case... - { -@@ -2192,14 +2193,18 @@ NS_IMETHODIMP QuotingOutputStreamListene - compose->GetType(&type); - - // Assign cite information if available... - if (!mCiteReference.IsEmpty()) - compose->SetCiteReference(mCiteReference); - -- if (mHeaders && (type == nsIMsgCompType::Reply || type == nsIMsgCompType::ReplyAll || type == nsIMsgCompType::ReplyToSender || -- type == nsIMsgCompType::ReplyToGroup || type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal) -+ if (mHeaders && (type == nsIMsgCompType::Reply || -+ type == nsIMsgCompType::ReplyAll || -+ type == nsIMsgCompType::ReplyToList || -+ type == nsIMsgCompType::ReplyToSender || -+ type == nsIMsgCompType::ReplyToGroup || -+ type == nsIMsgCompType::ReplyToSenderAndGroup) && mQuoteOriginal) - { - nsCOMPtr compFields; - compose->GetCompFields(getter_AddRefs(compFields)); - if (compFields) - { - aCharset.AssignLiteral("UTF-8"); -@@ -2210,12 +2215,13 @@ NS_IMETHODIMP QuotingOutputStreamListene - nsAutoString mailReplyTo; - nsAutoString mailFollowupTo; - nsAutoString newgroups; - nsAutoString followUpTo; - nsAutoString messageId; - nsAutoString references; -+ nsAutoString listPost; - nsXPIDLCString outCString; - PRBool needToRemoveDup = PR_FALSE; - if (!mMimeConverter) - { - mMimeConverter = do_GetService(NS_MIME_CONVERTER_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, rv); -@@ -2263,13 +2269,36 @@ NS_IMETHODIMP QuotingOutputStreamListene - recipient += cc; - compFields->SetCc(recipient); - } - - needToRemoveDup = PR_TRUE; - } -- -+ -+ mHeaders->ExtractHeader(HEADER_LIST_POST, PR_TRUE, getter_Copies(outCString)); -+ if (!outCString.IsEmpty()) -+ mMimeConverter->DecodeMimeHeader(outCString, listPost, charset); -+ -+ if (type == nsIMsgCompType::ReplyToList && ! listPost.IsEmpty()) -+ { -+ nsString::const_iterator mailtoStart, mailtoEnd; -+ listPost.BeginReading(mailtoStart); -+ listPost.EndReading(mailtoEnd); -+ nsAutoString mailtoText(NS_LITERAL_STRING("" -+ if (mailtoFound && listPost.Equals(mailtoStart.get()) && -+ listPost.RFindChar('>') == listPost.Length() - 1) -+ { -+ listPost.Cut(0, mailtoText.Length()); -+ listPost.Cut(listPost.Length() - 1, 1); -+ -+ compFields->SetTo(listPost); -+ } -+ } -+ - mHeaders->ExtractHeader(HEADER_REPLY_TO, PR_FALSE, getter_Copies(outCString)); - if (outCString) - { - mMimeConverter->DecodeMimeHeader(outCString, replyTo, charset); - } - -@@ -2300,13 +2329,14 @@ NS_IMETHODIMP QuotingOutputStreamListene - mHeaders->ExtractHeader(HEADER_REFERENCES, PR_FALSE, getter_Copies(outCString)); - if (outCString) - { - mMimeConverter->DecodeMimeHeader(outCString, references, charset); - } - -- if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty())) -+ if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()) && -+ ! ((type == nsIMsgCompType::ReplyToList) && ! listPost.IsEmpty())) - { - if (! mailReplyTo.IsEmpty()) - { // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html) - compFields->SetTo(mailReplyTo); - needToRemoveDup = PR_TRUE; - } -@@ -2805,12 +2835,13 @@ void nsMsgCompose::CleanUpRecipients(nsS - NS_IMETHODIMP nsMsgCompose::RememberQueuedDisposition() - { - // need to find the msg hdr in the saved folder and then set a property on - // the header that we then look at when we actually send the message. - if (mType == nsIMsgCompType::Reply || - mType == nsIMsgCompType::ReplyAll || -+ mType == nsIMsgCompType::ReplyToList || - mType == nsIMsgCompType::ReplyToGroup || - mType == nsIMsgCompType::ReplyToSender || - mType == nsIMsgCompType::ReplyToSenderAndGroup || - mType == nsIMsgCompType::ForwardAsAttachment || - mType == nsIMsgCompType::ForwardInline) - { -@@ -2843,12 +2874,13 @@ nsresult nsMsgCompose::ProcessReplyFlags - { - nsresult rv; - // check to see if we were doing a reply or a forward, if we were, set the answered field flag on the message folder - // for this URI. - if (mType == nsIMsgCompType::Reply || - mType == nsIMsgCompType::ReplyAll || -+ mType == nsIMsgCompType::ReplyToList || - mType == nsIMsgCompType::ReplyToGroup || - mType == nsIMsgCompType::ReplyToSender || - mType == nsIMsgCompType::ReplyToSenderAndGroup || - mType == nsIMsgCompType::ForwardAsAttachment || - mType == nsIMsgCompType::ForwardInline || - mDraftDisposition != nsIMsgFolder::nsMsgDispositionState_None) -@@ -3775,12 +3807,13 @@ nsMsgCompose::BuildBodyMessageAndSignatu - switch (mType) - { - case nsIMsgCompType::New : - case nsIMsgCompType::MailToUrl : /* same as New */ - case nsIMsgCompType::Reply : /* should not happen! but just in case */ - case nsIMsgCompType::ReplyAll : /* should not happen! but just in case */ -+ case nsIMsgCompType::ReplyToList : /* should not happen! but just in case */ - case nsIMsgCompType::ForwardAsAttachment : /* should not happen! but just in case */ - case nsIMsgCompType::ForwardInline : - case nsIMsgCompType::NewsPost : - case nsIMsgCompType::ReplyToGroup : - case nsIMsgCompType::ReplyToSender : - case nsIMsgCompType::ReplyToSenderAndGroup : diff --git a/shipped-locales b/shipped-locales new file mode 100644 index 0000000..6256fe7 --- /dev/null +++ b/shipped-locales @@ -0,0 +1,45 @@ +af +ar +be +bn-BD +ca +cs +de +el +en-GB +en-US +es-AR +es-ES +et +eu +fi +fr +fy-NL +ga-IE +gl +hu +id +is +it +ja linux win32 +ja-JP-mac osx +ko +lt +nb-NO +nl +nn-NO +pa-IN +pl +pt-BR +pt-PT +ro +ru +si +sk +sq +sv-SE +ta-LK +tr +uk +vi +zh-CN diff --git a/suse-default-prefs.js b/suse-default-prefs.js index 45ce1bc..0709e71 100644 --- a/suse-default-prefs.js +++ b/suse-default-prefs.js @@ -1,5 +1,6 @@ pref("general.useragent.vendor", "SUSE"); pref("general.useragent.vendorSub", "RPM_VERSION"); +pref("app.update.enabled", false); pref("font.default", "sans-serif"); pref("font.default.x-western", "sans-serif"); pref("font.name.monospace.x-western", "monospace"); @@ -9,3 +10,4 @@ pref("print.print_edge_top", 14); // 1/100 of an inch pref("print.print_edge_left", 16); // 1/100 of an inch pref("print.print_edge_right", 16); // 1/100 of an inch pref("print.print_edge_bottom", 14); // 1/100 of an inch +pref("intl.locale.matchOS", true); diff --git a/system-extensions.patch b/system-extensions.patch deleted file mode 100644 index 3427e26..0000000 --- a/system-extensions.patch +++ /dev/null @@ -1,92 +0,0 @@ -Index: toolkit/mozapps/extensions/src/nsExtensionManager.js.in -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/extensions/src/nsExtensionManager.js.in,v -retrieving revision 1.144.2.52 -diff -u -p -6 -r1.144.2.52 nsExtensionManager.js.in ---- toolkit/mozapps/extensions/src/nsExtensionManager.js.in 29 Jun 2006 20:11:57 -0000 1.144.2.52 -+++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in 20 Jul 2006 07:23:39 -0000 -@@ -116,12 +116,13 @@ const OP_NEEDS_UPGRADE = - const OP_NEEDS_UNINSTALL = "needs-uninstall"; - const OP_NEEDS_ENABLE = "needs-enable"; - const OP_NEEDS_DISABLE = "needs-disable"; - - const KEY_APP_PROFILE = "app-profile"; - const KEY_APP_GLOBAL = "app-global"; -+const KEY_APP_SYSTEM = "app-system"; - - const CATEGORY_INSTALL_LOCATIONS = "extension-install-locations"; - - const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#"; - const PREFIX_NS_CHROME = "http://www.mozilla.org/rdf/chrome#"; - const PREFIX_ITEM_URI = "urn:mozilla:item:"; -@@ -2671,12 +2672,23 @@ function ExtensionManager() { - var priority = nsIInstallLocation.PRIORITY_APP_PROFILE; - var profileLocation = new DirectoryInstallLocation(KEY_APP_PROFILE, - appProfileExtensions, false, - priority); - InstallLocations.put(profileLocation); - -+ // Register App-System Install Location -+ try { -+ var appSystemExtensions = getDirNoCreate("DrvD", ["usr","lib","browser-extensions","thunderbird"]); -+ var priority = nsIInstallLocation.PRIORITY_APP_PROFILE - 1; -+ var systemLocation = new DirectoryInstallLocation(KEY_APP_SYSTEM, -+ appSystemExtensions, true, -+ priority); -+ InstallLocations.put(systemLocation); -+ } catch (e) {} -+ -+ - #ifdef XP_WIN - // Register HKEY_LOCAL_MACHINE Install Location - InstallLocations.put( - new WinRegInstallLocation("winreg-app-global", - nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE, - true, -@@ -3830,13 +3842,13 @@ ExtensionManager.prototype = { - // toolkit 1.8 extension datasource. - if (dsExists) - return; - - // Prepare themes for installation - // Only enumerate directories in the app-profile and app-global locations. -- var locations = [KEY_APP_PROFILE, KEY_APP_GLOBAL]; -+ var locations = [KEY_APP_PROFILE, KEY_APP_GLOBAL, KEY_APP_SYSTEM]; - for (var i = 0; i < locations.length; ++i) { - var location = InstallLocations.get(locations[i]); - if (!location.canAccess) - continue; - - var entries = location.itemLocations; -@@ -3896,13 +3908,14 @@ ExtensionManager.prototype = { - if (this._checkForFileChanges()) { - // Create a list of all items that are to be installed so we can migrate - // these items's settings to the new datasource. - var items = PendingOperations.getOperations(OP_NEEDS_INSTALL); - for (i = items.length - 1; i >= 0; --i) { - if (items[i].locationKey == KEY_APP_PROFILE || -- items[i].locationKey == KEY_APP_GLOBAL) -+ items[i].locationKey == KEY_APP_GLOBAL || -+ items[i].locationKey == KEY_APP_SYSTEM) - itemsToCheck.push(items[i].id); - } - this._finishOperations(); - } - - // If there are no items to migrate settings for return early. -@@ -4881,13 +4894,14 @@ ExtensionManager.prototype = { - var restartRequired = this.installRequiresRestart(id, ds.getItemProperty(id, "type")) - this._updateManifests(restartRequired); - return; - } - } - else if (installLocation.name == KEY_APP_PROFILE || -- installLocation.name == KEY_APP_GLOBAL) { -+ installLocation.name == KEY_APP_GLOBAL || -+ installLocation.name == KEY_APP_SYSTEM) { - // Check for a pointer file and remove it if it exists - var pointerFile = installLocation.location.clone(); - pointerFile.append(id); - if (pointerFile.exists() && !pointerFile.isDirectory()) - pointerFile.remove(false); - } diff --git a/tb-develdirs.patch b/tb-develdirs.patch index d67119d..d2c4ddc 100644 --- a/tb-develdirs.patch +++ b/tb-develdirs.patch @@ -1,30 +1,16 @@ -Index: config/autoconf.mk.in -=================================================================== -RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v -retrieving revision 3.363.2.20 -diff -u -6 -r3.363.2.20 autoconf.mk.in ---- config/autoconf.mk.in 14 Sep 2006 18:07:03 -0000 3.363.2.20 -+++ config/autoconf.mk.in 3 Dec 2007 07:00:26 -0000 -@@ -54,19 +54,19 @@ - - MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@ - +--- config/autoconf.mk.in.orig 2009-02-11 20:12:19.000000000 +0100 ++++ config/autoconf.mk.in 2009-02-11 20:13:15.000000000 +0100 +@@ -60,11 +60,11 @@ MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ -includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -+includedir = @includedir@/$(MOZ_APP_NAME) ++includedir = @includedir@/$(MOZ_APP_NAME)3 libdir = @libdir@ datadir = @datadir@ mandir = @mandir@ --idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -+idldir = @libdir@/$(MOZ_APP_NAME) +-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++idldir = @libdir@/$(MOZ_APP_NAME)3 --mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -+mozappdir = $(libdir)/$(MOZ_APP_NAME) - mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION) - mrelibdir = $(mredir)/lib - - DIST = $(DEPTH)/dist - - MOZ_CHROME_FILE_FORMAT = @MOZ_CHROME_FILE_FORMAT@ + installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) + sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) diff --git a/thunderbird-1.5.0.8-uninitalized-vars-232305.patch b/thunderbird-1.5.0.8-uninitalized-vars-232305.patch deleted file mode 100644 index eb69479..0000000 --- a/thunderbird-1.5.0.8-uninitalized-vars-232305.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- directory/c-sdk/ldap/libraries/libldap/os-ip.c 2002-04-02 09:44:45.000000000 +0200 -+++ directory/c-sdk/ldap/libraries/libldap/os-ip.c.new 2007-01-30 18:10:39.270576000 +0100 -@@ -554,6 +554,7 @@ - #endif /* GETHOSTBYNAME_BUF_T */ - - connected = 0; -+ ldhpbuf_allocd = NULL; - parse_err = ldap_x_hostlist_first( hostlist, defport, &host, &port, - &status ); - while ( !connected && LDAP_SUCCESS == parse_err && host != NULL ) { diff --git a/thunderbird-2.0.0.21-source.tar.bz2 b/thunderbird-2.0.0.21-source.tar.bz2 deleted file mode 100644 index 8b55ca1..0000000 --- a/thunderbird-2.0.0.21-source.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15bb785c5b44115b78fa72884b3d6194e15c98fc6e0e5e56ce73ace92e2eb865 -size 43339888 diff --git a/thunderbird-3.0b3-source.tar.bz2 b/thunderbird-3.0b3-source.tar.bz2 new file mode 100644 index 0000000..3d157c7 --- /dev/null +++ b/thunderbird-3.0b3-source.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e482994f70fb39566057cb8de5d0a1cc351ad6284e11f3babd386114cda2cb98 +size 58020044 diff --git a/thunderbird-no-update.patch b/thunderbird-no-update.patch new file mode 100644 index 0000000..ac787d3 --- /dev/null +++ b/thunderbird-no-update.patch @@ -0,0 +1,28 @@ +diff --git a/mail/base/content/utilityOverlay.js b/mail/base/content/utilityOverlay.js +--- a/mail/base/content/utilityOverlay.js ++++ b/mail/base/content/utilityOverlay.js +@@ -237,7 +237,13 @@ function buildHelpMenu() + // administrator or if we cannot update for some other reason. + var checkForUpdates = document.getElementById("checkForUpdates"); + var canUpdate = updates.canUpdate; ++ var prefs = Components.classes["@mozilla.org/preferences-service;1"] ++ .getService(Components.interfaces.nsIPrefBranch); ++ var updateEnabled = prefs.getBoolPref("app.update.enabled", true); + checkForUpdates.setAttribute("disabled", !canUpdate); ++ checkForUpdates.setAttribute("hidden", !canUpdate || !updateEnabled); ++ var updateSeparator = document.getElementById("menu_HelpAfterUpdatesSeparator"); ++ updateSeparator.setAttribute("hidden", !canUpdate || !updateEnabled); + if (!canUpdate) + return; + +diff --git a/mail/components/preferences/advanced.js b/mail/components/preferences/advanced.js +--- a/mail/components/preferences/advanced.js ++++ b/mail/components/preferences/advanced.js +@@ -238,6 +238,7 @@ var gAdvancedPane = { + var enableAppUpdate = document.getElementById("enableAppUpdate"); + + enableAppUpdate.disabled = !aus.canUpdate || enabledPref.locked; ++ enableAppUpdate.hidden = !aus.canUpdate || !enabledPref.value; + }, + + updateAutoItems: function () diff --git a/thunderbird-shared-nss-db.patch b/thunderbird-shared-nss-db.patch new file mode 100644 index 0000000..c6468ea --- /dev/null +++ b/thunderbird-shared-nss-db.patch @@ -0,0 +1,59 @@ +--- mail/app/Makefile.in.orig 2009-02-26 11:02:11.000000000 +0100 ++++ mail/app/Makefile.in 2009-02-26 11:04:00.000000000 +0100 +@@ -129,6 +129,7 @@ + $(EXTRA_DSO_LIBS) \ + $(APP_XPCOM_LIBS) \ + $(NSPR_LIBS) \ ++ $(NSSHELPER_LIBS) \ + $(TK_LIBS) \ + $(NULL) + +Index: config/autoconf.mk.in +=================================================================== +RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v +retrieving revision 3.464 +diff -u -p -6 -r3.464 autoconf.mk.in +--- config/autoconf.mk.in 18 Sep 2008 22:00:51 -0000 3.464 ++++ config/autoconf.mk.in 19 Nov 2008 10:12:46 -0000 +@@ -532,12 +532,16 @@ GLIB_CFLAGS = @GLIB_CFLAGS@ + GLIB_LIBS = @GLIB_LIBS@ + GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@ + LIBIDL_CFLAGS = @LIBIDL_CFLAGS@ + LIBIDL_LIBS = @LIBIDL_LIBS@ + STATIC_LIBIDL = @STATIC_LIBIDL@ + ++MOZ_ENABLE_NSSHELPER = @MOZ_ENABLE_NSSHELPER@ ++NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@ ++NSSHELPER_LIBS = @NSSHELPER_LIBS@ ++ + MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@ + + # Used for LD_LIBRARY_PATH + LIBS_PATH = @LIBS_PATH@ + + MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@ +--- configure.in.orig 2009-05-11 19:50:11.000000000 +0200 ++++ configure.in 2009-05-11 19:49:35.000000000 +0200 +@@ -7028,6 +7028,22 @@ QCMS_LIBS='$(DEPTH)/mozilla/gfx/qcms/$(L + AC_SUBST(QCMS_LIBS) + + dnl ======================================================== ++dnl Check for nss-shared-helper ++dnl ======================================================== ++ ++ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, ++ [MOZ_ENABLE_NSSHELPER=1], ++ [MOZ_ENABLE_NSSHELPER=]) ++ ++if test "$MOZ_ENABLE_NSSHELPER"; then ++ AC_DEFINE(MOZ_ENABLE_NSSHELPER) ++fi ++AC_SUBST(MOZ_ENABLE_NSSHELPER) ++AC_SUBST(NSSHELPER_CFLAGS) ++AC_SUBST(NSSHELPER_LIBS) ++ ++ ++dnl ======================================================== + dnl disable xul + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(xul,