From 2b8cc802aef4e1ad85dafa7f405464636dd948bf Mon Sep 17 00:00:00 2001
From: alane
Date: Wed, 18 Dec 2002 05:02:34 +0000
Subject: Patch by Greg Rumple & JMC to hopefully fix end-of-download crash.
I'll submit this fix back to the Mozilla team, since it will affect Mozilla
1.3a as well.
Approved by: kris before departure (one of these days this update will end)
---
www/firefox/Makefile | 17 +++-
.../files/patch-nsprpub-pr-src-misc-prtime.c | 18 ++++
www/firefox/files/phoenix.rb | 95 ++++++++++++++++++++++
www/firefox/pkg-message | 12 +++
4 files changed, 139 insertions(+), 3 deletions(-)
create mode 100644 www/firefox/files/patch-nsprpub-pr-src-misc-prtime.c
create mode 100644 www/firefox/files/phoenix.rb
(limited to 'www/firefox')
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index d5218695397e..61ed0cc12a1e 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -9,7 +9,7 @@
PORTNAME= phoenix
PORTVERSION= 0.5
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= www # pita
MASTER_SITES= ${MASTER_SITE_LOCAL} ${BSD_WEBDIR}
MASTER_SITE_SUBDIR= alane
@@ -102,6 +102,8 @@ CFLAGS+= ${PTHREAD_CFLAGS}
LDFLAGS+= -L${X11BASE}/lib
LIBS+= ${PTHREAD_LIBS}
+EXTRA_SCRIPTS= phoenix.rb
+
pre-extract::
@${ECHO_MSG}
@${ECHO_MSG} "Extracting source (this takes a while) ..."
@@ -130,6 +132,11 @@ post-build:
pre-install:
${RM} -fr ${LOCAL_PREFIX}
+install-extra:
+.for i in ${EXTRA_SCRIPTS}
+ ${INSTALL_SCRIPT} ${FILESDIR}/${i} ${PREFIX}/bin
+.endfor # i in ${EXTRA_SCRIPTS}
+
link-bins:
${RM} -f ${PREFIX}/bin/phoenix
${LN} -s ${LOCAL_PREFIX}/bin/phoenix \
@@ -138,6 +145,7 @@ link-bins:
${LN} -s ${LOCAL_PREFIX}/bin/mozilla-config \
${PREFIX}/bin/phoenix-config
+# not used because of undefined symbol errors
link-java:
-${RM} -f ${PLUGINSDIR}/libjavaplugin_oji.so
-${LN} -sf \
@@ -152,6 +160,9 @@ cons-plist:
-${RM} -f ${PLIST}
${ECHO_CMD} bin/phoenix >>${PLIST}
${ECHO_CMD} bin/phoenix-config >>${PLIST}
+.for i in ${EXTRA_SCRIPTS}
+ ${ECHO_CMD} bin/${i} >>${PLIST}
+.endfor # i in ${EXTRA_SCRIPTS}
cd ${PREFIX}; \
${FIND} ${LOCAL_SUBDIR} ! -type d | ${SORT} >>${PLIST}; \
${FIND} ${LOCAL_SUBDIR} -type d -empty | ${SORT} \
@@ -163,7 +174,7 @@ cons-plist:
${FIND} ${LOCAL_SUBDIR} -type d ! -empty | ${SORT} -r \
| ${SED} -e "s:^:@dirrm :" >> ${PLIST}
-.PHONY: link-bins link-java cleanup-install cons-plist
+.PHONY: install-extra link-bins link-java cleanup-install cons-plist
.include
@@ -173,6 +184,6 @@ cons-plist:
# dependency without trashing the actual code of the generate-plist
# target. This is a limitation of the make(1) program itself.
#
-generate-plist: link-bins link-java cleanup-install cons-plist
+generate-plist: install-extra link-bins cleanup-install cons-plist
#EOF
diff --git a/www/firefox/files/patch-nsprpub-pr-src-misc-prtime.c b/www/firefox/files/patch-nsprpub-pr-src-misc-prtime.c
new file mode 100644
index 000000000000..6b65ef14fbec
--- /dev/null
+++ b/www/firefox/files/patch-nsprpub-pr-src-misc-prtime.c
@@ -0,0 +1,18 @@
+--- nsprpub/pr/src/misc/prtime.c.orig Sun Mar 31 12:17:46 2002
++++ nsprpub/pr/src/misc/prtime.c Tue Dec 17 21:30:30 2002
+@@ -1666,12 +1666,13 @@
+ * values for these two fields.
+ */
+
+-#if defined(SUNOS4) || (__GLIBC__ >= 2) || defined(XP_BEOS)
++#if defined(__FreeBSD__)|| defined(SUNOS4) \
++ || (__GLIBC__ >= 2) || defined(XP_BEOS)
+ if (mktime(&a) == -1) {
+ PR_snprintf(buf, buflen, "can't get timezone");
+ return 0;
+ }
+-#endif
++#endif /* check for __FreeBSD__, too */
+
+ return strftime(buf, buflen, fmt, &a);
+ }
diff --git a/www/firefox/files/phoenix.rb b/www/firefox/files/phoenix.rb
new file mode 100644
index 000000000000..fdbe4c594297
--- /dev/null
+++ b/www/firefox/files/phoenix.rb
@@ -0,0 +1,95 @@
+#!/usr/bin/env ruby
+=begin -*-mode: ruby-*-
+
+ MoZiLLa.in
+
+ Copyright (c) 2002, Alan Eldridge
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the copyright owner nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ $Id: MoZiLLa.in,v 1.18 2002/12/18 02:40:58 alane Exp $
+
+ 2002-12-16 Alan Eldridge
+
+=end
+
+X11BIN = "/usr/X11R6/bin"
+NAME = File::basename($0, ".rb")
+APP_PATH = File::join(X11BIN, NAME)
+
+if !File::executable?(APP_PATH)
+ raise "File '#{APP_PATH}' not found. Giving up."
+elsif ($display = ENV["DISPLAY"]) == nil
+ raise "Environment variable DISPLAY not found. Giving up."
+end
+
+if ARGV.size > 0
+ if ARGV[0] == "--debug"
+ ARGV.shift
+ else
+ $stdin.reopen(File::open("/dev/null", "r"))
+ $stdout.reopen(File::open("/dev/null", "w"))
+ $stderr.reopen(File::open("/dev/null", "w"))
+ end
+end
+
+if ARGV.size < 1
+ $url = nil
+else
+ $url = ARGV.pop
+ $url.sub!(/^ghelp:/, "file:")
+end
+
+IO::popen("xwininfo -display #{$display} -root -tree") {
+ |io|
+ if NAME != "phoenix"
+ $windows = io.grep(%r<"Mozilla"\s+"navigator:\s*browser">)
+ else
+ $windows = io.grep(%r)
+ end
+}
+
+if $windows.size > 0
+ $id = $windows.map {
+ |s| s.strip.split.first
+ }.sort.first
+ $args = [ "-id", $id, "-raise", "-remote" ]
+ $args.push($url ? "\"openURL(#{$url},new-window)\"" :
+ "\"xfeDoCommand(openBrowser)\"")
+else
+ $args = ARGV
+ $args.push("\"#{$url}\"") if $url
+end
+
+fork {
+ exec(([APP_PATH] + $args).join(" "))
+}
+exit!
+
+#EOF
diff --git a/www/firefox/pkg-message b/www/firefox/pkg-message
index 29cb864c176f..a7e9356be887 100644
--- a/www/firefox/pkg-message
+++ b/www/firefox/pkg-message
@@ -55,6 +55,18 @@ The distfile is on my distfiles dir this time, so I have mirrored it on my
html page until the distfiles dir gets mirrored in 24-48 hours.
I had to disable Xinerama since it was breaking the build.
+
+0.5_4
+Patch to hopefully fix crash when formatting time string at end of download.
+Thanks to Greg Rumple and Joe Marcus Clarke for the fantastic work debugging
+this one.
+
+Added /usr/X11R6/bin/phoenix.rb. If you have ruby installed, you can run
+this instead of 'phoenix' and it takes care of the 'profile in use' errors
+by automatically using an existing phoenix if one is running. I didn't put
+a dependency because I don't want to require ruby + ruby-shim to run the
+browser.
+
-- AlanE
======================================================================
--
cgit