diff options
21 files changed, 796 insertions, 121 deletions
diff --git a/www/firefox3-devel/Makefile b/www/firefox3-devel/Makefile index 0d7198c4243b..2566ef9f76ae 100644 --- a/www/firefox3-devel/Makefile +++ b/www/firefox3-devel/Makefile @@ -6,19 +6,20 @@ # PORTNAME= firefox -DISTVERSION= 3.5rc3 +DISTVERSION= 3.6b4 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= ${MASTER_SITE_MOZILLA} MASTER_SITE_SUBDIR= ${PORTNAME}/releases/${DISTVERSION}/source -DISTNAME= ${PORTNAME}-${DISTVERSION}-source +DISTNAME= ${PORTNAME}-${DISTVERSION}.source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.7:${PORTSDIR}/devel/nspr +BUILD_DEPENDS= nspr>=4.8:${PORTSDIR}/devel/nspr +LIB_DEPENDS= notify.1:${PORTSDIR}/devel/libnotify -USE_AUTOTOOLS= autoconf:213:run +USE_AUTOTOOLS= autoconf:213 LATEST_LINK= firefox3-devel USE_GECKO= gecko MOZ_PKGCONFIG_FILES= # empty @@ -28,8 +29,7 @@ MOZILLA_SUFX= 3 MOZILLA= ${PORTNAME}${MOZILLA_SUFX} MOZ_TOOLKIT= cairo-gtk2 GECKO_PLIST_PRE_DIRS= lib/${MOZILLA}/bin lib/${MOZILLA}/idl \ - lib/${MOZILLA}/include lib/${MOZILLA}/lib \ - lib/${MOZILLA}/sdk/idl lib/${MOZILLA}/sdk/include + lib/${MOZILLA}/include lib/${MOZILLA}/lib MAKE_JOBS_SAFE= yes WANT_GNOME= yes @@ -39,10 +39,9 @@ EXTRA_CFLAGS= -O2 HAS_CONFIGURE= yes USE_BZIP2= yes USE_GMAKE= yes +MAKE_JOBS_SAFE= yes NO_MOZPKGINSTALL=yes -CONFLICTS= firefox-3.0.* - -IGNORE= please use www/firefox35 +CONFLICTS= firefox-3.[0,5].* FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png @@ -51,7 +50,7 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ --enable-svg --enable-svg-renderer=cairo \ --enable-application=browser \ --enable-official-branding \ - --enable-canvas --enable-libxul + --enable-canvas --enable-libxul --disable-necko-wifi SYSTEM_PREFS= ${FAKEDIR}/lib/${MOZILLA}/defaults/pref/firefox.js @@ -61,10 +60,6 @@ OPTIONS= DBUS "Enable D-BUS support" on \ .include <bsd.port.pre.mk> -.if ${ARCH} == "sparc64" -BROKEN= Does not compile on sparc64 -.endif - .if ${OSVERSION} < 700000 LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio EXTRA_PATCHES= ${FILESDIR}/releng6_pulseaudio @@ -72,7 +67,7 @@ EXTRA_PATCHES= ${FILESDIR}/releng6_pulseaudio EXTRA_PATCHES= ${FILESDIR}/libsydney_oss .endif -WRKSRC:= ${WRKSRC}-1.9.1 +WRKSRC:= ${WRKSRC}-1.9.2 GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE} @@ -90,7 +85,6 @@ LIB_DEPENDS+= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib .endif post-extract:: - @(cd ${WRKSRC} && ${AUTOCONF}) @${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \ -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \ <${FILESDIR}/firefox.desktop.in >${WRKDIR}/${MOZILLA}.desktop @@ -109,6 +103,10 @@ post-patch: s|/usr/X11R6|${LOCALBASE}|g' \ ${WRKSRC}/js/src/configure +pre-configure: + (cd ${WRKSRC} && ${AUTOCONF}) + (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) + port-pre-install: # ${SED} -e 's|1.9a7|0|' ${WRKSRC}/dist/bin/application.ini ${FAKEDIR}/lib ${ECHO_CMD} 'share/applications/${MOZILLA}.desktop' >> ${PLISTF} @@ -126,5 +124,6 @@ post-install: ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${PREFIX}/share/applications/ ${MKDIR} ${PREFIX}/lib/${MOZILLA}/chrome/icons/default ${LN} -sf ${FIREFOX_ICON_SRC} ${PREFIX}/share/pixmaps/${FIREFOX_ICON} + @${CAT} ${PKGMESSAGE} .include <bsd.port.post.mk> diff --git a/www/firefox3-devel/distinfo b/www/firefox3-devel/distinfo index 7c48dfc80e66..234be9080e57 100644 --- a/www/firefox3-devel/distinfo +++ b/www/firefox3-devel/distinfo @@ -1,3 +1,3 @@ -MD5 (firefox-3.5rc3-source.tar.bz2) = f8a9146a0a3dcc18fb22b72f4e8a9e94 -SHA256 (firefox-3.5rc3-source.tar.bz2) = e338e63ee88aaef2b048bb94f2014336801e9f61d7eda773d915d681a3e77994 -SIZE (firefox-3.5rc3-source.tar.bz2) = 46596784 +MD5 (firefox-3.6b4.source.tar.bz2) = 770d0a33e4e2ceb52017c59d98c4d28c +SHA256 (firefox-3.6b4.source.tar.bz2) = b4d371cc4abf3df36c8cb9738b35ad8d3c4ff57d31c00085a29141fff4c407d7 +SIZE (firefox-3.6b4.source.tar.bz2) = 48323922 diff --git a/www/firefox3-devel/files/libsydney_oss b/www/firefox3-devel/files/libsydney_oss index 7dfcc33cde9f..dcef3abdab96 100644 --- a/www/firefox3-devel/files/libsydney_oss +++ b/www/firefox3-devel/files/libsydney_oss @@ -1,16 +1,15 @@ ---- media/libsydneyaudio/src/Makefile.in_orgi 2009-04-10 12:12:45.000000000 +0200 -+++ media/libsydneyaudio/src/Makefile.in 2009-04-10 12:13:12.000000000 +0200 +--- media/libsydneyaudio/src/Makefile.in.orig 2009-08-11 16:28:21.000000000 +0200 ++++ media/libsydneyaudio/src/Makefile.in 2009-08-11 16:29:08.000000000 +0200 @@ -45,6 +45,12 @@ - LIBRARY_NAME = sydneyaudio + LIBRARY_NAME = sydneyaudio FORCE_STATIC_LIB= 1 - + +ifeq ($(OS_ARCH),FreeBSD) -+CSRCS = \ -+ sydney_audio_oss.c \ -+ $(NULL) ++CSRCS = \ ++ sydney_audio_oss.c \ ++ $(NULL) +endif + ifeq ($(OS_ARCH),Linux) - CSRCS = \ - sydney_audio_alsa.c \ - + CSRCS = \ + sydney_audio_alsa.c \ diff --git a/www/firefox3-devel/files/patch-configure.in b/www/firefox3-devel/files/patch-configure.in new file mode 100644 index 000000000000..5ba21ea8bc53 --- /dev/null +++ b/www/firefox3-devel/files/patch-configure.in @@ -0,0 +1,11 @@ +--- configure.in.orig 2009-10-03 20:24:11.000000000 +0200 ++++ configure.in 2009-10-03 20:24:43.000000000 +0200 +@@ -1352,7 +1352,7 @@ + CPU_ARCH=sparc + ;; + +-x86_64 | ia64) ++amd64 | x86_64 | ia64) + CPU_ARCH="$OS_TEST" + ;; + diff --git a/www/firefox3-devel/files/patch-content-xslt-public-txDouble.h b/www/firefox3-devel/files/patch-content-xslt-public-txDouble.h new file mode 100644 index 000000000000..cd4acfc534bf --- /dev/null +++ b/www/firefox3-devel/files/patch-content-xslt-public-txDouble.h @@ -0,0 +1,11 @@ +--- content/xslt/public/txDouble.h.orig 2009-08-16 21:46:27.000000000 +0200 ++++ content/xslt/public/txDouble.h 2009-08-16 21:49:53.000000000 +0200 +@@ -43,7 +43,7 @@ + //A trick to handle IEEE floating point exceptions on FreeBSD - E.D. + #ifdef __FreeBSD__ + #include <ieeefp.h> +-#ifdef __alpha__ ++#if !defined(__amd64__) && !defined(__i386__) + 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; diff --git a/www/firefox3-devel/files/patch-gfx__thebes__src__gfxPangoFonts.cpp b/www/firefox3-devel/files/patch-gfx__thebes__src__gfxPangoFonts.cpp new file mode 100644 index 000000000000..1ccbb9c56f09 --- /dev/null +++ b/www/firefox3-devel/files/patch-gfx__thebes__src__gfxPangoFonts.cpp @@ -0,0 +1,599 @@ +--- ./gfx/thebes/src/gfxPangoFonts.cpp.orig 2009-12-09 10:17:48.872850998 +0100 ++++ ./gfx/thebes/src/gfxPangoFonts.cpp 2009-12-09 10:22:14.745686512 +0100 +@@ -56,8 +56,6 @@ + #include "gfxContext.h" + #include "gfxPlatformGtk.h" + #include "gfxPangoFonts.h" +-#include "gfxFT2FontBase.h" +-#include "gfxFT2Utils.h" + #include "gfxFontconfigUtils.h" + #include "gfxUserFontSet.h" + +@@ -128,6 +126,21 @@ + #define FC_FULLNAME "fullname" + #endif + ++// Rounding and truncation functions for a FreeType fixed point number ++// (FT26Dot6) stored in a 32bit integer with high 26 bits for the integer ++// part and low 6 bits for the fractional part. ++#define FLOAT_FROM_26_6(x) ((x) / 64.0) ++#define FLOAT_FROM_16_16(x) ((x) / 65536.0) ++#define ROUND_26_6_TO_INT(x) ((x) >= 0 ? ((32 + (x)) >> 6) \ ++ : -((32 - (x)) >> 6)) ++// aScale is intended for a 16.16 x/y_scale of an FT_Size_Metrics ++static inline FT_Long ++ScaleRoundDesignUnits(FT_Short aDesignMetric, FT_Fixed aScale) ++{ ++ FT_Long fixed26dot6 = FT_MulFix(aDesignMetric, aScale); ++ return ROUND_26_6_TO_INT(fixed26dot6); ++} ++ + static PRFuncPtr + FindFunctionSymbol(const char *name) + { +@@ -506,19 +519,84 @@ + * cairo_scaled_font created from an FcPattern. + */ + +-class gfxFcFont : public gfxFT2FontBase { ++class gfxFcFont : public gfxFont { + public: + virtual ~gfxFcFont (); + static already_AddRefed<gfxFcFont> GetOrMakeFont(FcPattern *aPattern); + ++ virtual const gfxFont::Metrics& GetMetrics(); ++ ++ virtual nsString GetUniqueName(); ++ ++ // Get the glyphID of a space ++ virtual PRUint32 GetSpaceGlyph() { ++ NS_ASSERTION(GetStyle()->size != 0, ++ "forgot to short-circuit a text run with zero-sized font?"); ++ GetMetrics(); ++ return mSpaceGlyph; ++ } ++ ++ cairo_scaled_font_t *CairoScaledFont() { return mCairoFont; } ++ PRUint32 GetGlyph(PRUint32 aCharCode); ++ void GetGlyphExtents(PRUint32 aGlyph, cairo_text_extents_t* aExtents); ++ + protected: ++ cairo_scaled_font_t *mCairoFont; ++ ++ PRUint32 mSpaceGlyph; ++ Metrics mMetrics; ++ PRPackedBool mHasMetrics; ++ + gfxFcFont(cairo_scaled_font_t *aCairoFont, + gfxFontEntry *aFontEntry, const gfxFontStyle *aFontStyle); + ++ virtual PRBool SetupCairoFont(gfxContext *aContext); ++ + // key for locating a gfxFcFont corresponding to a cairo_scaled_font + static cairo_user_data_key_t sGfxFontKey; + }; + ++class LockedFTFace { ++public: ++ LockedFTFace(gfxFcFont *aFont) ++ : mGfxFont(aFont), ++ mFace(cairo_ft_scaled_font_lock_face(aFont->CairoScaledFont())) ++ { ++ } ++ ++ ~LockedFTFace() ++ { ++ if (mFace) { ++ cairo_ft_scaled_font_unlock_face(mGfxFont->CairoScaledFont()); ++ } ++ } ++ ++ FT_Face get() ++ { ++ return mFace; ++ } ++ ++ /** ++ * Get the glyph id for a Unicode character representable by a single ++ * glyph, or return zero if there is no such glyph. This does no caching, ++ * so you probably want gfxFcFont::GetGlyph. ++ */ ++ PRUint32 GetGlyph(PRUint32 aCharCode); ++ ++ void GetMetrics(gfxFont::Metrics* aMetrics, PRUint32* aSpaceGlyph); ++ ++private: ++ /** ++ * Get extents for a simple character representable by a single glyph. ++ * The return value is the glyph id of that glyph or zero if no such glyph ++ * exists. aExtents is only set when this returns a non-zero glyph id. ++ */ ++ PRUint32 GetCharExtents(char aChar, cairo_text_extents_t* aExtents); ++ ++ nsRefPtr<gfxFcFont> mGfxFont; ++ FT_Face mFace; ++}; ++ + /** + * gfxPangoFcFont: + * +@@ -2029,14 +2107,18 @@ + gfxFcFont::gfxFcFont(cairo_scaled_font_t *aCairoFont, + gfxFontEntry *aFontEntry, + const gfxFontStyle *aFontStyle) +- : gfxFT2FontBase(aCairoFont, aFontEntry, aFontStyle) ++ : gfxFont(aFontEntry, aFontStyle), ++ mCairoFont(aCairoFont), ++ mHasMetrics(PR_FALSE) + { +- cairo_scaled_font_set_user_data(mScaledFont, &sGfxFontKey, this, NULL); ++ cairo_scaled_font_reference(mCairoFont); ++ cairo_scaled_font_set_user_data(mCairoFont, &sGfxFontKey, this, NULL); + } + + gfxFcFont::~gfxFcFont() + { +- cairo_scaled_font_set_user_data(mScaledFont, &sGfxFontKey, NULL, NULL); ++ cairo_scaled_font_set_user_data(mCairoFont, &sGfxFontKey, NULL, NULL); ++ cairo_scaled_font_destroy(mCairoFont); + } + + /* static */ void +@@ -2129,7 +2211,7 @@ + if (!font) + return NULL; + +- gfxFT2LockedFace face(font); ++ LockedFTFace face(font); + if (!face.get()) + return NULL; + +@@ -2320,6 +2402,400 @@ + return fontSet; + } + ++PRUint32 ++gfxFcFont::GetGlyph(PRUint32 aCharCode) ++{ ++ // FcFreeTypeCharIndex needs to lock the FT_Face and can end up searching ++ // through all the postscript glyph names in the font. Therefore use a ++ // lightweight cache, which is stored on the cairo_font_face_t. ++ ++ cairo_font_face_t *face = ++ cairo_scaled_font_get_font_face(CairoScaledFont()); ++ ++ if (cairo_font_face_status(face) != CAIRO_STATUS_SUCCESS) ++ return 0; ++ ++ // This cache algorithm and size is based on what is done in ++ // cairo_scaled_font_text_to_glyphs and pango_fc_font_real_get_glyph. I ++ // think the concept is that adjacent characters probably come mostly from ++ // one Unicode block. This assumption is probably not so valid with ++ // scripts with large character sets as used for East Asian languages. ++ ++ struct CmapCacheSlot { ++ PRUint32 mCharCode; ++ PRUint32 mGlyphIndex; ++ }; ++ const PRUint32 kNumSlots = 256; ++ static cairo_user_data_key_t sCmapCacheKey; ++ ++ CmapCacheSlot *slots = static_cast<CmapCacheSlot*> ++ (cairo_font_face_get_user_data(face, &sCmapCacheKey)); ++ ++ if (!slots) { ++ // cairo's caches can keep some cairo_font_faces alive past our last ++ // destroy, so the destroy function (free) for the cache must be ++ // callable from cairo without any assumptions about what other ++ // modules have not been shutdown. ++ slots = static_cast<CmapCacheSlot*> ++ (calloc(kNumSlots, sizeof(CmapCacheSlot))); ++ if (!slots) ++ return 0; ++ ++ cairo_status_t status = ++ cairo_font_face_set_user_data(face, &sCmapCacheKey, slots, free); ++ if (status != CAIRO_STATUS_SUCCESS) { // OOM ++ free(slots); ++ return 0; ++ } ++ ++ // Invalidate slot 0 by setting its char code to something that would ++ // never end up in slot 0. All other slots are already invalid ++ // because they have mCharCode = 0 and a glyph for char code 0 will ++ // always be in the slot 0. ++ slots[0].mCharCode = 1; ++ } ++ ++ CmapCacheSlot *slot = &slots[aCharCode % kNumSlots]; ++ if (slot->mCharCode != aCharCode) { ++ slot->mCharCode = aCharCode; ++ slot->mGlyphIndex = LockedFTFace(this).GetGlyph(aCharCode); ++ } ++ ++ return slot->mGlyphIndex; ++} ++ ++void ++gfxFcFont::GetGlyphExtents(PRUint32 aGlyph, cairo_text_extents_t* aExtents) ++{ ++ NS_PRECONDITION(aExtents != NULL, "aExtents must not be NULL"); ++ ++ cairo_glyph_t glyphs[1]; ++ glyphs[0].index = aGlyph; ++ glyphs[0].x = 0.0; ++ glyphs[0].y = 0.0; ++ // cairo does some caching for us here but perhaps a small gain could be ++ // made by caching more. It is usually only the advance that is needed, ++ // so caching only the advance could allow many requests to be cached with ++ // little memory use. Ideally this cache would be merged with ++ // gfxGlyphExtents. ++ cairo_scaled_font_glyph_extents(CairoScaledFont(), glyphs, 1, aExtents); ++} ++ ++PRUint32 ++LockedFTFace::GetGlyph(PRUint32 aCharCode) ++{ ++ if (NS_UNLIKELY(!mFace)) ++ return 0; ++ ++ // FcFreeTypeCharIndex will search starting from the most recently ++ // selected charmap. This can cause non-determistic behavior when more ++ // than one charmap supports a character but with different glyphs, as ++ // with older versions of MS Gothic, for example. Always prefer a Unicode ++ // charmap, if there is one. (FcFreeTypeCharIndex usually does the ++ // appropriate Unicode conversion, but some fonts have non-Roman glyphs ++ // for FT_ENCODING_APPLE_ROMAN characters.) ++ if (!mFace->charmap || mFace->charmap->encoding != FT_ENCODING_UNICODE) { ++ FT_Select_Charmap(mFace, FT_ENCODING_UNICODE); ++ } ++ ++ return FcFreeTypeCharIndex(mFace, aCharCode); ++} ++ ++PRUint32 ++LockedFTFace::GetCharExtents(char aChar, ++ cairo_text_extents_t* aExtents) ++{ ++ NS_PRECONDITION(aExtents != NULL, "aExtents must not be NULL"); ++ ++ if (!mFace) ++ return 0; ++ ++ FT_UInt gid = mGfxFont->GetGlyph(aChar); ++ if (gid) { ++ mGfxFont->GetGlyphExtents(gid, aExtents); ++ } ++ ++ return gid; ++} ++ ++// Snap a line to pixels while keeping the center and size of the line as ++// close to the original position as possible. ++// ++// Pango does similar snapping for underline and strikethrough when fonts are ++// hinted, but nsCSSRendering::GetTextDecorationRectInternal always snaps the ++// top and size of lines. Optimizing the distance between the line and ++// baseline is probably good for the gap between text and underline, but ++// optimizing the center of the line is better for positioning strikethough. ++static void ++SnapLineToPixels(gfxFloat& aOffset, gfxFloat& aSize) ++{ ++ gfxFloat snappedSize = PR_MAX(NS_floor(aSize + 0.5), 1.0); ++ // Correct offset for change in size ++ gfxFloat offset = aOffset - 0.5 * (aSize - snappedSize); ++ // Snap offset ++ aOffset = NS_floor(offset + 0.5); ++ aSize = snappedSize; ++} ++ ++void ++LockedFTFace::GetMetrics(gfxFont::Metrics* aMetrics, PRUint32* aSpaceGlyph) ++{ ++ NS_PRECONDITION(aMetrics != NULL, "aMetrics must not be NULL"); ++ NS_PRECONDITION(aSpaceGlyph != NULL, "aSpaceGlyph must not be NULL"); ++ ++ if (NS_UNLIKELY(!mFace)) { ++ // No face. This unfortunate situation might happen if the font ++ // file is (re)moved at the wrong time. ++ aMetrics->emHeight = mGfxFont->GetStyle()->size; ++ aMetrics->emAscent = 0.8 * aMetrics->emHeight; ++ aMetrics->emDescent = 0.2 * aMetrics->emHeight; ++ aMetrics->maxAscent = aMetrics->emAscent; ++ aMetrics->maxDescent = aMetrics->maxDescent; ++ aMetrics->maxHeight = aMetrics->emHeight; ++ aMetrics->internalLeading = 0.0; ++ aMetrics->externalLeading = 0.2 * aMetrics->emHeight; ++ aSpaceGlyph = 0; ++ aMetrics->spaceWidth = 0.5 * aMetrics->emHeight; ++ aMetrics->maxAdvance = aMetrics->spaceWidth; ++ aMetrics->aveCharWidth = aMetrics->spaceWidth; ++ aMetrics->zeroOrAveCharWidth = aMetrics->spaceWidth; ++ aMetrics->xHeight = 0.5 * aMetrics->emHeight; ++ aMetrics->underlineSize = aMetrics->emHeight / 14.0; ++ aMetrics->underlineOffset = -aMetrics->underlineSize; ++ aMetrics->strikeoutOffset = 0.25 * aMetrics->emHeight; ++ aMetrics->strikeoutSize = aMetrics->underlineSize; ++ aMetrics->superscriptOffset = aMetrics->xHeight; ++ aMetrics->subscriptOffset = aMetrics->xHeight; ++ ++ return; ++ } ++ ++ const FT_Size_Metrics& ftMetrics = mFace->size->metrics; ++ ++ gfxFloat emHeight; ++ // Scale for vertical design metric conversion: pixels per design unit. ++ gfxFloat yScale; ++ if (FT_IS_SCALABLE(mFace)) { ++ // Prefer FT_Size_Metrics::x_scale to x_ppem as x_ppem does not ++ // have subpixel accuracy. ++ // ++ // FT_Size_Metrics::y_scale is in 16.16 fixed point format. Its ++ // (fractional) value is a factor that converts vertical metrics from ++ // design units to units of 1/64 pixels, so that the result may be ++ // interpreted as pixels in 26.6 fixed point format. ++ yScale = FLOAT_FROM_26_6(FLOAT_FROM_16_16(ftMetrics.y_scale)); ++ emHeight = mFace->units_per_EM * yScale; ++ } else { // Not scalable. ++ // FT_Size_Metrics doc says x_scale is "only relevant for scalable ++ // font formats". ++ gfxFloat emUnit = mFace->units_per_EM; ++ emHeight = ftMetrics.y_ppem; ++ yScale = emHeight / emUnit; ++ } ++ ++ TT_OS2 *os2 = ++ static_cast<TT_OS2*>(FT_Get_Sfnt_Table(mFace, ft_sfnt_os2)); ++ ++ aMetrics->maxAscent = FLOAT_FROM_26_6(ftMetrics.ascender); ++ aMetrics->maxDescent = -FLOAT_FROM_26_6(ftMetrics.descender); ++ aMetrics->maxAdvance = FLOAT_FROM_26_6(ftMetrics.max_advance); ++ ++ gfxFloat lineHeight; ++ if (os2 && os2->sTypoAscender) { ++ aMetrics->emAscent = os2->sTypoAscender * yScale; ++ aMetrics->emDescent = -os2->sTypoDescender * yScale; ++ FT_Short typoHeight = ++ os2->sTypoAscender - os2->sTypoDescender + os2->sTypoLineGap; ++ lineHeight = typoHeight * yScale; ++ ++ // maxAscent/maxDescent get used for frame heights, and some fonts ++ // don't have the HHEA table ascent/descent set (bug 279032). ++ if (aMetrics->emAscent > aMetrics->maxAscent) ++ aMetrics->maxAscent = aMetrics->emAscent; ++ if (aMetrics->emDescent > aMetrics->maxDescent) ++ aMetrics->maxDescent = aMetrics->emDescent; ++ } else { ++ aMetrics->emAscent = aMetrics->maxAscent; ++ aMetrics->emDescent = aMetrics->maxDescent; ++ lineHeight = FLOAT_FROM_26_6(ftMetrics.height); ++ } ++ ++ cairo_text_extents_t extents; ++ *aSpaceGlyph = GetCharExtents(' ', &extents); ++ if (*aSpaceGlyph) { ++ aMetrics->spaceWidth = extents.x_advance; ++ } else { ++ aMetrics->spaceWidth = aMetrics->maxAdvance; // guess ++ } ++ ++ aMetrics->zeroOrAveCharWidth = 0.0; ++ if (GetCharExtents('0', &extents)) { ++ aMetrics->zeroOrAveCharWidth = extents.x_advance; ++ } ++ ++ // Prefering a measured x over sxHeight because sxHeight doesn't consider ++ // hinting, but maybe the x extents are not quite right in some fancy ++ // script fonts. CSS 2.1 suggests possibly using the height of an "o", ++ // which would have a more consistent glyph across fonts. ++ if (GetCharExtents('x', &extents) && extents.y_bearing < 0.0) { ++ aMetrics->xHeight = -extents.y_bearing; ++ aMetrics->aveCharWidth = extents.x_advance; ++ } else { ++ if (os2 && os2->sxHeight) { ++ aMetrics->xHeight = os2->sxHeight * yScale; ++ } else { ++ // CSS 2.1, section 4.3.2 Lengths: "In the cases where it is ++ // impossible or impractical to determine the x-height, a value of ++ // 0.5em should be used." ++ aMetrics->xHeight = 0.5 * emHeight; ++ } ++ aMetrics->aveCharWidth = 0.0; // updated below ++ } ++ // aveCharWidth is used for the width of text input elements so be ++ // liberal rather than conservative in the estimate. ++ if (os2 && os2->xAvgCharWidth) { ++ // Round to pixels as this is compared with maxAdvance to guess ++ // whether this is a fixed width font. ++ gfxFloat avgCharWidth = ++ ScaleRoundDesignUnits(os2->xAvgCharWidth, ftMetrics.x_scale); ++ aMetrics->aveCharWidth = ++ PR_MAX(aMetrics->aveCharWidth, avgCharWidth); ++ } ++ aMetrics->aveCharWidth = ++ PR_MAX(aMetrics->aveCharWidth, aMetrics->zeroOrAveCharWidth); ++ if (aMetrics->aveCharWidth == 0.0) { ++ aMetrics->aveCharWidth = aMetrics->spaceWidth; ++ } ++ if (aMetrics->zeroOrAveCharWidth == 0.0) { ++ aMetrics->zeroOrAveCharWidth = aMetrics->aveCharWidth; ++ } ++ // Apparently hinting can mean that max_advance is not always accurate. ++ aMetrics->maxAdvance = ++ PR_MAX(aMetrics->maxAdvance, aMetrics->aveCharWidth); ++ ++ // gfxFont::Metrics::underlineOffset is the position of the top of the ++ // underline. ++ // ++ // FT_FaceRec documentation describes underline_position as "the ++ // center of the underlining stem". This was the original definition ++ // of the PostScript metric, but in the PostScript table of OpenType ++ // fonts the metric is "the top of the underline" ++ // (http://www.microsoft.com/typography/otspec/post.htm), and FreeType ++ // (up to version 2.3.7) doesn't make any adjustment. ++ // ++ // Therefore get the underline position directly from the table ++ // ourselves when this table exists. Use FreeType's metrics for ++ // other (including older PostScript) fonts. ++ if (mFace->underline_position && mFace->underline_thickness) { ++ aMetrics->underlineSize = mFace->underline_thickness * yScale; ++ TT_Postscript *post = static_cast<TT_Postscript*> ++ (FT_Get_Sfnt_Table(mFace, ft_sfnt_post)); ++ if (post && post->underlinePosition) { ++ aMetrics->underlineOffset = post->underlinePosition * yScale; ++ } else { ++ aMetrics->underlineOffset = mFace->underline_position * yScale ++ + 0.5 * aMetrics->underlineSize; ++ } ++ } else { // No underline info. ++ // Imitate Pango. ++ aMetrics->underlineSize = emHeight / 14.0; ++ aMetrics->underlineOffset = -aMetrics->underlineSize; ++ } ++ ++ if (os2 && os2->yStrikeoutSize && os2->yStrikeoutPosition) { ++ aMetrics->strikeoutSize = os2->yStrikeoutSize * yScale; ++ aMetrics->strikeoutOffset = os2->yStrikeoutPosition * yScale; ++ } else { // No strikeout info. ++ aMetrics->strikeoutSize = aMetrics->underlineSize; ++ // Use OpenType spec's suggested position for Roman font. ++ aMetrics->strikeoutOffset = emHeight * 409.0 / 2048.0 ++ + 0.5 * aMetrics->strikeoutSize; ++ } ++ SnapLineToPixels(aMetrics->strikeoutOffset, aMetrics->strikeoutSize); ++ ++ if (os2 && os2->ySuperscriptYOffset) { ++ gfxFloat val = ScaleRoundDesignUnits(os2->ySuperscriptYOffset, ++ ftMetrics.y_scale); ++ aMetrics->superscriptOffset = PR_MAX(1.0, val); ++ } else { ++ aMetrics->superscriptOffset = aMetrics->xHeight; ++ } ++ ++ if (os2 && os2->ySubscriptYOffset) { ++ gfxFloat val = ScaleRoundDesignUnits(os2->ySubscriptYOffset, ++ ftMetrics.y_scale); ++ // some fonts have the incorrect sign. ++ val = fabs(val); ++ aMetrics->subscriptOffset = PR_MAX(1.0, val); ++ } else { ++ aMetrics->subscriptOffset = aMetrics->xHeight; ++ } ++ ++ aMetrics->maxHeight = aMetrics->maxAscent + aMetrics->maxDescent; ++ ++ // Make the line height an integer number of pixels so that lines will be ++ // equally spaced (rather than just being snapped to pixels, some up and ++ // some down). Layout calculates line height from the emHeight + ++ // internalLeading + externalLeading, but first each of these is rounded ++ // to layout units. To ensure that the result is an integer number of ++ // pixels, round each of the components to pixels. ++ aMetrics->emHeight = NS_floor(emHeight + 0.5); ++ ++ // maxHeight will normally be an integer, but round anyway in case ++ // FreeType is configured differently. ++ aMetrics->internalLeading = ++ NS_floor(aMetrics->maxHeight - aMetrics->emHeight + 0.5); ++ ++ // Text input boxes currently don't work well with lineHeight ++ // significantly less than maxHeight (with Verdana, for example). ++ lineHeight = NS_floor(PR_MAX(lineHeight, aMetrics->maxHeight) + 0.5); ++ aMetrics->externalLeading = ++ lineHeight - aMetrics->internalLeading - aMetrics->emHeight; ++ ++ // Ensure emAscent + emDescent == emHeight ++ gfxFloat sum = aMetrics->emAscent + aMetrics->emDescent; ++ aMetrics->emAscent = sum > 0.0 ? ++ aMetrics->emAscent * aMetrics->emHeight / sum : 0.0; ++ aMetrics->emDescent = aMetrics->emHeight - aMetrics->emAscent; ++} ++ ++const gfxFont::Metrics& ++gfxFcFont::GetMetrics() ++{ ++ if (mHasMetrics) ++ return mMetrics; ++ ++ if (NS_UNLIKELY(GetStyle()->size <= 0.0)) { ++ new(&mMetrics) gfxFont::Metrics(); // zero initialize ++ mSpaceGlyph = 0; ++ } else { ++ LockedFTFace(this).GetMetrics(&mMetrics, &mSpaceGlyph); ++ } ++ ++ SanitizeMetrics(&mMetrics, PR_FALSE); ++ ++#if 0 ++ // printf("font name: %s %f\n", NS_ConvertUTF16toUTF8(GetName()).get(), GetStyle()->size); ++ // printf ("pango font %s\n", pango_font_description_to_string (pango_font_describe (font))); ++ ++ fprintf (stderr, "Font: %s\n", NS_ConvertUTF16toUTF8(GetName()).get()); ++ fprintf (stderr, " emHeight: %f emAscent: %f emDescent: %f\n", mMetrics.emHeight, mMetrics.emAscent, mMetrics.emDescent); ++ fprintf (stderr, " maxAscent: %f maxDescent: %f\n", mMetrics.maxAscent, mMetrics.maxDescent); ++ fprintf (stderr, " internalLeading: %f externalLeading: %f\n", mMetrics.externalLeading, mMetrics.internalLeading); ++ fprintf (stderr, " spaceWidth: %f aveCharWidth: %f xHeight: %f\n", mMetrics.spaceWidth, mMetrics.aveCharWidth, mMetrics.xHeight); ++ fprintf (stderr, " uOff: %f uSize: %f stOff: %f stSize: %f suOff: %f suSize: %f\n", mMetrics.underlineOffset, mMetrics.underlineSize, mMetrics.strikeoutOffset, mMetrics.strikeoutSize, mMetrics.superscriptOffset, mMetrics.subscriptOffset); ++#endif ++ ++ mHasMetrics = PR_TRUE; ++ return mMetrics; ++} ++ ++nsString ++gfxFcFont::GetUniqueName() ++{ ++ return GetName(); ++} ++ + /** + ** gfxTextRun + * +@@ -2637,6 +3113,47 @@ + return scaledFont; + } + ++PRBool ++gfxFcFont::SetupCairoFont(gfxContext *aContext) ++{ ++ cairo_t *cr = aContext->GetCairo(); ++ ++ // The scaled font ctm is not relevant right here because ++ // cairo_set_scaled_font does not record the scaled font itself, but ++ // merely the font_face, font_matrix, font_options. The scaled_font used ++ // for the target can be different from the scaled_font passed to ++ // cairo_set_scaled_font. (Unfortunately we have measured only for an ++ // identity ctm.) ++ cairo_scaled_font_t *cairoFont = CairoScaledFont(); ++ ++ if (cairo_scaled_font_status(cairoFont) != CAIRO_STATUS_SUCCESS) { ++ // Don't cairo_set_scaled_font as that would propagate the error to ++ // the cairo_t, precluding any further drawing. ++ return PR_FALSE; ++ } ++ // Thoughts on which font_options to set on the context: ++ // ++ // cairoFont has been created for screen rendering. ++ // ++ // When the context is being used for screen rendering, we should set ++ // font_options such that the same scaled_font gets used (when the ctm is ++ // the same). The use of explicit font_options recorded in ++ // CreateScaledFont ensures that this will happen. ++ // ++ // XXXkt: For pdf and ps surfaces, I don't know whether it's better to ++ // remove surface-specific options, or try to draw with the same ++ // scaled_font that was used to measure. As the same font_face is being ++ // used, its font_options will often override some values anyway (unless ++ // perhaps we remove those from the FcPattern at face creation). ++ // ++ // I can't see any significant difference in printing, irrespective of ++ // what is set here. It's too late to change things here as measuring has ++ // already taken place. We should really be measuring with a different ++ // font for pdf and ps surfaces (bug 403513). ++ cairo_set_scaled_font(cr, cairoFont); ++ return PR_TRUE; ++} ++ + static void + SetupClusterBoundaries(gfxTextRun* aTextRun, const gchar *aUTF8, PRUint32 aUTF8Length, + PRUint32 aUTF16Offset, PangoAnalysis *aAnalysis) diff --git a/www/firefox3-devel/files/patch-js-src-config_config.mk b/www/firefox3-devel/files/patch-js-src-config_config.mk index 4120407a7789..13bf2e58a794 100644 --- a/www/firefox3-devel/files/patch-js-src-config_config.mk +++ b/www/firefox3-devel/files/patch-js-src-config_config.mk @@ -1,11 +1,10 @@ ---- js/src/config/config.mk.orig 2009-04-28 11:14:01.760089946 +0000 -+++ js/src/config/config.mk 2009-04-28 11:14:30.311093216 +0000 -@@ -490,7 +490,7 @@ - INCLUDES = $(LOCAL_INCLUDES) $(REQ_INCLUDES) $(REQ_INCLUDES_SDK) -I$(PUBLIC) $(OS_INCLUDES) - - ifndef MOZILLA_INTERNAL_API --INCLUDES += -I$(LIBXUL_DIST)/sdk/include -+INCLUDES += -I$(LIBXUL_DIST)/sdk/include -I%%LOCALBASE%%/include - endif - - include $(topsrcdir)/config/static-checking-config.mk +--- js/src/config/config.mk.orig 2009-08-07 00:49:23.000000000 +0200 ++++ js/src/config/config.mk 2009-08-09 20:50:05.000000000 +0200 +@@ -506,6 +506,7 @@ + -I$(srcdir) \ + -I. \ + -I$(DIST)/include -I$(DIST)/include/nsprpub \ ++ -I%%LOCALBASE%%/include \ + $(if $(LIBXUL_SDK),-I$(LIBXUL_SDK)/include -I$(LIBXUL_SDK)/include/nsprpub) \ + $(OS_INCLUDES) \ + $(NULL) diff --git a/www/firefox3-devel/files/patch-js-src-configure.in b/www/firefox3-devel/files/patch-js-src-configure.in new file mode 100644 index 000000000000..75f017bc4d68 --- /dev/null +++ b/www/firefox3-devel/files/patch-js-src-configure.in @@ -0,0 +1,13 @@ +--- js/src/configure.in.orig 2009-09-21 00:26:58.000000000 +0200 ++++ js/src/configure.in 2009-10-08 07:00:27.000000000 +0200 +@@ -2456,10 +2456,6 @@ + ENABLE_JIT=1 + NANOJIT_ARCH=ARM + ;; +-sparc*-*) +- ENABLE_JIT=1 +- NANOJIT_ARCH=Sparc +- ;; + esac + + MOZ_ARG_DISABLE_BOOL(jit, diff --git a/www/firefox3-devel/files/patch-js-src-jslock.cpp b/www/firefox3-devel/files/patch-js-src-jslock.cpp new file mode 100644 index 000000000000..7aea14d0ebaf --- /dev/null +++ b/www/firefox3-devel/files/patch-js-src-jslock.cpp @@ -0,0 +1,18 @@ +--- js/src/jslock.cpp.orig 2009-10-07 20:15:38.000000000 +0200 ++++ js/src/jslock.cpp 2009-10-07 21:36:14.000000000 +0200 +@@ -160,8 +160,13 @@ + unsigned int res; + + __asm__ __volatile__ ( +- "stbar\n" +- "cas [%1],%2,%3\n" ++ "membar #StoreLoad | #LoadLoad\n" ++# if defined (__sparc64__) ++ "casx [%1],%2,%3\n" ++# else ++ "cas [%1],%2,%3\n" /* 32-bit version */ ++# endif ++ "membar #StoreLoad | #LoadLoad\n" + "cmp %2,%3\n" + "be,a 1f\n" + "mov 1,%0\n" diff --git a/www/firefox3-devel/files/patch-js_src_jsnum.cpp b/www/firefox3-devel/files/patch-js_src_jsnum.cpp index b4024468f8e9..cf29e7c9a869 100644 --- a/www/firefox3-devel/files/patch-js_src_jsnum.cpp +++ b/www/firefox3-devel/files/patch-js_src_jsnum.cpp @@ -1,16 +1,16 @@ ---- js/src/jsnum.cpp.orig 2009-04-28 11:19:57.888134991 +0000 -+++ js/src/jsnum.cpp 2009-04-28 11:21:35.786147448 +0000 -@@ -45,6 +45,9 @@ - #if defined(XP_WIN) || defined(XP_OS2) - #include <float.h> - #endif +--- js/src/jsnum.cpp.orig 2009-10-14 18:03:30.000000000 +0200 ++++ js/src/jsnum.cpp 2009-10-15 21:49:44.000000000 +0200 +@@ -43,6 +43,9 @@ + /* + * JS number type and wrapper class. + */ +#if defined(__FreeBSD__) +#include <sys/param.h> +#endif #ifdef XP_OS2 #define _PC_53 PC_53 #define _MCW_EM MCW_EM -@@ -659,8 +662,16 @@ +@@ -691,8 +694,16 @@ #else diff --git a/www/firefox3-devel/files/patch-layout_generic_Makefile.in b/www/firefox3-devel/files/patch-layout_generic_Makefile.in index da29a9e18759..e39242751a1f 100644 --- a/www/firefox3-devel/files/patch-layout_generic_Makefile.in +++ b/www/firefox3-devel/files/patch-layout_generic_Makefile.in @@ -1,9 +1,9 @@ ---- layout/generic/Makefile.in.orig 2009-04-28 11:16:16.059107000 +0000 -+++ layout/generic/Makefile.in 2009-04-28 11:16:41.171110062 +0000 -@@ -188,9 +188,10 @@ +--- layout/generic/Makefile.in.orig 2009-08-07 00:49:41.000000000 +0200 ++++ layout/generic/Makefile.in 2009-08-09 20:54:53.000000000 +0200 +@@ -187,9 +187,10 @@ -I$(srcdir)/../../content/base/src \ -I$(srcdir)/../../content/html/content/src \ - -I$(srcdir)/../../dom/src/base \ + -I$(srcdir)/../../dom/base \ - $(MOZ_CAIRO_CFLAGS) \ $(NULL) diff --git a/www/firefox3-devel/files/patch-media_liboggplay_audio_sydney_audio.h b/www/firefox3-devel/files/patch-media-libsydneyaudio-include-sydney_audio.h index d8e318e9bcb2..d8e318e9bcb2 100644 --- a/www/firefox3-devel/files/patch-media_liboggplay_audio_sydney_audio.h +++ b/www/firefox3-devel/files/patch-media-libsydneyaudio-include-sydney_audio.h diff --git a/www/firefox3-devel/files/patch-media_liboggplay_src_liboggplay_std_semaphore.h b/www/firefox3-devel/files/patch-media_liboggplay_src_liboggplay_std_semaphore.h deleted file mode 100644 index 3c597ca853b3..000000000000 --- a/www/firefox3-devel/files/patch-media_liboggplay_src_liboggplay_std_semaphore.h +++ /dev/null @@ -1,11 +0,0 @@ ---- media/liboggplay/src/liboggplay/std_semaphore.h.orig 2009-04-24 01:46:48.000000000 +0000 -+++ media/liboggplay/src/liboggplay/std_semaphore.h 2009-04-28 08:39:25.739957779 +0000 -@@ -74,7 +74,7 @@ - * @retval non-zero on error - */ - --#if defined(linux) || defined(SOLARIS) -+#if defined(linux) || defined(SOLARIS) || defined(__FreeBSD__) - #include <semaphore.h> - #define SEM_CREATE(p,s) sem_init(&(p), 1, s) - #define SEM_SIGNAL(p) sem_post(&(p)) diff --git a/www/firefox3-devel/files/patch-media_liboggz_include_oggz_oggz_off_t_generated.h b/www/firefox3-devel/files/patch-media_liboggz_include_oggz_oggz_off_t_generated.h index b4ceef6139a0..c4d71e225e21 100644 --- a/www/firefox3-devel/files/patch-media_liboggz_include_oggz_oggz_off_t_generated.h +++ b/www/firefox3-devel/files/patch-media_liboggz_include_oggz_oggz_off_t_generated.h @@ -1,11 +1,11 @@ ---- media/liboggz/include/oggz/oggz_off_t_generated.h.orig 2009-04-24 01:46:48.000000000 +0000 -+++ media/liboggz/include/oggz/oggz_off_t_generated.h 2009-04-28 08:44:02.369576627 +0000 +--- media/liboggz/include/oggz/oggz_off_t_generated.h.orig 2009-08-07 00:49:53.000000000 +0200 ++++ media/liboggz/include/oggz/oggz_off_t_generated.h 2009-08-09 20:57:55.000000000 +0200 @@ -59,7 +59,7 @@ #include <sys/types.h> --#if defined(__APPLE__) || defined(SOLARIS) -+#if defined(__APPLE__) || defined(SOLARIS) || defined (__FreeBSD__) +-#if defined(__APPLE__) || defined(SOLARIS) || defined(OS2) ++#if defined(__APPLE__) || defined(SOLARIS) || defined(OS2) || defined (__FreeBSD__) typedef off_t oggz_off_t; #else typedef loff_t oggz_off_t; diff --git a/www/firefox3-devel/files/patch-security-coreconf-FreeBSD.mk b/www/firefox3-devel/files/patch-security-coreconf-FreeBSD.mk index c4ed8e5ba533..4d28f35649c1 100644 --- a/www/firefox3-devel/files/patch-security-coreconf-FreeBSD.mk +++ b/www/firefox3-devel/files/patch-security-coreconf-FreeBSD.mk @@ -1,19 +1,31 @@ ---- security/coreconf/FreeBSD.mk.orig 2008-07-06 00:10:00.000000000 -0500 -+++ security/coreconf/FreeBSD.mk 2008-07-06 00:12:34.000000000 -0500 -@@ -45,8 +45,12 @@ +--- security/coreconf/FreeBSD.mk.orig 2009-11-09 01:34:19.000000000 +0100 ++++ security/coreconf/FreeBSD.mk 2009-11-11 18:15:55.000000000 +0100 +@@ -45,8 +45,24 @@ ifeq ($(OS_TEST),alpha) CPU_ARCH = alpha else +ifeq ($(OS_TEST),amd64) +CPU_ARCH = amd64 ++else ++ifeq ($(OS_TEST),ia64) ++CPU_ARCH = ia64 ++else ++ifeq ($(OS_TEST),powerpc) ++CPU_ARCH = powerpc ++else ++ifeq ($(OS_TEST),sparc64) ++CPU_ARCH = sparc64 +else CPU_ARCH = x86 endif +endif ++endif ++endif ++endif OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -@@ -73,7 +77,7 @@ +@@ -73,7 +89,7 @@ DLL_SUFFIX = so.1.0 endif @@ -22,9 +34,9 @@ ifdef MAPFILE MKSHLIB += -Wl,--version-script,$(MAPFILE) endif -@@ -82,4 +86,4 @@ +@@ -82,4 +98,4 @@ G++INCLUDES = -I/usr/include/g++ -INCLUDES += -I/usr/X11R6/include -+#INCLUDES += -I/usr/X11R6/include ++#INCLUDES += -I/usr/local/include diff --git a/www/firefox3-devel/files/patch-toolkit_mozapps_installer_packager.mk b/www/firefox3-devel/files/patch-toolkit_mozapps_installer_packager.mk deleted file mode 100644 index 635c3c79c13c..000000000000 --- a/www/firefox3-devel/files/patch-toolkit_mozapps_installer_packager.mk +++ /dev/null @@ -1,11 +0,0 @@ ---- toolkit/mozapps/installer/packager.mk.orig 2007-09-26 13:45:01.000000000 -0400 -+++ toolkit/mozapps/installer/packager.mk 2007-09-26 13:47:29.000000000 -0400 -@@ -409,7 +409,7 @@ - (cd $(DIST)/sdk/include && tar $(TAR_CREATE_FLAGS) - .) | \ - (cd $(DESTDIR)$(includedir)/stable && tar -xf -) - # The dist/include has module subdirectories that we need to flatten -- find $(DIST)/include -xtype f -exec $(SYSINSTALL) $(IFLAGS1) {} $(DESTDIR)$(includedir)/unstable \; -+ find $(DIST)/include -type f -o -type l -exec $(SYSINSTALL) $(IFLAGS1) {} $(DESTDIR)$(includedir)/unstable \; - # IDL directory is stable (dist/sdk/idl) and unstable (dist/idl) - $(NSINSTALL) -D $(DESTDIR)$(idldir)/stable - $(NSINSTALL) -D $(DESTDIR)$(idldir)/unstable diff --git a/www/firefox3-devel/files/patch-toolkit_mozapps_update_src_updater_updater.cpp b/www/firefox3-devel/files/patch-toolkit_mozapps_update_src_updater_updater.cpp new file mode 100644 index 000000000000..968958a22e89 --- /dev/null +++ b/www/firefox3-devel/files/patch-toolkit_mozapps_update_src_updater_updater.cpp @@ -0,0 +1,20 @@ +--- toolkit/mozapps/update/src/updater/updater.cpp.orig 2009-09-16 04:41:19.000000000 +0200 ++++ toolkit/mozapps/update/src/updater/updater.cpp 2009-09-18 01:49:47.000000000 +0200 +@@ -511,7 +511,7 @@ + struct stat ss; + + AutoFile sfile = NS_tfopen(spath, NS_T("rb")); +- if (sfile == NULL || fstat(fileno(sfile), &ss)) { ++ if (sfile == NULL || fstat(fileno((FILE*)sfile), &ss)) { + LOG(("copy_file: failed to open or stat: %p," LOG_S ",%d\n", sfile.get(), spath, errno)); + return READ_ERROR; + } +@@ -1660,7 +1660,7 @@ + return READ_ERROR; + + struct stat ms; +- rv = fstat(fileno(mfile), &ms); ++ rv = fstat(fileno((FILE*)mfile), &ms); + if (rv) + return READ_ERROR; + diff --git a/www/firefox3-devel/files/patch-xpcom-reflect-xptcall-src-xptcprivate.h b/www/firefox3-devel/files/patch-xpcom-reflect-xptcall-src-xptcprivate.h new file mode 100644 index 000000000000..0440ce0a263f --- /dev/null +++ b/www/firefox3-devel/files/patch-xpcom-reflect-xptcall-src-xptcprivate.h @@ -0,0 +1,20 @@ +--- xpcom/reflect/xptcall/src/xptcprivate.h.orig 2009-11-09 21:43:49.000000000 -0800 ++++ xpcom/reflect/xptcall/src/xptcprivate.h 2009-11-09 21:44:05.000000000 -0800 +@@ -45,7 +45,7 @@ + + class xptiInterfaceEntry; + +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__)) ++#if !defined(__ia64) + #define STUB_ENTRY(n) NS_IMETHOD Stub##n() = 0; + #else + #define STUB_ENTRY(n) NS_IMETHOD Stub##n(PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64) = 0; +@@ -62,7 +62,7 @@ + #undef STUB_ENTRY + #undef SENTINEL_ENTRY + +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__)) ++#if !defined(__ia64) + #define STUB_ENTRY(n) NS_IMETHOD Stub##n(); + #else + #define STUB_ENTRY(n) NS_IMETHOD Stub##n(PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64); diff --git a/www/firefox3-devel/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in b/www/firefox3-devel/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in index 3681d9b80f73..244af2e49204 100644 --- a/www/firefox3-devel/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in +++ b/www/firefox3-devel/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in @@ -1,16 +1,16 @@ ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-03-05 22:32:55.000000000 +0100 -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-04-21 14:15:46.135700268 +0200 -@@ -70,6 +70,9 @@ - ifeq (Darwin,$(OS_ARCH)) +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2009-09-16 04:41:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 2009-10-03 21:30:21.000000000 +0200 +@@ -73,6 +73,9 @@ DEFINES += -DKEEP_STACK_16_BYTE_ALIGNED + CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp endif +ifeq (x86_64,$(OS_TEST)) +CPPSRCS := xptcinvoke_x86_64_linux.cpp xptcstubs_x86_64_linux.cpp +endif endif endif - # -@@ -87,7 +90,7 @@ + +@@ -96,7 +99,7 @@ endif endif # IA64 Linux @@ -19,20 +19,18 @@ ifneq (,$(findstring ia64,$(OS_TEST))) CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s -@@ -100,6 +103,12 @@ - CPPSRCS := xptcinvoke_amd64_openbsd.cpp xptcstubs_amd64_openbsd.cpp - endif +@@ -111,8 +114,8 @@ # -+# FreeBSD/amd64 -+# + # FreeBSD/amd64 + # +-ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDx86_64) +-CPPSRCS := xptcinvoke_amd64_linux.cpp xptcstubs_amd64_linux.cpp +ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDamd64) +CPPSRCS := xptcinvoke_amd64_openbsd.cpp xptcstubs_amd64_openbsd.cpp -+endif -+# - # BeOS/Intel (uses the same unixish_x86 code) + endif # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -@@ -150,9 +159,15 @@ + # BeOS/Intel (uses the same unixish_x86 code) +@@ -165,9 +168,15 @@ ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s endif # @@ -49,7 +47,7 @@ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp endif # -@@ -307,7 +322,7 @@ +@@ -322,7 +331,7 @@ # # Linux/PPC # @@ -58,7 +56,7 @@ CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s AS := $(CC) -c -x assembler-with-cpp -@@ -385,6 +400,15 @@ +@@ -400,6 +409,15 @@ ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s endif # diff --git a/www/firefox3-devel/files/releng6_pulseaudio b/www/firefox3-devel/files/releng6_pulseaudio index 1f600320f362..2d83f3c1c441 100644 --- a/www/firefox3-devel/files/releng6_pulseaudio +++ b/www/firefox3-devel/files/releng6_pulseaudio @@ -1,34 +1,32 @@ ---- media/libsydneyaudio/src/Makefile.in_orgi 2009-04-10 12:12:45.000000000 +0200 -+++ media/libsydneyaudio/src/Makefile.in 2009-04-10 12:13:12.000000000 +0200 +--- media/libsydneyaudio/src/Makefile.in.orig 2009-08-11 17:22:08.000000000 +0200 ++++ media/libsydneyaudio/src/Makefile.in 2009-08-11 17:22:36.000000000 +0200 @@ -45,6 +45,12 @@ - LIBRARY_NAME = sydneyaudio + LIBRARY_NAME = sydneyaudio FORCE_STATIC_LIB= 1 - + +ifeq ($(OS_ARCH),FreeBSD) -+CSRCS = \ -+ sydney_audio_pulseaudio.c \ -+ $(NULL) ++CSRCS = \ ++ sydney_audio_pulseaudio.c \ ++ $(NULL) +endif + ifeq ($(OS_ARCH),Linux) - CSRCS = \ - sydney_audio_alsa.c \ - ---- toolkit/library/Makefile.in.orig 2009-04-24 03:47:06.000000000 +0200 -+++ toolkit/library/Makefile.in 2009-05-11 11:05:23.000000000 +0200 -@@ -228,12 +228,12 @@ + CSRCS = \ + sydney_audio_alsa.c \ +--- toolkit/library/Makefile.in.orig 2009-08-11 17:22:45.000000000 +0200 ++++ toolkit/library/Makefile.in 2009-08-11 17:23:22.000000000 +0200 +@@ -231,12 +231,12 @@ endif - + ifeq (gtk2,$(MOZ_WIDGET_TOOLKIT)) --EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0 -+EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0 -lpulse -lpthread +-EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0 ++EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0 -lpulse -lpthread EXTRA_DSO_LDOPTS += $(FT2_LIBS) endif - + ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) -EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XT_LIBS) $(MOZ_QT_LIBS) -lgthread-2.0 +EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XT_LIBS) $(MOZ_QT_LIBS) -lgthread-2.0 -lpulse -lpthread EXTRA_DSO_LDOPTS += $(FT2_LIBS) endif - - + diff --git a/www/firefox3-devel/pkg-message b/www/firefox3-devel/pkg-message index ab2cd1e23c64..a422e3af0259 100644 --- a/www/firefox3-devel/pkg-message +++ b/www/firefox3-devel/pkg-message @@ -37,7 +37,7 @@ bug reports to any other addresses. Please include the following information with any bug report: * Output from 'uname -a'. -* Date/time stamp from www/firefox-devel/Makefile. +* Date/time stamp from www/firefox3-devel/Makefile. * Where/when did the problem occur: configuring, building, or running firefox * How can you reproduce the problem? |