From 0d5a4ddc64a18bb1ce7a2b7e5d74365bd164fa2a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sun, 23 Mar 2014 19:11:02 +0100 Subject: [PATCH] - upstream fixes for firefox 27+ - rel 3 --- mozilla-addon-gnome-keyring.spec | 4 +- xulrunner-27.patch | 129 +++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 xulrunner-27.patch diff --git a/mozilla-addon-gnome-keyring.spec b/mozilla-addon-gnome-keyring.spec index 8f2dfac..9400f9b 100644 --- a/mozilla-addon-gnome-keyring.spec +++ b/mozilla-addon-gnome-keyring.spec @@ -2,11 +2,12 @@ Summary: Extension that enables Gnome Keyring integration Name: mozilla-addon-%{extension} Version: 0.6.9 -Release: 2 +Release: 3 License: MPL v1.1 or GPL v2+ or LGPL v2.1+ Group: X11/Applications/Networking Source0: https://github.com/infinity0/mozilla-gnome-keyring/archive/%{version}/%{name}-%{version}.tar.gz # Source0-md5: eedd226a6f866ae3091ca79b3bdeabad +Patch0: xulrunner-27.patch URL: https://github.com/infinity0/mozilla-gnome-keyring/ BuildRequires: libgnome-keyring-devel >= 3.4.0 BuildRequires: libstdc++-devel @@ -40,6 +41,7 @@ password after Firefox or Thunderbird has been started. %prep %setup -qn mozilla-gnome-keyring-%{version} +%patch0 -p1 %{__sed} -i -e '/^CXXFLAGS/ s/$/ $(OPTFLAGS)/' Makefile diff --git a/xulrunner-27.patch b/xulrunner-27.patch new file mode 100644 index 0000000..cf95fab --- /dev/null +++ b/xulrunner-27.patch @@ -0,0 +1,129 @@ +From b637542e490b98b94ddc2dce6919970703f46932 Mon Sep 17 00:00:00 2001 +From: Ximin Luo +Date: Sun, 23 Mar 2014 03:07:41 +0000 +Subject: [PATCH] add some more conditional compilation stuff to make things + work for firefox 27+ + +--- + GnomeKeyring.cpp | 8 ++++++++ + Makefile | 4 +++- + config.sh | 30 +++++++++++++++++++++--------- + xpcom_abi.cpp | 4 ++++ + 4 files changed, 36 insertions(+), 10 deletions(-) + +diff --git a/GnomeKeyring.cpp b/GnomeKeyring.cpp +index ac089ed..92711c8 100644 +--- a/GnomeKeyring.cpp ++++ b/GnomeKeyring.cpp +@@ -37,6 +37,10 @@ + * + * ***** END LICENSE BLOCK ***** */ + ++#if HAVE_MOZ_BUG_956507 ++#include "mozilla/Char16.h" ++#endif ++ + #include "GnomeKeyring.h" + #include "nsMemory.h" + #include "nsILoginInfo.h" +@@ -614,8 +618,12 @@ NS_IMETHODIMP GnomeKeyring::Init() + return ret; + } + ++#if HAVE_NSILMS_INITWITHFILE_2 + NS_IMETHODIMP GnomeKeyring::InitWithFile(nsIFile *aInputFile, + nsIFile *aOutputFile) ++#else ++NS_IMETHODIMP GnomeKeyring::InitWithFile(nsIFile *aInputFile) ++#endif + { + // TODO + return Init(); +diff --git a/Makefile b/Makefile +index cecfce7..5c52024 100644 +--- a/Makefile ++++ b/Makefile +@@ -62,6 +62,8 @@ else + endif + + SHELL_EXPORT := $(foreach v,CXX XUL_CFLAGS XUL_LDFLAGS XPCOM_ABI_FLAGS GNOME_CFLAGS GNOME_LDFLAGS CXXFLAGS LDFLAGS,$(v)="$($(v))") ++CXX_MACRO_EXPORT := $(foreach v,HAVE_NSILMS_GETISLOGGEDIN HAVE_NSILMS_INITWITHFILE_2 HAVE_MOZ_BUG_956507 HAVE_MOZGLUE,-D$(v)="$($(v))") ++ + config.vars: config.sh GnomeKeyring.h xpcom_abi.cpp Makefile + $(SHELL_EXPORT) sh $^ > $@ + +@@ -97,7 +99,7 @@ xpi/chrome/skin/hicolor/seahorse.svg: seahorse.svg + cp -a $< $@ + + $(TARGET): GnomeKeyring.cpp GnomeKeyring.h +- $(CXX) $< -o $@ -shared -DHAVE_NSILMS_GETISLOGGEDIN=$(HAVE_NSILMS_GETISLOGGEDIN) \ ++ $(CXX) $< -o $@ -shared $(CXX_MACRO_EXPORT) \ + $(XUL_CFLAGS) $(XUL_LDFLAGS) $(GNOME_CFLAGS) $(GNOME_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) + chmod +x $@ + +diff --git a/config.sh b/config.sh +index bf50a68..4b32da2 100755 +--- a/config.sh ++++ b/config.sh +@@ -13,8 +13,20 @@ XUL_VERSION=$(echo '#include "mozilla-config.h"'| + XUL_VER_MIN=$(echo $XUL_VERSION | sed -r -e 's/([^.]+\.[^.]+).*/\1/g') + XUL_VER_MAX=$(echo $XUL_VERSION | sed -rn -e 's/([^.]+).*/\1.*/gp') + +-HAVE_NSILMS_GETISLOGGEDIN=$({ echo '#include "'"$SRC_GNOME_KEYRING_H"'"'; echo 'NS_IMETHODIMP GnomeKeyring::GetIsLoggedIn(bool *aIsLoggedIn) { return NS_OK; }'; } | +- $CXX $XUL_CFLAGS $GNOME_CFLAGS $CXXFLAGS -x c++ -w -c -o /dev/null - && echo 1 || echo 0) ++HAVE_NSILMS_GETISLOGGEDIN=$({ cat </dev/null && echo 1 || echo 0) ++#include "$SRC_GNOME_KEYRING_H" ++NS_IMETHODIMP GnomeKeyring::GetIsLoggedIn(bool *aIsLoggedIn) { return NS_OK; } ++EOF ++ ++HAVE_NSILMS_INITWITHFILE_2=$({ cat </dev/null && echo 1 || echo 0) ++#include "$SRC_GNOME_KEYRING_H" ++NS_IMETHODIMP GnomeKeyring::InitWithFile(nsIFile *aInputFile, nsIFile *aOutputFile) { return NS_OK; } ++EOF ++ ++HAVE_MOZ_BUG_956507=$({ cat </dev/null && echo 0 || echo 1) ++#include ++#include "mozilla/Char16.h" ++EOF + + HAVE_MOZGLUE=$($CXX $XUL_CFLAGS $XUL_LDFLAGS $XPCOM_ABI_FLAGS $CXXFLAGS $LDFLAGS -lmozglue -shared -o /dev/null && echo 1 || echo 0) + +@@ -22,13 +34,13 @@ if [ $HAVE_MOZGLUE = 1 ]; then + XPCOM_ABI_FLAGS="$XPCOM_ABI_FLAGS -Wl,-whole-archive -lmozglue -Wl,-no-whole-archive" + fi + DST_XPCOM_ABI="$(dirname $0)/xpcom_abi" +-$CXX $SRC_XPCOM_ABI_CPP -o "$DST_XPCOM_ABI" $XUL_CFLAGS $XUL_LDFLAGS $XPCOM_ABI_FLAGS $CXXFLAGS $LDFLAGS ++$CXX $SRC_XPCOM_ABI_CPP -DHAVE_MOZ_BUG_956507="$HAVE_MOZ_BUG_956507" -o "$DST_XPCOM_ABI" \ ++ $XUL_CFLAGS $XUL_LDFLAGS $XPCOM_ABI_FLAGS $CXXFLAGS $LDFLAGS + PLATFORM="$("$DST_XPCOM_ABI")" + +-echo export XUL_VERSION="$XUL_VERSION" +-echo export XUL_VER_MIN="$XUL_VER_MIN" +-echo export XUL_VER_MAX="$XUL_VER_MAX" +-echo export HAVE_NSILMS_GETISLOGGEDIN="$HAVE_NSILMS_GETISLOGGEDIN" +-echo export HAVE_MOZGLUE="$HAVE_MOZGLUE" +-echo export PLATFORM="$PLATFORM" ++for var in XUL_VERSION XUL_VER_MIN XUL_VER_MAX PLATFORM \ ++ HAVE_NSILMS_GETISLOGGEDIN HAVE_NSILMS_INITWITHFILE_2 HAVE_MOZ_BUG_956507 HAVE_MOZGLUE; do ++ eval val=\$$var ++ echo export $var=$val ++done; + echo export HAVE_CONFIG_VARS=1 +diff --git a/xpcom_abi.cpp b/xpcom_abi.cpp +index c6d0202..bf8d91b 100644 +--- a/xpcom_abi.cpp ++++ b/xpcom_abi.cpp +@@ -1,6 +1,10 @@ + #include + #include + ++#if HAVE_MOZ_BUG_956507 ++#include "mozilla/Char16.h" ++#endif ++ + #include "nsIXULRuntime.h" + #include "nsServiceManagerUtils.h" + #include "nsStringAPI.h" +-- +1.8.5.5 + -- 2.44.0