From owner-freebsd-ports-bugs@FreeBSD.ORG Tue May 28 01:00:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BBB21A50 for ; Tue, 28 May 2013 01:00:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A4159AFF for ; Tue, 28 May 2013 01:00:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r4S1000R090805 for ; Tue, 28 May 2013 01:00:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r4S100nr090791; Tue, 28 May 2013 01:00:00 GMT (envelope-from gnats) Resent-Date: Tue, 28 May 2013 01:00:00 GMT Resent-Message-Id: <201305280100.r4S100nr090791@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Nikolai Lifanov Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id B64C488F for ; Tue, 28 May 2013 00:52:19 +0000 (UTC) (envelope-from lifanov@mail.lifanov.com) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) by mx1.freebsd.org (Postfix) with ESMTP id 88C95A28 for ; Tue, 28 May 2013 00:52:19 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 1001) id 024891A26C3; Tue, 28 May 2013 00:52:15 +0000 (UTC) Message-Id: <20130528005216.024891A26C3@mail.lifanov.com> Date: Tue, 28 May 2013 00:52:15 +0000 (UTC) From: Nikolai Lifanov To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: ports/179034: [patch] libxul fix with clang 3.3 and update to 17.0.2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Nikolai Lifanov List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 May 2013 01:00:00 -0000 >Number: 179034 >Category: ports >Synopsis: [patch] libxul fix with clang 3.3 and update to 17.0.2 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue May 28 01:00:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Nikolai Lifanov >Release: FreeBSD 9.1-RELEASE amd64 >Organization: >Environment: System: FreeBSD mail.lifanov.com 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Since import of clang 3.3 snapshot to CURRENT, www/libxul was broken on amd64. >How-To-Repeat: Be on a CURRENT system running a clang 3.3 snapshot. make -C /usr/ports/www/libxul >Fix: While attempting to fix this patch-by-patch, I realized that this is time-intensive, so I split up libxul 10.* and copied over and fixed up a version based on 17.*. The plan was to add libxul10 (or libxul100) to Mk/bsd.gecko.mk and test which ports work with what and add libxul based on mozilla dist from www/firefox-esr. With a few bulk runs (9.1-RELEASE amd64, CURRENT amd64) of the reverse dependencies I could find (exact list: audio/tuxguitar deskutils/chmsee deskutils/google-gadgets editors/morla java/icedtea-web misc/xiphos multimedia/gxine net/libproxy-mozjs science/gchemutils www/gecko-mediaplayer www/gecko-sharp20 www/helixplugin www/moonshine www/openvrml www/xpi-conkeror x11-toolkits/swt x11-toolkits/swt-devel ), 100% of the ones that work on libxul 10 also work on libxul 17, while libxul 17 can piggyback on the patches from www/firefox-esr and works great on CURRENT! I think that libxul 17 is a suitable repacement for libxul 10. Please update. --- patch.txt begins here --- Index: Makefile =================================================================== --- Makefile (revision 319277) +++ Makefile (working copy) @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= libxul -DISTVERSION= 10.0.12 +DISTVERSION= 17.0.2 CATEGORIES?= www devel MASTER_SITES= ${MASTER_SITE_MOZILLA} MASTER_SITE_SUBDIR= firefox/releases/${DISTVERSION}esr/source @@ -14,13 +14,15 @@ BUILD_DEPENDS= nspr>=4.8.8:${PORTSDIR}/devel/nspr \ nss>=3.13.6_1:${PORTSDIR}/security/nss \ sqlite3>=3.7.7.1:${PORTSDIR}/databases/sqlite3 \ + ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ unzip:${PORTSDIR}/archivers/unzip -WRKSRC= ${WRKDIR}/mozilla-esr10 +WRKSRC= ${WRKDIR}/mozilla-esr17 CONFLICTS= mozilla-[0-9]* libxul-1.9.* USE_AUTOTOOLS= autoconf213:env +USE_PYTHON_BUILD=-2.7 WANT_GNOME= yes USE_QT4= # empty QT_NONSTANDARD= yes Index: distinfo =================================================================== --- distinfo (revision 319277) +++ distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (firefox-10.0.12esr.source.tar.bz2) = 9f12cb7fd18fc51e995cd67b70a090f32fcd8dcf636be1b840281f2612d9db40 -SIZE (firefox-10.0.12esr.source.tar.bz2) = 75510903 +SHA256 (firefox-17.0.2esr.source.tar.bz2) = 92bf717b3e3933b84fd37b0e5c5026868e139be828637cfcf4acdc83f7ccd886 +SIZE (firefox-17.0.2esr.source.tar.bz2) = 90828234 Index: files/patch-alsapulse =================================================================== --- files/patch-alsapulse (revision 319277) +++ files/patch-alsapulse (working copy) @@ -1,74 +1,65 @@ ---- config/autoconf.mk.in~ -+++ config/autoconf.mk.in -@@ -568,7 +568,13 @@ MOZ_LIBNOTIFY_CFLAGS = @MOZ_LIBNOTIFY_CF - MOZ_LIBNOTIFY_LIBS = @MOZ_LIBNOTIFY_LIBS@ - MOZ_ENABLE_LIBNOTIFY = @MOZ_ENABLE_LIBNOTIFY@ - -+MOZ_ALSA = @MOZ_ALSA@ - MOZ_ALSA_LIBS = @MOZ_ALSA_LIBS@ -+MOZ_ALSA_CFLAGS = @MOZ_ALSA_CFLAGS@ -+ -+MOZ_PULSEAUDIO = @MOZ_PULSEAUDIO@ -+MOZ_PULSEAUDIO_LIBS = @MOZ_PULSEAUDIO_LIBS@ -+MOZ_PULSEAUDIO_CFLAGS = @MOZ_PULSEAUDIO_CFLAGS@ - - GLIB_CFLAGS = @GLIB_CFLAGS@ - GLIB_LIBS = @GLIB_LIBS@ ---- configure.in~ +diff --git configure.in configure.in +index 5980b76..11f5f77 100644 +--- configure.in +++ configure.in -@@ -5758,17 +5775,48 @@ dnl ==================================== +@@ -5600,13 +5600,25 @@ dnl ======================================================== dnl = Check alsa availability on Linux if using sydneyaudio dnl ======================================================== +MOZ_ARG_ENABLE_BOOL(alsa, -+[ --enable-alsa Enable Alsa support], ++[ --enable-alsa Enable Alsa support (default on Linux)], +MOZ_ALSA=1, +MOZ_ALSA= MOZ_ALSA_FORCE=$enableval) + dnl If using sydneyaudio with Linux, ensure that the alsa library is available --if test -n "$MOZ_SYDNEYAUDIO"; then -+if test -n "$MOZ_SYDNEYAUDIO" -a "$MOZ_ALSA_FORCE" != "no"; then - case "$target_os" in - linux*) -+ MOZ_ALSA=1 -+ ;; -+ esac +-if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux"; then ++if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux" -a "$MOZ_ALSA_FORCE" != "no"; then ++ MOZ_ALSA=1 +fi + +if test -n "$MOZ_ALSA"; then - PKG_CHECK_MODULES(MOZ_ALSA, alsa, , ++ AC_DEFINE(MOZ_CUBEB) + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , [echo "$MOZ_ALSA_PKG_ERRORS" AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) -- ;; -- esac fi -+AC_SUBST(MOZ_ALSA_CFLAGS) +AC_SUBST(MOZ_ALSA) + -+dnl ======================================================== -+dnl = Enable PulseAudio -+dnl ======================================================== -+ -+MOZ_ARG_ENABLE_BOOL(pulseaudio, -+[ --enable-pulseaudio Enable PulseAudio support], -+MOZ_PULSEAUDIO=1, -+MOZ_PULSEAUDIO=) -+ -+if test -n "$MOZ_PULSEAUDIO"; then -+ PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, , -+ [echo "$MOZ_PULSEAUDIO_PKG_ERRORS" -+ AC_MSG_ERROR([pulseaudio audio backend requires libpulse package])]) -+fi -+ -+AC_SUBST(MOZ_PULSEAUDIO_CFLAGS) -+AC_SUBST(MOZ_PULSEAUDIO_LIBS) -+AC_SUBST(MOZ_PULSEAUDIO) -+ dnl ======================================================== - dnl Permissions System + dnl = Enable PulseAudio dnl ======================================================== ---- media/libsydneyaudio/src/Makefile.in~ +diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in +index 5ab4dd8..c8df26f 100644 +--- media/libcubeb/src/Makefile.in ++++ media/libcubeb/src/Makefile.in +@@ -24,10 +24,6 @@ endif + + ifeq ($(OS_TARGET),Android) + # No Android implementation of libcubeb yet. +-else ifeq ($(OS_TARGET),Linux) +-CSRCS = \ +- cubeb_alsa.c \ +- $(NULL) + endif + + ifeq ($(OS_TARGET),Darwin) +@@ -42,6 +38,12 @@ CSRCS = \ + $(NULL) + endif + ++ifdef MOZ_ALSA ++CSRCS = \ ++ cubeb_alsa.c \ ++ $(NULL) ++endif ++ + ifdef MOZ_PULSEAUDIO + CSRCS = \ + cubeb_pulse.c \ +diff --git media/libsydneyaudio/src/Makefile.in media/libsydneyaudio/src/Makefile.in +index 8dda8ce..b19641d 100644 +--- media/libsydneyaudio/src/Makefile.in +++ media/libsydneyaudio/src/Makefile.in @@ -30,10 +30,6 @@ else ifeq ($(MOZ_WIDGET_TOOLKIT),android) CSRCS = \ @@ -100,20 +91,24 @@ ifeq ($(OS_ARCH),WINNT) OS_LIBS += winmm.lib endif ---- toolkit/library/libxul-config.mk~ -+++ toolkit/library/libxul-config.mk -@@ -348,10 +348,12 @@ ifdef MOZ_NATIVE_LIBVPX - EXTRA_DSO_LDOPTS += $(MOZ_LIBVPX_LIBS) - endif +diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in +index 43384e9..e46a6e3 100644 +--- toolkit/library/Makefile.in ++++ toolkit/library/Makefile.in +@@ -370,14 +370,11 @@ endif + EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) + -ifdef MOZ_SYDNEYAUDIO -ifeq ($(OS_ARCH),Linux) ++ifneq (,$(MOZ_CUBEB)$(MOZ_SYDNEYAUDIO)) +ifdef MOZ_ALSA EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) endif -+ -+ifdef MOZ_PULSEAUDIO -+EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS) +-endif +- + ifdef MOZ_PULSEAUDIO +-ifdef MOZ_CUBEB + EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS) endif - - ifdef HAVE_CLOCK_MONOTONIC + endif Index: files/patch-bug753046 =================================================================== --- files/patch-bug753046 (revision 319277) +++ files/patch-bug753046 (working copy) @@ -56,7 +56,7 @@ --- ipc/chromium/Makefile.in.orig 2012-02-16 06:40:33.000000000 +0000 +++ ipc/chromium/Makefile.in -@@ -278,6 +278,34 @@ endif +@@ -278,6 +278,33 @@ endif endif # } OS_LINUX @@ -64,7 +64,6 @@ + +CPPSRCS += \ + atomicops_internals_x86_gcc.cc \ -+ file_util_linux.cc \ + process_util_bsd.cc \ + time_posix.cc \ + $(NULL) @@ -381,37 +380,29 @@ index 9a34492..62b280c 100644 --- ipc/chromium/src/base/dir_reader_posix.h +++ ipc/chromium/src/base/dir_reader_posix.h -@@ -18,6 +18,8 @@ +@@ -18,16 +18,20 @@ + // seems worse than falling back to enumerating all file descriptors so we will + // probably never implement this on the Mac. - #if defined(OS_LINUX) +-#if defined(OS_LINUX) && !defined(OS_OPENBSD) ++#if defined(OS_LINUX) #include "base/dir_reader_linux.h" +#elif defined(OS_BSD) +#include "base/dir_reader_bsd.h" #else #include "base/dir_reader_fallback.h" #endif -@@ -26,6 +28,8 @@ - #if defined(OS_LINUX) + namespace base { + +-#if defined(OS_LINUX) && !defined(OS_OPENBSD) ++#if defined(OS_LINUX) typedef DirReaderLinux DirReaderPosix; +#elif defined(OS_BSD) +typedef DirReaderBSD DirReaderPosix; #else typedef DirReaderFallback DirReaderPosix; #endif -diff --git ipc/chromium/src/base/file_util_linux.cc ipc/chromium/src/base/file_util_linux.cc -index 171e44f..0c6dfcc 100644 ---- ipc/chromium/src/base/file_util_linux.cc -+++ ipc/chromium/src/base/file_util_linux.cc -@@ -28,7 +28,7 @@ bool GetTempDir(FilePath* path) { - } - - bool GetShmemTempDir(FilePath* path) { --#ifdef ANDROID -+#if defined(ANDROID) || defined(OS_BSD) - return GetTempDir(path); - #else - *path = FilePath("/dev/shm"); $NetBSD: patch-ipc_chromium_src_base_file__util__posix.cc,v 1.2 2012/03/06 12:34:09 ryoon Exp $ --- ipc/chromium/src/base/file_util_posix.cc.orig 2011-12-20 23:28:19.000000000 +0000 @@ -469,7 +460,7 @@ --- ipc/chromium/src/base/platform_thread_posix.cc.orig 2012-03-13 01:36:53.000000000 +0000 +++ ipc/chromium/src/base/platform_thread_posix.cc -@@ -9,9 +9,17 @@ +@@ -9,16 +9,24 @@ #if defined(OS_MACOSX) #include @@ -477,21 +468,31 @@ +#include #elif defined(OS_LINUX) #include - #include -+#elif defined(OS_DRAGONFLY) -+#include +-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) + #include +-#elif !defined(__NetBSD__) +-#include +#elif defined(OS_FREEBSD) +#include +#include -+#include #endif ++ ++#if !defined(OS_MACOSX) + #include + #endif ++#if defined(OS_BSD) && !defined(OS_NETBSD) ++#include ++#endif ++ #if defined(OS_MACOSX) -@@ -38,9 +45,20 @@ + namespace base { + void InitThreading(); +@@ -38,9 +45,20 @@ PlatformThreadId PlatformThread::CurrentId() { // into the kernel. #if defined(OS_MACOSX) return mach_thread_self(); --#elif defined (__OpenBSD__) +-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) +#elif defined(OS_NETBSD) + return _lwp_self(); +#elif defined(OS_DRAGONFLY) @@ -511,6 +512,18 @@ #elif defined(OS_LINUX) return syscall(__NR_gettid); #endif +@@ -102,9 +102,9 @@ void PlatformThread::SetName(const char* name) { + // Note that glibc also has a 'pthread_setname_np' api, but it may not be + // available everywhere and it's only benefit over using prctl directly is + // that it can set the name of threads other than the current thread. +-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) ++#if defined(OS_BSD) && !defined(OS_NETBSD) + pthread_set_name_np(pthread_self(), name); +-#elif defined(__NetBSD__) ++#elif defined(OS_NETBSD) + pthread_setname_np(pthread_self(), "%s", (void *)name); + #else + prctl(PR_SET_NAME, reinterpret_cast(name), 0, 0, 0); $NetBSD: patch-ipc_chromium_src_base_process__util.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $ --- ipc/chromium/src/base/process_util.h.orig 2011-12-21 00:28:19.000000000 +0100 @@ -552,7 +565,7 @@ --- ipc/chromium/src/base/process_util_bsd.cc.orig 2012-04-01 00:04:28.000000000 +0000 +++ ipc/chromium/src/base/process_util_bsd.cc -@@ -0,0 +1,318 @@ +@@ -0,0 +1,367 @@ +// Copyright (c) 2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -587,6 +600,20 @@ +#define HAVE_POSIX_SPAWN 1 +#endif + ++/* ++ * On platforms that are not gonk based, we fall back to an arbitrary ++ * UID. This is generally the UID for user `nobody', albeit it is not ++ * always the case. ++ */ ++ ++#if defined(OS_NETBSD) || defined(OS_OPENBSD) ++# define CHILD_UNPRIVILEGED_UID 32767 ++# define CHILD_UNPRIVILEGED_GID 32767 ++#else ++# define CHILD_UNPRIVILEGED_UID 65534 ++# define CHILD_UNPRIVILEGED_GID 65534 ++#endif ++ +#ifndef __dso_public +# ifdef __exported +# define __dso_public __exported @@ -635,6 +662,17 @@ + const environment_map& env_vars_to_set, + bool wait, ProcessHandle* process_handle, + ProcessArchitecture arch) { ++ return LaunchApp(argv, fds_to_remap, env_vars_to_set, ++ SAME_PRIVILEGES_AS_PARENT, ++ wait, process_handle); ++} ++ ++bool LaunchApp(const std::vector& argv, ++ const file_handle_mapping_vector& fds_to_remap, ++ const environment_map& env_vars_to_set, ++ ChildPrivileges privs, ++ bool wait, ProcessHandle* process_handle, ++ ProcessArchitecture arch) { + bool retval = true; + + char* argv_copy[argv.size() + 1]; @@ -749,6 +787,17 @@ + const environment_map& env_vars_to_set, + bool wait, ProcessHandle* process_handle, + ProcessArchitecture arch) { ++ return LaunchApp(argv, fds_to_remap, env_vars_to_set, ++ SAME_PRIVILEGES_AS_PARENT, ++ wait, process_handle); ++} ++ ++bool LaunchApp(const std::vector& argv, ++ const file_handle_mapping_vector& fds_to_remap, ++ const environment_map& env_vars_to_set, ++ ChildPrivileges privs, ++ bool wait, ProcessHandle* process_handle, ++ ProcessArchitecture arch) { + scoped_array argv_cstr(new char*[argv.size() + 1]); + // Illegal to allocate memory after fork and before execvp + InjectiveMultimap fd_shuffle1, fd_shuffle2; @@ -771,19 +820,32 @@ + + CloseSuperfluousFds(fd_shuffle2); + ++ for (size_t i = 0; i < argv.size(); i++) ++ argv_cstr[i] = const_cast(argv[i].c_str()); ++ argv_cstr[argv.size()] = NULL; ++ ++ if (privs == UNPRIVILEGED) { ++ if (setgid(CHILD_UNPRIVILEGED_GID) != 0) { ++ DLOG(ERROR) << "FAILED TO setgid() CHILD PROCESS, path: " << argv_cstr[0]; ++ _exit(127); ++ } ++ if (setuid(CHILD_UNPRIVILEGED_UID) != 0) { ++ DLOG(ERROR) << "FAILED TO setuid() CHILD PROCESS, path: " << argv_cstr[0]; ++ _exit(127); ++ } ++ if (chdir("/") != 0) ++ gProcessLog.print("==> could not chdir()\n"); ++ } ++ + for (environment_map::const_iterator it = env_vars_to_set.begin(); + it != env_vars_to_set.end(); ++it) { + if (setenv(it->first.c_str(), it->second.c_str(), 1/*overwrite*/)) + _exit(127); + } -+ -+ for (size_t i = 0; i < argv.size(); i++) -+ argv_cstr[i] = const_cast(argv[i].c_str()); -+ argv_cstr[argv.size()] = NULL; -+ execvp(argv_cstr[0], argv_cstr.get()); ++ execv(argv_cstr[0], argv_cstr.get()); + // if we get here, we're in serious trouble and should complain loudly + DLOG(ERROR) << "FAILED TO exec() CHILD PROCESS, path: " << argv_cstr[0]; -+ exit(127); ++ _exit(127); + } else { + gProcessLog.print("==> process %d launched child process %d\n", + GetCurrentProcId(), pid); @@ -945,57 +1007,6 @@ #else long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); -$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prcpucfg.h,v 1.2 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/third_party/nspr/prcpucfg.h.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/third_party/nspr/prcpucfg.h -@@ -34,7 +34,7 @@ - #include "base/third_party/nspr/prcpucfg_win.h" - #elif defined(__APPLE__) - #include "base/third_party/nspr/prcpucfg_mac.h" --#elif defined(__linux__) || defined(ANDROID) -+#elif defined(__linux__) || defined(ANDROID) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) - #include "base/third_party/nspr/prcpucfg_linux.h" - #elif defined(__OpenBSD__) - #include "base/third_party/nspr/prcpucfg_openbsd.h" -$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prtime.cc,v 1.1 2012/03/06 12:34:09 ryoon Exp $ - ---- ipc/chromium/src/base/third_party/nspr/prtime.cc.orig 2011-12-20 23:28:19.000000000 +0000 -+++ ipc/chromium/src/base/third_party/nspr/prtime.cc -@@ -212,7 +212,7 @@ PR_ImplodeTime(const PRExplodedTime *exp - LL_ADD(retVal, retVal, temp); - - return retVal; --#elif defined(OS_LINUX) -+#elif defined(OS_LINUX) || defined(OS_DRAGONFLY) - struct tm exp_tm = {0}; - exp_tm.tm_sec = exploded->tm_sec; - exp_tm.tm_min = exploded->tm_min; -@@ -245,6 +245,24 @@ PR_ImplodeTime(const PRExplodedTime *exp - result *= kSecondsToMicroseconds; - result += exploded->tm_usec; - return result; -+#elif defined(OS_FREEBSD) || defined(OS_NETBSD) -+ struct tm exp_tm = {0}; -+ exp_tm.tm_sec = exploded->tm_sec; -+ exp_tm.tm_min = exploded->tm_min; -+ exp_tm.tm_hour = exploded->tm_hour; -+ exp_tm.tm_mday = exploded->tm_mday; -+ exp_tm.tm_mon = exploded->tm_month; -+ exp_tm.tm_year = exploded->tm_year - 1900; -+ -+ // time_t is 64bit -+ time_t absolute_time = timegm(&exp_tm); -+ -+ PRTime result = static_cast(absolute_time); -+ result -= exploded->tm_params.tp_gmt_offset + -+ exploded->tm_params.tp_dst_offset; -+ result *= kSecondsToMicroseconds; -+ result += exploded->tm_usec; -+ return result; - #else - #error No PR_ImplodeTime implemented on your platform. - #endif diff --git ipc/chromium/src/base/time_posix.cc ipc/chromium/src/base/time_posix.cc index abf2a56..48791f6 100644 --- ipc/chromium/src/base/time_posix.cc @@ -1140,11 +1151,11 @@ nsCString path; greDir->GetNativePath(path); -# ifdef OS_LINUX --# ifdef ANDROID +-# ifdef MOZ_WIDGET_ANDROID +# if defined(OS_LINUX) || defined(OS_BSD) -+# if defined(ANDROID) || defined(OS_BSD) ++# if defined(MOZ_WIDGET_ANDROID) || defined(OS_BSD) path += "/lib"; - # endif // ANDROID + # endif // MOZ_WIDGET_ANDROID const char *ld_library_path = PR_GetEnv("LD_LIBRARY_PATH"); @@ -557,7 +557,7 @@ childArgv.push_back(pidstring); @@ -1161,7 +1172,7 @@ base::LaunchApp(childArgv, mFileMap, -#if defined(OS_LINUX) || defined(OS_MACOSX) +#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) - newEnvVars, + newEnvVars, privs, #endif false, &process, arch); diff --git ipc/glue/SharedMemorySysV.h ipc/glue/SharedMemorySysV.h Index: files/patch-bug778078 =================================================================== --- files/patch-bug778078 (revision 319277) +++ files/patch-bug778078 (working copy) @@ -1,11 +1,11 @@ --- toolkit/xre/nsAppRunner.cpp~ +++ toolkit/xre/nsAppRunner.cpp -@@ -3133,7 +3133,7 @@ XRE_main(int argc, char* argv[], const n - gQtOnlyArgv[gQtOnlyArgc] = nsnull; - #endif - #if defined(MOZ_WIDGET_GTK2) +@@ -3833,7 +3833,7 @@ XREMain::XRE_main(int argc, char* argv[] + ScopedLogging log; + + #if defined(MOZ_WIDGET_GTK) -#ifdef MOZ_MEMORY +#if defined(MOZ_MEMORY) || defined(__FreeBSD__) || defined(__NetBSD__) - // Disable the slice allocator, since jemalloc already uses similar layout - // algorithms, and using a sub-allocator tends to increase fragmentation. - // This must be done before g_thread_init() is called. + // Disable the slice allocator, since jemalloc already uses similar layout + // algorithms, and using a sub-allocator tends to increase fragmentation. + // This must be done before g_thread_init() is called. Index: files/patch-bug783463 =================================================================== --- files/patch-bug783463 (revision 319277) +++ files/patch-bug783463 (working copy) @@ -1,20 +1,14 @@ ---- widget/src/qt/nsNativeThemeQt.cpp~ -+++ widget/src/qt/nsNativeThemeQt.cpp -@@ -25,7 +25,6 @@ - #include "nsThemeConstants.h" - #include "nsIServiceManager.h" - #include "nsIDOMHTMLInputElement.h" --#include - - - #include "gfxASurface.h" ---- widget/src/qt/nsSound.cpp~ -+++ widget/src/qt/nsSound.cpp -@@ -40,6 +40,7 @@ - #include - - #include -+#include - - #include "nscore.h" - #include "plstr.h" +--- gfx/skia/Makefile.in~ ++++ gfx/skia/Makefile.in +@@ -339,10 +339,9 @@ CPPSRCS += \ + SkMMapStream.cpp \ + SkOSFile.cpp \ + $(NULL) +-ifeq (Linux,$(OS_TARGET)) ++ifneq (,$(or $(MOZ_X11),$(filter Linux,$(OS_TARGET)))) + CPPSRCS += \ + SkFontHost_linux.cpp \ +- SkFontHost_tables.cpp \ + SkTime_Unix.cpp \ + $(NULL) + endif Index: files/patch-bug788039 =================================================================== --- files/patch-bug788039 (revision 319277) +++ files/patch-bug788039 (working copy) @@ -1,16 +1,5 @@ # Bug 788039 - With no prefix search libevent via pkg-config. ---- config/autoconf.mk.in~ -+++ config/autoconf.mk.in -@@ -227,7 +227,7 @@ MOZ_HUNSPELL_CFLAGS = @MOZ_HUNSPELL_CFLA - - MOZ_NATIVE_LIBEVENT = @MOZ_NATIVE_LIBEVENT@ - MOZ_LIBEVENT_LIBS = @MOZ_LIBEVENT_LIBS@ --MOZ_LIBEVENT_INCLUDES = @MOZ_LIBEVENT_INCLUDES@ -+MOZ_LIBEVENT_CFLAGS = @MOZ_LIBEVENT_CFLAGS@ - - MOZ_NATIVE_LIBVPX = @MOZ_NATIVE_LIBVPX@ - MOZ_LIBVPX_LIBS = @MOZ_LIBVPX_LIBS@ --- configure.in~ +++ configure.in @@ -3854,7 +3854,7 @@ fi Index: files/patch-bug788108 =================================================================== --- files/patch-bug788108 (revision 319277) +++ files/patch-bug788108 (working copy) @@ -7,7 +7,7 @@ -//A trick to handle IEEE floating point exceptions on FreeBSD - E.D. -#ifdef __FreeBSD__ -#include --#ifdef __alpha__ +-#if !defined(__i386__) && !defined(__x86_64__) -static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP; -#else -static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML; Index: files/patch-bug789693 =================================================================== --- files/patch-bug789693 (revision 319277) +++ files/patch-bug789693 (working copy) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,17 +50,40 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,6 +19,7 @@ #endif #include "mozilla/Telemetry.h" + #include "mozilla/StartupTimeline.h" +#if defined(__NetBSD__) +#undef KERN_PROC @@ -44,7 +45,7 @@ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); - using namespace mozilla; + #define kPrefLastSuccess "toolkit.startup.last_success" @@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; Index: files/patch-bug791366 =================================================================== --- files/patch-bug791366 (revision 319277) +++ files/patch-bug791366 (working copy) @@ -2,17 +2,17 @@ index a9aff58..674e757 100644 --- xpcom/base/nsMemoryReporterManager.cpp +++ xpcom/base/nsMemoryReporterManager.cpp -@@ -64,7 +64,7 @@ extern void jemalloc_stats(jemalloc_stat - # endif // XP_LINUX +@@ -32,7 +32,7 @@ using namespace mozilla; + # include "jemalloc.h" #endif // MOZ_MEMORY --#if defined(XP_LINUX) || defined(XP_MACOSX) +-#if defined(XP_LINUX) || defined(XP_MACOSX) || defined(SOLARIS) +#ifdef XP_UNIX #include #include -@@ -122,6 +122,78 @@ static PRInt64 GetResident() - return GetProcSelfStatmField(1); +@@ -95,6 +95,81 @@ static nsresult GetResident(PRInt64 *n) + return GetProcSelfStatmField(1, n); } +#elif defined(__DragonFly__) || defined(__FreeBSD__) \ @@ -69,56 +69,27 @@ + return NS_OK; +} + -+static PRInt64 GetVsize() ++#define HAVE_VSIZE_AND_RESIDENT_REPORTERS 1 ++static nsresult GetVsize(PRInt64 *n) +{ + KINFO_PROC proc; -+ if (NS_SUCCEEDED(GetKinfoProcSelf(&proc))) -+ return KP_SIZE(proc); ++ nsresult rv = GetKinfoProcSelf(&proc); ++ if (NS_SUCCEEDED(rv)) ++ *n = KP_SIZE(proc); + -+ return -1; ++ return rv; +} + -+static PRInt64 GetResident() ++static nsresult GetResident(PRInt64 *n) +{ + KINFO_PROC proc; -+ if (NS_SUCCEEDED(GetKinfoProcSelf(&proc))) -+ return KP_RSS(proc); ++ nsresult rv = GetKinfoProcSelf(&proc); ++ if (NS_SUCCEEDED(rv)) ++ *n = KP_RSS(proc); + -+ return -1; ++ return rv; +} + - #elif defined(XP_MACOSX) + #elif defined(SOLARIS) - #include -@@ -224,7 +297,7 @@ static PRInt64 GetResident() - - #endif - --#if defined(XP_LINUX) || defined(XP_MACOSX) || defined(XP_WIN) -+#if defined(XP_UNIX) || defined(XP_WIN) - NS_MEMORY_REPORTER_IMPLEMENT(Vsize, - "vsize", - KIND_OTHER, -@@ -239,7 +312,7 @@ NS_MEMORY_REPORTER_IMPLEMENT(Vsize, - "measure of the memory resources used by the process.") - #endif - --#if defined(XP_LINUX) || defined(XP_MACOSX) -+#if defined(XP_UNIX) - NS_MEMORY_REPORTER_IMPLEMENT(PageFaultsSoft, - "page-faults-soft", - KIND_OTHER, -@@ -457,11 +530,11 @@ nsMemoryReporterManager::Init() - REGISTER(HeapUnallocated); - REGISTER(Resident); - --#if defined(XP_LINUX) || defined(XP_MACOSX) || defined(XP_WIN) -+#if defined(XP_UNIX) || defined(XP_WIN) - REGISTER(Vsize); - #endif - --#if defined(XP_LINUX) || defined(XP_MACOSX) -+#if defined(XP_UNIX) - REGISTER(PageFaultsSoft); - REGISTER(PageFaultsHard); - #endif + #include Index: files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp =================================================================== --- files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp (revision 319277) +++ files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp (working copy) @@ -7,7 +7,7 @@ + // load system hunspell dictionaries + nsIFile* hunDir; + NS_NewNativeLocalFile(NS_LITERAL_CSTRING("%%LOCALBASE%%/share/hunspell"), -+ true, (nsILocalFile**)&hunDir); ++ true, &hunDir); + LoadDictionariesFromDir(hunDir); + // find dictionaries from extensions requiring restart --- patch.txt ends here --- >Release-Note: >Audit-Trail: >Unformatted: