From 05c21b9963d5e0d621ee761deba331a15800aeb1 Mon Sep 17 00:00:00 2001 From: Alan Eldridge 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 v1.2.3