diff options
author | marcus <marcus@FreeBSD.org> | 2009-04-10 13:56:28 +0800 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2009-04-10 13:56:28 +0800 |
commit | 06fff123f04648e578283b13f71108c1671ae751 (patch) | |
tree | e04217d1bf9d69846902902125c156a81eae643b /www | |
parent | f488e4c3be8f7b25040ce1258e89a5550fb33bf8 (diff) | |
download | freebsd-ports-gnome-06fff123f04648e578283b13f71108c1671ae751.tar.gz freebsd-ports-gnome-06fff123f04648e578283b13f71108c1671ae751.tar.zst freebsd-ports-gnome-06fff123f04648e578283b13f71108c1671ae751.zip |
Presenting GNOME 2.26 for FreeBSD. See
http://library.gnome.org/misc/release-notes/2.26/ for a list of what's new.
On the FreeBSD front, we introduced a port of libxul 1.9 as an alternative
for Firefox 2.0 as a Gecko provider. Almost all of the Gecko consumers
can make use of this provider by setting:
WITH_GECKO=libxul
The GNOME 2.26 port was done by ahze, kwm, marcus, and mezz with
contributions by Joseph S. Atkinson, Peter Wemm, Eric L. Chen,
Martin Matuska, Craig Butler, and Pawel Worach.
Diffstat (limited to 'www')
37 files changed, 1640 insertions, 58 deletions
diff --git a/www/Makefile b/www/Makefile index b8596d44ae81..a38af050586a 100644 --- a/www/Makefile +++ b/www/Makefile @@ -323,6 +323,7 @@ SUBDIR += libgtkhtml SUBDIR += libmicrohttpd SUBDIR += libwww + SUBDIR += libxul SUBDIR += lifetype SUBDIR += lightsquid SUBDIR += lighttpd diff --git a/www/epiphany-extensions/Makefile b/www/epiphany-extensions/Makefile index c82ce8221b9c..264b57a8eb60 100644 --- a/www/epiphany-extensions/Makefile +++ b/www/epiphany-extensions/Makefile @@ -3,11 +3,11 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/www/epiphany-extensions/Makefile,v 1.110 2008/10/21 01:27:34 kwm Exp $ +# $MCom: ports/www/epiphany-extensions/Makefile,v 1.114 2009/03/30 21:05:52 marcus Exp $ # PORTNAME= epiphany-extensions -PORTVERSION= 2.24.3 +PORTVERSION= 2.26.0 CATEGORIES= www gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 @@ -21,7 +21,7 @@ RUN_DEPENDS= epiphany:${PORTSDIR}/www/epiphany USE_GETTEXT= yes USE_BZIP2= yes -USE_GECKO= firefox xulrunner +USE_GECKO= firefox libxul USE_GNOME= gnomeprefix gnomehack intlhack INSTALLS_OMF= yes GNU_CONFIGURE= yes @@ -35,7 +35,8 @@ GCONF_SCHEMAS= smart-bookmarks.schemas EPHY_EXTENSIONS=all,rss EPHY_VERSION= ${PORTVERSION:R} -PLIST_SUB= VERSION=${EPHY_VERSION} EPHY_VERSION=${EPHY_VERSION} +#PLIST_SUB= VERSION=${EPHY_VERSION} EPHY_VERSION=${EPHY_VERSION} +PLIST_SUB= VERSION=2.26 EPHY_VERSION=2.26 OPTIONS= OPENSP "Enable OpenSP SGML support" off diff --git a/www/epiphany-extensions/distinfo b/www/epiphany-extensions/distinfo index f22e95164f9c..90e8e1a6924a 100644 --- a/www/epiphany-extensions/distinfo +++ b/www/epiphany-extensions/distinfo @@ -1,3 +1,3 @@ -MD5 (gnome2/epiphany-extensions-2.24.3.tar.bz2) = 5d1ca2c5847d066df26657319def1d3a -SHA256 (gnome2/epiphany-extensions-2.24.3.tar.bz2) = 5356d972f32601359446860d49bb0adadea62461d9c02ec8187474a02640a87e -SIZE (gnome2/epiphany-extensions-2.24.3.tar.bz2) = 1024664 +MD5 (gnome2/epiphany-extensions-2.26.0.tar.bz2) = 88f194ed26e8d1cea20b500dc4e1998e +SHA256 (gnome2/epiphany-extensions-2.26.0.tar.bz2) = fbdaddfb6fb873e0671994b638b16b15a14f3e2b53f8f92ee25c3a031e94067a +SIZE (gnome2/epiphany-extensions-2.26.0.tar.bz2) = 1025108 diff --git a/www/epiphany-extensions/pkg-plist b/www/epiphany-extensions/pkg-plist index b1021240d76f..8864ff24eae5 100644 --- a/www/epiphany-extensions/pkg-plist +++ b/www/epiphany-extensions/pkg-plist @@ -82,6 +82,7 @@ share/epiphany/icons/hicolor/32x32/status/feed-presence.png share/epiphany/icons/hicolor/scalable/status/feed-presence.svg share/gnome/help/epiphany-extensions/C/epiphany-extensions.xml share/gnome/help/epiphany-extensions/C/figures/epi-ext-action-create.png +share/gnome/help/epiphany-extensions/C/figures/epi-ext-action-use.png share/gnome/help/epiphany-extensions/C/figures/epi-ext-adblocker.png share/gnome/help/epiphany-extensions/C/figures/epi-ext-gestures-back.png share/gnome/help/epiphany-extensions/C/figures/epi-ext-gestures-close-2.png @@ -103,6 +104,7 @@ share/gnome/help/epiphany-extensions/C/figures/epi-ext-tabgroups.png share/gnome/help/epiphany-extensions/C/legal.xml share/gnome/help/epiphany-extensions/es/epiphany-extensions.xml share/gnome/help/epiphany-extensions/es/figures/epi-ext-action-create.png +share/gnome/help/epiphany-extensions/es/figures/epi-ext-action-use.png share/gnome/help/epiphany-extensions/es/figures/epi-ext-adblocker.png share/gnome/help/epiphany-extensions/es/figures/epi-ext-gestures-back.png share/gnome/help/epiphany-extensions/es/figures/epi-ext-gestures-close-2.png @@ -123,6 +125,7 @@ share/gnome/help/epiphany-extensions/es/figures/epi-ext-sidebar.png share/gnome/help/epiphany-extensions/es/figures/epi-ext-tabgroups.png share/gnome/help/epiphany-extensions/oc/epiphany-extensions.xml share/gnome/help/epiphany-extensions/oc/figures/epi-ext-action-create.png +share/gnome/help/epiphany-extensions/oc/figures/epi-ext-action-use.png share/gnome/help/epiphany-extensions/oc/figures/epi-ext-adblocker.png share/gnome/help/epiphany-extensions/oc/figures/epi-ext-gestures-back.png share/gnome/help/epiphany-extensions/oc/figures/epi-ext-gestures-close-2.png @@ -143,6 +146,7 @@ share/gnome/help/epiphany-extensions/oc/figures/epi-ext-sidebar.png share/gnome/help/epiphany-extensions/oc/figures/epi-ext-tabgroups.png share/gnome/help/epiphany-extensions/sv/epiphany-extensions.xml share/gnome/help/epiphany-extensions/sv/figures/epi-ext-action-create.png +share/gnome/help/epiphany-extensions/sv/figures/epi-ext-action-use.png share/gnome/help/epiphany-extensions/sv/figures/epi-ext-adblocker.png share/gnome/help/epiphany-extensions/sv/figures/epi-ext-gestures-back.png share/gnome/help/epiphany-extensions/sv/figures/epi-ext-gestures-close-2.png diff --git a/www/epiphany/Makefile b/www/epiphany/Makefile index fc20a74840fa..44d54a5d4b6d 100644 --- a/www/epiphany/Makefile +++ b/www/epiphany/Makefile @@ -3,12 +3,12 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/www/epiphany/Makefile,v 1.188 2008/11/27 01:59:20 marcus Exp $ +# $MCom: ports/www/epiphany/Makefile,v 1.195 2009/03/30 03:15:21 marcus Exp $ # PORTNAME= epiphany -PORTVERSION= 2.24.3 -PORTREVISION?= 1 +PORTVERSION= 2.26.0 +PORTREVISION?= 0 CATEGORIES= www gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 @@ -20,7 +20,7 @@ BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:${PORTSDIR}/misc/iso- LIB_DEPENDS= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib \ notify.1:${PORTSDIR}/devel/libnotify RUN_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:${PORTSDIR}/misc/iso-codes \ - ${LOCALBASE}/share/themes/LowContrast/index.theme:${PORTSDIR}/x11-themes/gnome-themes + ${LOCALBASE}/share/icons/HighContrastLargePrint/index.theme:${PORTSDIR}/x11-themes/gnome-themes USE_LDCONFIG= yes INSTALLS_ICONS= yes @@ -60,9 +60,10 @@ EXTRA_LIBS+= `pkg-config --libs WebKitGtk` CONFLICTS= epiphany-[1-9]* PLIST_SUB+= GECKO="@comment " .else -USE_GECKO+= firefox xulrunner +USE_GECKO+= firefox libxul CONFIGURE_ARGS+= --with-gecko=${GECKO} \ - --with-engine=mozilla + --with-engine=mozilla \ + --with-gecko-home=${LOCALBASE}/lib/${GECKO} .include "${PORTSDIR}/www/mozilla/bsd.gecko.mk" CONFLICTS= epiphany-webkit-[1-9]* PLIST_SUB+= GECKO="" @@ -94,7 +95,8 @@ post-patch: @${REINPLACE_CMD} -e 's|WebKitGdk|WebKitGtk|' ${WRKSRC}/configure @${FIND} ${WRKSRC} -name "Makefile.in*" | ${XARGS} ${REINPLACE_CMD} -e \ 's|-lpthread|${PTHREAD_LIBS}|g' - @${REINPLACE_CMD} -e 's|execinfo.h|#|g' \ + @${REINPLACE_CMD} -e 's|execinfo.h|#|g ; \ + s|-ldl"$$|"|g' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|/lib/mozilla/plugins"|/lib/browser_plugins/symlinks/gecko18"|' \ ${WRKSRC}/embed/mozilla/mozilla-embed-single.cpp diff --git a/www/epiphany/distinfo b/www/epiphany/distinfo index 37c7edb5e033..0df9a8f8975c 100644 --- a/www/epiphany/distinfo +++ b/www/epiphany/distinfo @@ -1,3 +1,3 @@ -MD5 (gnome2/epiphany-2.24.3.tar.bz2) = af51614c7b78f8b8c68e9ece3d8f4d8f -SHA256 (gnome2/epiphany-2.24.3.tar.bz2) = cc6ff7b30911bf80d8d72d6db7cc7ecbf51b2f5bb66796b79da33f8f680402ac -SIZE (gnome2/epiphany-2.24.3.tar.bz2) = 5722991 +MD5 (gnome2/epiphany-2.26.0.tar.bz2) = 98043cd7332fd3025e9b69f65904e5a4 +SHA256 (gnome2/epiphany-2.26.0.tar.bz2) = e0d801b967c94828c8389e36588be1db9a077830019169f6f9730708ae1d59e5 +SIZE (gnome2/epiphany-2.26.0.tar.bz2) = 5626038 diff --git a/www/epiphany/pkg-plist b/www/epiphany/pkg-plist index 51bc2d1fdb07..2fb28143e18f 100644 --- a/www/epiphany/pkg-plist +++ b/www/epiphany/pkg-plist @@ -39,7 +39,8 @@ include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-version.h include/epiphany/%%EPHY_VERSION%%/epiphany/ephy-window.h %%GECKO%%lib/epiphany/%%EPHY_VERSION%%/plugins/libdesktopfileplugin.la %%GECKO%%lib/epiphany/%%EPHY_VERSION%%/plugins/libdesktopfileplugin.so -libdata/pkgconfig/epiphany-%%EPHY_VERSION%%.pc +@comment libdata/pkgconfig/epiphany-%%EPHY_VERSION%%.pc +libdata/pkgconfig/epiphany-2.26.pc share/aclocal/epiphany.m4 share/applications/bme.desktop share/applications/epiphany.desktop @@ -278,13 +279,13 @@ share/locale/mn/LC_MESSAGES/epiphany.mo share/locale/mr/LC_MESSAGES/epiphany.mo share/locale/ms/LC_MESSAGES/epiphany.mo share/locale/nb/LC_MESSAGES/epiphany.mo -share/locale/ne/LC_MESSAGES/epiphany.mo share/locale/nl/LC_MESSAGES/epiphany.mo share/locale/nn/LC_MESSAGES/epiphany.mo share/locale/oc/LC_MESSAGES/epiphany.mo share/locale/or/LC_MESSAGES/epiphany.mo share/locale/pa/LC_MESSAGES/epiphany.mo share/locale/pl/LC_MESSAGES/epiphany.mo +share/locale/ps/LC_MESSAGES/epiphany.mo share/locale/pt/LC_MESSAGES/epiphany.mo share/locale/pt_BR/LC_MESSAGES/epiphany.mo share/locale/ro/LC_MESSAGES/epiphany.mo @@ -416,6 +417,8 @@ share/pygtk/2.0/defs/epiphany.defs @dirrmtry share/locale/si @dirrmtry share/locale/rw/LC_MESSAGES @dirrmtry share/locale/rw +@dirrmtry share/locale/ps/LC_MESSAGES +@dirrmtry share/locale/ps @dirrmtry share/locale/oc/LC_MESSAGES @dirrmtry share/locale/oc @dirrmtry share/locale/mr/LC_MESSAGES diff --git a/www/evolution-webcal/Makefile b/www/evolution-webcal/Makefile index 5f66b838d2fc..136a3b1b6e02 100644 --- a/www/evolution-webcal/Makefile +++ b/www/evolution-webcal/Makefile @@ -3,11 +3,11 @@ # Whom: Koop Mast <kwm@rainbow-runner.nl> # # $FreeBSD$ -# $MCom: ports/www/evolution-webcal/Makefile,v 1.58 2008/09/23 15:37:03 kwm Exp $ +# $MCom: ports/www/evolution-webcal/Makefile,v 1.61 2009/03/17 17:15:04 kwm Exp $ # PORTNAME= evolution-webcal -PORTVERSION= 2.24.0 +PORTVERSION= 2.26.0 CATEGORIES= www gnome MASTER_SITES= GNOME DISTNAME= ${PKGNAMEPREFIX}${PORTNAME}-${PORTVERSION} diff --git a/www/evolution-webcal/distinfo b/www/evolution-webcal/distinfo index cd6b33201b3e..c57481dbbab9 100644 --- a/www/evolution-webcal/distinfo +++ b/www/evolution-webcal/distinfo @@ -1,3 +1,3 @@ -MD5 (evolution-webcal-2.24.0.tar.bz2) = 8030ebaefb18050c079a71dc23701d82 -SHA256 (evolution-webcal-2.24.0.tar.bz2) = 370278680634f65717df9cef98f9a731eb93d58d303f322be51d7b38b1ff29a9 -SIZE (evolution-webcal-2.24.0.tar.bz2) = 153766 +MD5 (evolution-webcal-2.26.0.tar.bz2) = a36036a94dd043f57a6d84ab9b6c732c +SHA256 (evolution-webcal-2.26.0.tar.bz2) = d37e47aad820aa6f457bec42ea4b3c6f01fba85f3573204353c001dfed3d4bb6 +SIZE (evolution-webcal-2.26.0.tar.bz2) = 155281 diff --git a/www/evolution-webcal/pkg-plist b/www/evolution-webcal/pkg-plist index f8b5a4ad950e..13c66d80768b 100644 --- a/www/evolution-webcal/pkg-plist +++ b/www/evolution-webcal/pkg-plist @@ -1,4 +1,5 @@ libexec/evolution-webcal +share/locale/af/LC_MESSAGES/evolution-webcal.mo share/locale/ar/LC_MESSAGES/evolution-webcal.mo share/locale/as/LC_MESSAGES/evolution-webcal.mo share/locale/az/LC_MESSAGES/evolution-webcal.mo diff --git a/www/gnome-user-share/Makefile b/www/gnome-user-share/Makefile index 0d820afb4956..9e0bc6e9af8e 100644 --- a/www/gnome-user-share/Makefile +++ b/www/gnome-user-share/Makefile @@ -3,12 +3,12 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/www/gnome-user-share/Makefile,v 1.8 2008/02/24 20:36:08 marcus Exp $ +# $MCom: ports/www/gnome-user-share/Makefile,v 1.14 2009/03/17 13:35:33 kwm Exp $ # PORTNAME= gnome-user-share -PORTVERSION= 0.31 -PORTREVISION= 2 +PORTVERSION= 2.26.0 +PORTREVISION= 0 CATEGORIES= www deskutils gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 @@ -16,16 +16,18 @@ DIST_SUBDIR= gnome2 MAINTAINER= gnome@FreeBSD.org COMMENT= Personal file-sharing service for the GNOME Desktop -LIB_DEPENDS= avahi-client:${PORTSDIR}/net/avahi-app +LIB_DEPENDS= avahi-client:${PORTSDIR}/net/avahi-app \ + notify.1:${PORTSDIR}/devel/libnotify +RUN_DEPENDS= ${LOCALBASE}/${APACHEMODDIR}/mod_dnssd.so:${PORTSDIR}/www/mod_dnssd USE_BZIP2= yes USE_GMAKE= yes USE_GETTEXT= yes -USE_APACHE= 2.0+ -USE_GNOME= gnomeprefix gnomehack intlhack libglade2 gconf2 +USE_APACHE= 2.2+ +USE_GNOME= gnomeprefix gnomehack intlhack libglade2 gconf2 gnomedocutils GNU_CONFIGURE= yes INSTALLS_ICONS= yes -CONFIGURE_ARGS= --disable-howl --with-modules-path=${LOCALBASE}/${APACHEMODDIR} +CONFIGURE_ARGS= --with-modules-path=${LOCALBASE}/${APACHEMODDIR} CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" diff --git a/www/gnome-user-share/distinfo b/www/gnome-user-share/distinfo index 02f8edd7970b..e02044498cab 100644 --- a/www/gnome-user-share/distinfo +++ b/www/gnome-user-share/distinfo @@ -1,3 +1,3 @@ -MD5 (gnome2/gnome-user-share-0.31.tar.bz2) = 81d2b3d6c0694e5669330d8ad5c8a4b0 -SHA256 (gnome2/gnome-user-share-0.31.tar.bz2) = 4a00702d6f653ad461445adedf8c26720dd8a24fcfffff55e9ede30010cbb622 -SIZE (gnome2/gnome-user-share-0.31.tar.bz2) = 345185 +MD5 (gnome2/gnome-user-share-2.26.0.tar.bz2) = c99133b74a81a78ac0e4e10ef73fada7 +SHA256 (gnome2/gnome-user-share-2.26.0.tar.bz2) = 405be1ffbec4f865846746ab016e6816a58d9e2f2545fae48c31d4999c94d5f6 +SIZE (gnome2/gnome-user-share-2.26.0.tar.bz2) = 644020 diff --git a/www/gnome-user-share/pkg-message b/www/gnome-user-share/pkg-message index 4fe34b829c7b..84e4725071cf 100644 --- a/www/gnome-user-share/pkg-message +++ b/www/gnome-user-share/pkg-message @@ -1,10 +1,4 @@ -In order to take full advantage of gnome-user-share, you must have -devel/gnome-vfs built with mDNS support. If you do not, simply rebuild -devel/gnome-vfs after gnome-user-share is installed: - -# portupgrade -f devel/gnome-vfs - -Finally, run gnome-file-share-properties as the user with which you want +Run gnome-file-share-properties as the user with which you want to use gnome-user-share, then logout and log back into GNOME. Now everything under ~/Public should be shared. You can view this by opening Nautilus, and clicking on the Network icon under Computer. diff --git a/www/gnome-user-share/pkg-plist b/www/gnome-user-share/pkg-plist index 49552523dc4b..447088a2ca0b 100644 --- a/www/gnome-user-share/pkg-plist +++ b/www/gnome-user-share/pkg-plist @@ -2,17 +2,60 @@ bin/gnome-file-share-properties etc/xdg/autostart/gnome-user-share.desktop libexec/gnome-user-share share/applications/gnome-user-share-properties.desktop -share/gnome-user-share/dav_groupfile -share/gnome-user-share/dav_user.conf -share/gnome-user-share/dav_user_2.0.conf -share/gnome-user-share/dav_user_2.2.conf -share/gnome-user-share/file-share-properties.ui +%%DATADIR%%/dav_groupfile +%%DATADIR%%/dav_user_2.0.conf +%%DATADIR%%/dav_user_2.2.conf +%%DATADIR%%/file-share-properties.ui +share/gnome/help/gnome-user-share/C/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/C/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/C/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/C/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/C/gnome-user-share.xml +share/gnome/help/gnome-user-share/C/legal.xml +share/gnome/help/gnome-user-share/de/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/de/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/de/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/de/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/de/gnome-user-share.xml +share/gnome/help/gnome-user-share/de/legal.xml +share/gnome/help/gnome-user-share/el/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/el/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/el/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/el/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/el/gnome-user-share.xml +share/gnome/help/gnome-user-share/el/legal.xml +share/gnome/help/gnome-user-share/en_GB/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/en_GB/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/en_GB/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/en_GB/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/en_GB/gnome-user-share.xml +share/gnome/help/gnome-user-share/en_GB/legal.xml +share/gnome/help/gnome-user-share/es/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/es/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/es/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/es/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/es/gnome-user-share.xml +share/gnome/help/gnome-user-share/es/legal.xml +share/gnome/help/gnome-user-share/it/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/it/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/it/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/it/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/it/gnome-user-share.xml +share/gnome/help/gnome-user-share/it/legal.xml +share/gnome/help/gnome-user-share/sv/figures/file-sharing-preferences.png +share/gnome/help/gnome-user-share/sv/figures/receiving-over-bluetooth.png +share/gnome/help/gnome-user-share/sv/figures/sharing-over-bluetooth.png +share/gnome/help/gnome-user-share/sv/figures/sharing-over-the-network.png +share/gnome/help/gnome-user-share/sv/gnome-user-share.xml +share/gnome/help/gnome-user-share/sv/legal.xml share/icons/hicolor/16x16/apps/gnome-obex-server.png share/icons/hicolor/22x22/apps/gnome-obex-server.png share/icons/hicolor/32x32/apps/gnome-obex-server.png share/icons/hicolor/48x48/apps/gnome-obex-server.png share/locale/ar/LC_MESSAGES/gnome-user-share.mo +share/locale/as/LC_MESSAGES/gnome-user-share.mo share/locale/bg/LC_MESSAGES/gnome-user-share.mo +share/locale/bn_IN/LC_MESSAGES/gnome-user-share.mo share/locale/ca/LC_MESSAGES/gnome-user-share.mo share/locale/cs/LC_MESSAGES/gnome-user-share.mo share/locale/da/LC_MESSAGES/gnome-user-share.mo @@ -27,38 +70,79 @@ share/locale/fi/LC_MESSAGES/gnome-user-share.mo share/locale/fr/LC_MESSAGES/gnome-user-share.mo share/locale/gl/LC_MESSAGES/gnome-user-share.mo share/locale/gu/LC_MESSAGES/gnome-user-share.mo +share/locale/he/LC_MESSAGES/gnome-user-share.mo +share/locale/hi/LC_MESSAGES/gnome-user-share.mo share/locale/hu/LC_MESSAGES/gnome-user-share.mo share/locale/it/LC_MESSAGES/gnome-user-share.mo share/locale/ja/LC_MESSAGES/gnome-user-share.mo share/locale/ko/LC_MESSAGES/gnome-user-share.mo share/locale/lt/LC_MESSAGES/gnome-user-share.mo share/locale/mk/LC_MESSAGES/gnome-user-share.mo +share/locale/ml/LC_MESSAGES/gnome-user-share.mo +share/locale/mr/LC_MESSAGES/gnome-user-share.mo share/locale/nb/LC_MESSAGES/gnome-user-share.mo share/locale/ne/LC_MESSAGES/gnome-user-share.mo share/locale/nl/LC_MESSAGES/gnome-user-share.mo share/locale/oc/LC_MESSAGES/gnome-user-share.mo +share/locale/or/LC_MESSAGES/gnome-user-share.mo share/locale/pa/LC_MESSAGES/gnome-user-share.mo share/locale/pl/LC_MESSAGES/gnome-user-share.mo share/locale/pt/LC_MESSAGES/gnome-user-share.mo share/locale/pt_BR/LC_MESSAGES/gnome-user-share.mo +share/locale/ro/LC_MESSAGES/gnome-user-share.mo share/locale/ru/LC_MESSAGES/gnome-user-share.mo share/locale/rw/LC_MESSAGES/gnome-user-share.mo share/locale/sk/LC_MESSAGES/gnome-user-share.mo share/locale/sl/LC_MESSAGES/gnome-user-share.mo share/locale/sq/LC_MESSAGES/gnome-user-share.mo share/locale/sv/LC_MESSAGES/gnome-user-share.mo +share/locale/ta/LC_MESSAGES/gnome-user-share.mo +share/locale/te/LC_MESSAGES/gnome-user-share.mo +share/locale/th/LC_MESSAGES/gnome-user-share.mo share/locale/tr/LC_MESSAGES/gnome-user-share.mo share/locale/uk/LC_MESSAGES/gnome-user-share.mo share/locale/vi/LC_MESSAGES/gnome-user-share.mo share/locale/zh_CN/LC_MESSAGES/gnome-user-share.mo +share/locale/zh_HK/LC_MESSAGES/gnome-user-share.mo share/locale/zh_TW/LC_MESSAGES/gnome-user-share.mo -@dirrm share/gnome-user-share +share/omf/gnome-user-share/gnome-user-share-C.omf +share/omf/gnome-user-share/gnome-user-share-de.omf +share/omf/gnome-user-share/gnome-user-share-el.omf +share/omf/gnome-user-share/gnome-user-share-en_GB.omf +share/omf/gnome-user-share/gnome-user-share-es.omf +share/omf/gnome-user-share/gnome-user-share-it.omf +share/omf/gnome-user-share/gnome-user-share-sv.omf +@dirrm share/omf/gnome-user-share +@dirrm share/gnome/help/gnome-user-share/sv/figures +@dirrm share/gnome/help/gnome-user-share/sv +@dirrm share/gnome/help/gnome-user-share/it/figures +@dirrm share/gnome/help/gnome-user-share/it +@dirrm share/gnome/help/gnome-user-share/es/figures +@dirrm share/gnome/help/gnome-user-share/es +@dirrm share/gnome/help/gnome-user-share/en_GB/figures +@dirrm share/gnome/help/gnome-user-share/en_GB +@dirrm share/gnome/help/gnome-user-share/el/figures +@dirrm share/gnome/help/gnome-user-share/el +@dirrm share/gnome/help/gnome-user-share/de/figures +@dirrm share/gnome/help/gnome-user-share/de +@dirrm share/gnome/help/gnome-user-share/C/figures +@dirrm share/gnome/help/gnome-user-share/C +@dirrm share/gnome/help/gnome-user-share +@dirrm %%DATADIR%% @dirrmtry share/applications +@dirrmtry share/locale/zh_HK/LC_MESSAGES +@dirrmtry share/locale/zh_HK +@dirrmtry share/locale/te/LC_MESSAGES +@dirrmtry share/locale/te @dirrmtry share/locale/rw/LC_MESSAGES @dirrmtry share/locale/rw @dirrmtry share/locale/oc/LC_MESSAGES @dirrmtry share/locale/oc +@dirrmtry share/locale/mr/LC_MESSAGES +@dirrmtry share/locale/mr @dirrmtry share/locale/dz/LC_MESSAGES @dirrmtry share/locale/dz -@dirrmtry etc/xdg/autostart -@dirrmtry etc/xdg +@dirrmtry share/locale/bn_IN/LC_MESSAGES +@dirrmtry share/locale/bn_IN +@dirrmtry share/locale/as/LC_MESSAGES +@dirrmtry share/locale/as diff --git a/www/gtkhtml3/Makefile b/www/gtkhtml3/Makefile index 7d76b67bf298..4475410756c1 100644 --- a/www/gtkhtml3/Makefile +++ b/www/gtkhtml3/Makefile @@ -3,11 +3,11 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/www/gtkhtml3/Makefile,v 1.142 2008/11/25 01:16:48 marcus Exp $ +# $MCom: ports/www/gtkhtml3/Makefile,v 1.146 2009/03/17 13:10:04 kwm Exp $ # PORTNAME= gtkhtml3 -PORTVERSION= 3.24.5 +PORTVERSION= 3.26.0 CATEGORIES= www gnome MASTER_SITES= GNOME MASTER_SITE_SUBDIR= sources/${PORTNAME:S/3$//}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} diff --git a/www/gtkhtml3/distinfo b/www/gtkhtml3/distinfo index f719e184f69b..6b91c93c475e 100644 --- a/www/gtkhtml3/distinfo +++ b/www/gtkhtml3/distinfo @@ -1,3 +1,3 @@ -MD5 (gnome2/gtkhtml-3.24.5.tar.bz2) = 1a8ad3813fbdc918b3b6fbf448af153b -SHA256 (gnome2/gtkhtml-3.24.5.tar.bz2) = b6ae7311b9412030649cbfc9b3ed240842343e95bf52c4c99069b14192128079 -SIZE (gnome2/gtkhtml-3.24.5.tar.bz2) = 1473717 +MD5 (gnome2/gtkhtml-3.26.0.tar.bz2) = 75d3b6dcd939c2ddcad8aa255ab76f90 +SHA256 (gnome2/gtkhtml-3.26.0.tar.bz2) = 1049b36358f998a2f9748117edf53f4153113084934395c2672d7471d8bd48e4 +SIZE (gnome2/gtkhtml-3.26.0.tar.bz2) = 1472290 diff --git a/www/libxul/Makefile b/www/libxul/Makefile new file mode 100644 index 000000000000..e58782500d39 --- /dev/null +++ b/www/libxul/Makefile @@ -0,0 +1,56 @@ +# New ports collection makefile for: xulrunner +# Date created: 2006-02-20 +# Whom: Michael Johnson <ahze@FreeBSD.org> +# +# $FreeBSD$ +# $MCom: ports/www/libxul/Makefile,v 1.25 2009/04/07 17:47:01 marcus Exp $ +# + +PORTNAME= libxul +PORTVERSION= 1.9.0.7 +PORTREVISION?= 2 +CATEGORIES?= www devel +MASTER_SITES= ${MASTER_SITE_MOZILLA} +MASTER_SITE_SUBDIR= xulrunner/releases/${PORTVERSION}/source/ +DISTNAME= xulrunner-${PORTVERSION}-source + +MAINTAINER?= gnome@FreeBSD.org +COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps + +LIB_DEPENDS?= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib + +CONFLICTS= mozilla-[0-9]* xulrunner-[0-9]* +GECKO_PLIST_PRE_DIRS= lib/${MOZILLA}/bin lib/${MOZILLA}/idl \ + lib/${MOZILLA}/include lib/${MOZILLA}/lib \ + lib/${MOZILLA}/sdk/idl lib/${MOZILLA}/sdk/include + +WANT_GNOME= yes +WANT_PERL= yes +ALL_TARGET= default +HAS_CONFIGURE= yes +USE_BZIP2= yes +USE_GMAKE= yes +LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} + +PORT_MOZCONFIG= ${WRKSRC}/xulrunner/config/mozconfig +MOZ_OPTIONS?= --with-default-mozilla-five-home=${PREFIX}/lib/${MOZILLA} \ + --disable-javaxpcom --enable-canvas \ + --enable-system-cairo +MOZ_EXTENSIONS= default,cookie,permissions +OPTIONS= # Empty, used for generic gecko OPTIONS +USE_GECKO_OPTIONS= java debug logging optimized_cflags +USE_GECKO= gecko +MOZILLA_EXEC_NAME=xulrunner +MOZ_TOOLKIT= cairo-gtk2 +USE_MOZILLA= -png -nss -dbm -jpeg +MOZ_PKGCONFIG_FILES= libxul-embedding-unstable libxul-embedding \ + libxul-unstable libxul mozilla-gtkmozembed-embedding \ + mozilla-gtkmozembed mozilla-js mozilla-nss mozilla-plugin + +post-build: + @${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2| ; \ + s|%sdkdir%|%sdkdir%/sdk|g ; \ + s|%%MOZ_LIBDIR%%|${PREFIX}/lib/${MOZILLA}|g" \ + ${WRKSRC}/xulrunner/installer/*.pc.in || ${TRUE} + +.include <bsd.port.mk> diff --git a/www/libxul/distinfo b/www/libxul/distinfo new file mode 100644 index 000000000000..5c4a36a6de68 --- /dev/null +++ b/www/libxul/distinfo @@ -0,0 +1,3 @@ +MD5 (xulrunner-1.9.0.7-source.tar.bz2) = 9875c9237b532009df8e91c3785539a3 +SHA256 (xulrunner-1.9.0.7-source.tar.bz2) = 300749986499629fdab5b271c35eb53f42753a3586ef474500d52bd3386cad9b +SIZE (xulrunner-1.9.0.7-source.tar.bz2) = 37066129 diff --git a/www/libxul/files/patch-config-mkdepend-imakemdep.h b/www/libxul/files/patch-config-mkdepend-imakemdep.h new file mode 100644 index 000000000000..b688e664475d --- /dev/null +++ b/www/libxul/files/patch-config-mkdepend-imakemdep.h @@ -0,0 +1,10 @@ +--- config/mkdepend/imakemdep.h Fri Sep 4 21:22:25 1998 ++++ config/mkdepend/imakemdep.h Thu Oct 16 22:43:25 2003 +@@ -278,4 +278,7 @@ + "-D__i386__", + # endif ++# if defined(__amd64__) || defined(__x86_64__) ++ "-D__amd64__ -D__x86_64__", ++# endif + # ifdef __GNUC__ + "-traditional", diff --git a/www/libxul/files/patch-config_autoconf.mk.in b/www/libxul/files/patch-config_autoconf.mk.in new file mode 100644 index 000000000000..b39d9bacf0d7 --- /dev/null +++ b/www/libxul/files/patch-config_autoconf.mk.in @@ -0,0 +1,21 @@ +--- config/autoconf.mk.in.orig 2007-08-28 12:02:43.000000000 -0400 ++++ config/autoconf.mk.in 2007-09-26 14:21:51.000000000 -0400 +@@ -58,14 +58,14 @@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ + bindir = @bindir@ +-includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++includedir = @includedir@/%%MOZILLA%% + libdir = @libdir@ + datadir = @datadir@ + mandir = @mandir@ +-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++idldir = $(datadir)/idl/%%MOZILLA%% + +-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) ++installdir = $(libdir)/%%MOZILLA%% ++sdkdir = $(libdir)/%%MOZILLA%% + + DIST = $(DEPTH)/dist + LIBXUL_SDK = @LIBXUL_SDK@ diff --git a/www/libxul/files/patch-config_mkdepend_Makefile.in b/www/libxul/files/patch-config_mkdepend_Makefile.in new file mode 100644 index 000000000000..8da7e48ab0df --- /dev/null +++ b/www/libxul/files/patch-config_mkdepend_Makefile.in @@ -0,0 +1,10 @@ +--- config/mkdepend/Makefile.in.orig Sun Apr 18 14:17:26 2004 ++++ config/mkdepend/Makefile.in Sun Dec 12 09:42:11 2004 +@@ -73,6 +73,7 @@ + include $(topsrcdir)/config/rules.mk + + HOST_CFLAGS += -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".$(OBJ_SUFFIX)\" ++HOST_CFLAGS += $(XCFLAGS) + + ifdef GNU_CC + _GCCDIR = $(shell $(CC) -print-file-name=include) diff --git a/www/libxul/files/patch-config_rules.mk b/www/libxul/files/patch-config_rules.mk new file mode 100644 index 000000000000..16cb6ae1192e --- /dev/null +++ b/www/libxul/files/patch-config_rules.mk @@ -0,0 +1,14 @@ +--- config/rules.mk.orig Sun May 18 16:10:18 2003 ++++ config/rules.mk Sun Jul 20 18:07:26 2003 +@@ -448,7 +448,11 @@ + + ifeq ($(OS_ARCH),FreeBSD) + ifdef IS_COMPONENT ++ifneq (,$(filter alpha ia64,$(OS_TEST))) ++EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc ++else + EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic ++endif + endif + endif + diff --git a/www/libxul/files/patch-configure b/www/libxul/files/patch-configure new file mode 100644 index 000000000000..768a178142d2 --- /dev/null +++ b/www/libxul/files/patch-configure @@ -0,0 +1,38 @@ +--- configure.orig 2008-05-28 11:31:02.000000000 -0700 ++++ configure 2008-07-26 07:27:03.712894513 -0700 +@@ -10808,7 +10808,7 @@ + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" +-LIBS="-liconv $LIBS" ++LIBS="-L$LOCALBASE/lib -liconv $LIBS" + cat > conftest.$ac_ext <<EOF + #line 10814 "configure" + #include "confdefs.h" +@@ -10839,7 +10839,7 @@ + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 +- _ICONV_LIBS="$_ICONV_LIBS -liconv" ++ _ICONV_LIBS="$_ICONV_LIBS -L$LOCALBASE/lib -liconv" + else + echo "$ac_t""no" 1>&6 + echo $ac_n "checking for libiconv in -liconv""... $ac_c" 1>&6 +@@ -10849,7 +10849,7 @@ + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" +-LIBS="-liconv $LIBS" ++LIBS="-L$LOCALBASE/lib -liconv $LIBS" + cat > conftest.$ac_ext <<EOF + #line 10855 "configure" + #include "confdefs.h" +@@ -10880,7 +10880,7 @@ + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 +- _ICONV_LIBS="$_ICONV_LIBS -liconv" ++ _ICONV_LIBS="$_ICONV_LIBS -L$LOCALBASE/lib -liconv" + else + echo "$ac_t""no" 1>&6 + fi diff --git a/www/libxul/files/patch-embedding_base_nsEmbedAPI.cpp b/www/libxul/files/patch-embedding_base_nsEmbedAPI.cpp new file mode 100644 index 000000000000..2cc9823fed1c --- /dev/null +++ b/www/libxul/files/patch-embedding_base_nsEmbedAPI.cpp @@ -0,0 +1,16 @@ +--- embedding/base/nsEmbedAPI.cpp.orig 2007-10-09 20:00:30.000000000 -0400 ++++ embedding/base/nsEmbedAPI.cpp 2007-10-09 20:01:45.000000000 -0400 +@@ -53,7 +53,12 @@ static PRBool sRegistryIniti + static PRUint32 sInitCounter = 0; + + #define HACK_AROUND_THREADING_ISSUES +-//#define HACK_AROUND_NONREENTRANT_INITXPCOM ++#ifdef __FreeBSD__ ++#include <sys/param.h> ++#if __FreeBSD_version < 700042 ++#define HACK_AROUND_NONREENTRANT_INITXPCOM ++#endif ++#endif + + #ifdef HACK_AROUND_NONREENTRANT_INITXPCOM + // XXX hack class to clean up XPCOM when this module is unloaded diff --git a/www/libxul/files/patch-security_coreconf_FreeBSD.mk b/www/libxul/files/patch-security_coreconf_FreeBSD.mk new file mode 100644 index 000000000000..5c76b5af5ebf --- /dev/null +++ b/www/libxul/files/patch-security_coreconf_FreeBSD.mk @@ -0,0 +1,37 @@ +--- security/coreconf/FreeBSD.mk.orig Wed Mar 26 20:17:25 2003 ++++ security/coreconf/FreeBSD.mk Thu Jul 8 12:56:24 2004 +@@ -35,16 +35,18 @@ + + include $(CORE_DEPTH)/coreconf/UNIX.mk + +-DEFAULT_COMPILER = gcc +-CC = gcc +-CCC = g++ ++CCC = ${CXX} + RANLIB = ranlib + + ifeq ($(OS_TEST),alpha) + CPU_ARCH = alpha + else ++ifeq ($(OS_TEST),amd64) ++CPU_ARCH = amd64 ++else + CPU_ARCH = x86 + endif ++endif + + OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK + +@@ -71,7 +73,11 @@ + DLL_SUFFIX = so.1.0 + endif + +-MKSHLIB = $(CC) $(DSO_LDOPTS) ++ifneq (,$(filter alpha ia64,$(OS_TEST))) ++MKSHLIB = $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) -o $@ ++else ++MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) -o $@ ++endif + ifdef MAPFILE + # Add LD options to restrict exported symbols to those in the map file + endif diff --git a/www/libxul/files/patch-toolkit_mozapps_installer_packager.mk b/www/libxul/files/patch-toolkit_mozapps_installer_packager.mk new file mode 100644 index 000000000000..635c3c79c13c --- /dev/null +++ b/www/libxul/files/patch-toolkit_mozapps_installer_packager.mk @@ -0,0 +1,11 @@ +--- 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/libxul/files/patch-xpcom_reflect_xptcall_public_xptcstubsdecl.inc b/www/libxul/files/patch-xpcom_reflect_xptcall_public_xptcstubsdecl.inc new file mode 100644 index 000000000000..ebe5474ca275 --- /dev/null +++ b/www/libxul/files/patch-xpcom_reflect_xptcall_public_xptcstubsdecl.inc @@ -0,0 +1,11 @@ +--- xpcom/reflect/xptcall/public/xptcstubsdecl.inc.orig Tue Mar 16 03:07:25 2004 ++++ xpcom/reflect/xptcall/public/xptcstubsdecl.inc Fri Mar 19 15:58:14 2004 +@@ -8,7 +8,7 @@ + * 1 is AddRef + * 2 is Release + */ +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__)) ++#if !defined(__ia64) + NS_IMETHOD Stub3(); + NS_IMETHOD Stub4(); + NS_IMETHOD Stub5(); diff --git a/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in b/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in new file mode 100644 index 000000000000..cf4ffb04e511 --- /dev/null +++ b/www/libxul/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in @@ -0,0 +1,54 @@ +--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003 ++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004 +@@ -49,6 +49,9 @@ + ifeq (86,$(findstring 86,$(OS_TEST))) + 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 + # + # New code for Linux, et. al., with gcc +@@ -60,7 +63,7 @@ + endif + endif + # IA64 Linux +-ifneq (,$(filter Linux,$(OS_ARCH))) ++ifneq (,$(filter Linux FreeBSD,$(OS_ARCH))) + ifneq (,$(findstring ia64,$(OS_TEST))) + CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp + ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s +@@ -106,9 +109,15 @@ + ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s + endif + # ++# FreeBSD/Alpha ++# ++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDalpha) ++CPPSRCS := xptcinvoke_freebsd_alpha.cpp xptcstubs_freebsd_alpha.cpp ++endif ++# + # Linux/Alpha + # +-ifneq (,$(filter Linuxalpha FreeBSDalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST))) ++ifneq (,$(filter Linuxalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST))) + CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp + endif + # +@@ -294,6 +303,15 @@ + ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc) + CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp + ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s ++endif ++# ++# FreeBSD/SPARC64 ++# ++ifeq ($(OS_ARCH),FreeBSD) ++ifneq (,$(findstring sparc,$(OS_TEST))) ++CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp ++ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s ++endif + endif + # + # Solaris/SPARC diff --git a/www/libxul/files/patch-xptcall-alpha b/www/libxul/files/patch-xptcall-alpha new file mode 100644 index 000000000000..29631a98e61e --- /dev/null +++ b/www/libxul/files/patch-xptcall-alpha @@ -0,0 +1,459 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp.orig Tue May 27 01:37:25 2003 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp Tue May 27 01:37:00 2003 +@@ -0,0 +1,184 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: NPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Netscape Public License ++ * Version 1.1 (the "License"); you may not use this file except in ++ * compliance with the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/NPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the NPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the NPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Platform specific code to invoke XPCOM methods on native objects */ ++ ++/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ ++ ++#include "xptcprivate.h" ++ ++/* Prototype specifies unmangled function name and disables unused warning */ ++static void ++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s) ++__asm__("invoke_copy_to_stack") __attribute__((unused)); ++ ++static void ++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer ++ ++ for(PRUint32 i = 0; i < paramCount; i++, d++, s++) ++ { ++ if(s->IsPtrData()) ++ { ++ *d = (PRUint64)s->ptr; ++ continue; ++ } ++ switch(s->type) ++ { ++ case nsXPTType::T_I8 : *d = (PRUint64)s->val.i8; break; ++ case nsXPTType::T_I16 : *d = (PRUint64)s->val.i16; break; ++ case nsXPTType::T_I32 : *d = (PRUint64)s->val.i32; break; ++ case nsXPTType::T_I64 : *d = (PRUint64)s->val.i64; break; ++ case nsXPTType::T_U8 : *d = (PRUint64)s->val.u8; break; ++ case nsXPTType::T_U16 : *d = (PRUint64)s->val.u16; break; ++ case nsXPTType::T_U32 : *d = (PRUint64)s->val.u32; break; ++ case nsXPTType::T_U64 : *d = (PRUint64)s->val.u64; break; ++ case nsXPTType::T_FLOAT : ++ if(i < NUM_ARG_REGS) ++ { ++ // convert floats to doubles if they are to be passed ++ // via registers so we can just deal with doubles later ++ union { PRUint64 u64; double d; } t; ++ t.d = (double)s->val.f; ++ *d = t.u64; ++ } ++ else ++ // otherwise copy to stack normally ++ *d = (PRUint64)s->val.u32; ++ break; ++ case nsXPTType::T_DOUBLE : *d = (PRUint64)s->val.u64; break; ++ case nsXPTType::T_BOOL : *d = (PRUint64)s->val.b; break; ++ case nsXPTType::T_CHAR : *d = (PRUint64)s->val.c; break; ++ case nsXPTType::T_WCHAR : *d = (PRUint64)s->val.wc; break; ++ default: ++ // all the others are plain pointer types ++ *d = (PRUint64)s->val.p; ++ break; ++ } ++ } ++} ++ ++/* ++ * XPTC_PUBLIC_API(nsresult) ++ * XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ * PRUint32 paramCount, nsXPTCVariant* params, void* vt) ++ */ ++__asm__( ++ "#### XPTC_InvokeByIndex ####\n" ++".text\n\t" ++ ".align 5\n\t" ++ ".globl XPTC_InvokeByIndex\n\t" ++ ".ent XPTC_InvokeByIndex\n" ++"XPTC_InvokeByIndex:\n\t" ++ ".frame $15,32,$26,0\n\t" ++ ".mask 0x4008000,-32\n\t" ++ "ldgp $29,0($27)\n" ++"$XPTC_InvokeByIndex..ng:\n\t" ++ "subq $30,32,$30\n\t" ++ "stq $26,0($30)\n\t" ++ "stq $15,8($30)\n\t" ++ "bis $30,$30,$15\n\t" ++ ".prologue 1\n\t" ++ ++ /* ++ * Allocate enough stack space to hold the greater of 6 or "paramCount"+1 ++ * parameters. (+1 for "this" pointer) Room for at least 6 parameters ++ * is required for storage of those passed via registers. ++ */ ++ ++ "bis $31,5,$2\n\t" /* count = MAX(5, "paramCount") */ ++ "cmplt $2,$18,$1\n\t" ++ "cmovne $1,$18,$2\n\t" ++ "s8addq $2,16,$1\n\t" /* room for count+1 params (8 bytes each) */ ++ "bic $1,15,$1\n\t" /* stack space is rounded up to 0 % 16 */ ++ "subq $30,$1,$30\n\t" ++ ++ "stq $16,0($30)\n\t" /* save "that" (as "this" pointer) */ ++ "stq $17,16($15)\n\t" /* save "methodIndex" */ ++ ++ "addq $30,8,$16\n\t" /* pass stack pointer */ ++ "bis $18,$18,$17\n\t" /* pass "paramCount" */ ++ "bis $19,$19,$18\n\t" /* pass "params" */ ++ "bsr $26,$invoke_copy_to_stack..ng\n\t" /* call invoke_copy_to_stack */ ++ ++ /* ++ * Copy the first 6 parameters to registers and remove from stack frame. ++ * Both the integer and floating point registers are set for each parameter ++ * except the first which is the "this" pointer. (integer only) ++ * The floating point registers are all set as doubles since the ++ * invoke_copy_to_stack function should have converted the floats. ++ */ ++ "ldq $16,0($30)\n\t" /* integer registers */ ++ "ldq $17,8($30)\n\t" ++ "ldq $18,16($30)\n\t" ++ "ldq $19,24($30)\n\t" ++ "ldq $20,32($30)\n\t" ++ "ldq $21,40($30)\n\t" ++ "ldt $f17,8($30)\n\t" /* floating point registers */ ++ "ldt $f18,16($30)\n\t" ++ "ldt $f19,24($30)\n\t" ++ "ldt $f20,32($30)\n\t" ++ "ldt $f21,40($30)\n\t" ++ ++ "addq $30,48,$30\n\t" /* remove params from stack */ ++ ++ /* ++ * Call the virtual function with the constructed stack frame. ++ */ ++ "bis $16,$16,$1\n\t" /* load "this" */ ++ "ldq $2,16($15)\n\t" /* load "methodIndex" */ ++ "ldq $1,0($1)\n\t" /* load vtable */ ++#if 0 ++ "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */ ++#else ++ "mulq $2, 8, $2\n\t" ++ "addq $2, 0, $2\n\t" /* vtable index = "methodIndex" * 16 + 24 */ ++#endif ++ "addq $1,$2,$1\n\t" ++ "ldq $27,0($1)\n\t" /* load address of function */ ++ "jsr $26,($27),0\n\t" /* call virtual function */ ++ "ldgp $29,0($26)\n\t" ++ ++ "bis $15,$15,$30\n\t" ++ "ldq $26,0($30)\n\t" ++ "ldq $15,8($30)\n\t" ++ "addq $30,32,$30\n\t" ++ "ret $31,($26),1\n\t" ++ ".end XPTC_InvokeByIndex" ++ ); ++ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp.orig Tue May 27 01:37:30 2003 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp Tue May 27 01:37:04 2003 +@@ -0,0 +1,269 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: NPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Netscape Public License ++ * Version 1.1 (the "License"); you may not use this file except in ++ * compliance with the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/NPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either the GNU General Public License Version 2 or later (the "GPL"), or ++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the NPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the NPL, the GPL or the LGPL. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Implement shared vtbl methods. */ ++ ++/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ ++ ++#include <sys/types.h> ++#include <machine/cpu.h> ++#include "xptcprivate.h" ++ ++/* Prototype specifies unmangled function name and disables unused warning */ ++static nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args) ++__asm__("PrepareAndDispatch") __attribute__((unused)); ++ ++static nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args) ++{ ++ const PRUint8 PARAM_BUFFER_COUNT = 16; ++ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer ++ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint8 paramCount; ++ PRUint8 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no interface info"); ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ ++ // args[0] to args[NUM_ARG_REGS] hold floating point register values ++ PRUint64* ap = args + NUM_ARG_REGS; ++ for(i = 0; i < paramCount; i++, ap++) ++ { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if(param.IsOut() || !type.IsArithmetic()) ++ { ++ dp->val.p = (void*) *ap; ++ continue; ++ } ++ // else ++ switch(type) ++ { ++ case nsXPTType::T_I8 : dp->val.i8 = (PRInt8) *ap; break; ++ case nsXPTType::T_I16 : dp->val.i16 = (PRInt16) *ap; break; ++ case nsXPTType::T_I32 : dp->val.i32 = (PRInt32) *ap; break; ++ case nsXPTType::T_I64 : dp->val.i64 = (PRInt64) *ap; break; ++ case nsXPTType::T_U8 : dp->val.u8 = (PRUint8) *ap; break; ++ case nsXPTType::T_U16 : dp->val.u16 = (PRUint16) *ap; break; ++ case nsXPTType::T_U32 : dp->val.u32 = (PRUint32) *ap; break; ++ case nsXPTType::T_U64 : dp->val.u64 = (PRUint64) *ap; break; ++ case nsXPTType::T_FLOAT : ++ if(i < NUM_ARG_REGS) ++ { ++ // floats passed via registers are stored as doubles ++ // in the first NUM_ARG_REGS entries in args ++ dp->val.u64 = (PRUint64) args[i]; ++ dp->val.f = (float) dp->val.d; // convert double to float ++ } ++ else ++ dp->val.u32 = (PRUint32) *ap; ++ break; ++ case nsXPTType::T_DOUBLE : ++ // doubles passed via registers are also stored ++ // in the first NUM_ARG_REGS entries in args ++ dp->val.u64 = (i < NUM_ARG_REGS) ? args[i] : *ap; ++ break; ++ case nsXPTType::T_BOOL : dp->val.b = (PRBool) *ap; break; ++ case nsXPTType::T_CHAR : dp->val.c = (char) *ap; break; ++ case nsXPTType::T_WCHAR : dp->val.wc = (PRUnichar) *ap; break; ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if(dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++/* ++ * SharedStub() ++ * Collects arguments and calls PrepareAndDispatch. The "methodIndex" is ++ * passed to this function via $1 to preserve the argument registers. ++ */ ++__asm__( ++ "#### SharedStub ####\n" ++".text\n\t" ++ ".align 5\n\t" ++ ".ent SharedStub\n" ++"SharedStub:\n\t" ++ ".frame $30,96,$26,0\n\t" ++ ".mask 0x4000000,-96\n\t" ++ "ldgp $29,0($27)\n" ++"$SharedStub..ng:\n\t" ++ "subq $30,96,$30\n\t" ++ "stq $26,0($30)\n\t" ++ ".prologue 1\n\t" ++ ++ /* ++ * Store arguments passed via registers to the stack. ++ * Floating point registers are stored as doubles and converted ++ * to floats in PrepareAndDispatch if necessary. ++ */ ++ "stt $f17,16($30)\n\t" /* floating point registers */ ++ "stt $f18,24($30)\n\t" ++ "stt $f19,32($30)\n\t" ++ "stt $f20,40($30)\n\t" ++ "stt $f21,48($30)\n\t" ++ "stq $17,56($30)\n\t" /* integer registers */ ++ "stq $18,64($30)\n\t" ++ "stq $19,72($30)\n\t" ++ "stq $20,80($30)\n\t" ++ "stq $21,88($30)\n\t" ++ ++ /* ++ * Call PrepareAndDispatch function. ++ */ ++ "bis $1,$1,$17\n\t" /* pass "methodIndex" */ ++ "addq $30,16,$18\n\t" /* pass "args" */ ++ "bsr $26,$PrepareAndDispatch..ng\n\t" ++ ++ "ldq $26,0($30)\n\t" ++ "addq $30,96,$30\n\t" ++ "ret $31,($26),1\n\t" ++ ".end SharedStub" ++ ); ++ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++/* ++ * nsresult nsXPTCStubBase::Stub##n() ++ * Sets register $1 to "methodIndex" and jumps to SharedStub. ++ */ ++#define STUB_ENTRY(n) \ ++__asm__( \ ++ "#### Stub"#n" ####\n" \ ++".text\n\t" \ ++ ".align 5\n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n\t" \ ++ ".ent _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \ ++"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n\t" \ ++ ".frame $30,0,$26,0\n\t" \ ++ "ldgp $29,0($27)\n" \ ++"$_ZN14nsXPTCStubBase5Stub"#n"Ev..ng:\n\t" \ ++ ".prologue 1\n\t" \ ++ "lda $1,"#n"\n\t" \ ++ "br $31,$SharedStub..ng\n\t" \ ++ ".end _ZN14nsXPTCStubBase5Stub"#n"Ev" \ ++ ); \ ++__asm__( \ ++ "#### Stub"#n" ####\n" \ ++".text\n\t" \ ++ ".align 5\n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n\t" \ ++ ".ent _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \ ++"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n\t" \ ++ ".frame $30,0,$26,0\n\t" \ ++ "ldgp $29,0($27)\n" \ ++"$_ZN14nsXPTCStubBase6Stub"#n"Ev..ng:\n\t" \ ++ ".prologue 1\n\t" \ ++ "lda $1,"#n"\n\t" \ ++ "br $31,$SharedStub..ng\n\t" \ ++ ".end _ZN14nsXPTCStubBase6Stub"#n"Ev" \ ++ ); \ ++__asm__( \ ++ "#### Stub"#n" ####\n" \ ++".text\n\t" \ ++ ".align 5\n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n\t" \ ++ ".ent _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \ ++"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n\t" \ ++ ".frame $30,0,$26,0\n\t" \ ++ "ldgp $29,0($27)\n" \ ++"$_ZN14nsXPTCStubBase7Stub"#n"Ev..ng:\n\t" \ ++ ".prologue 1\n\t" \ ++ "lda $1,"#n"\n\t" \ ++ "br $31,$SharedStub..ng\n\t" \ ++ ".end _ZN14nsXPTCStubBase7Stub"#n"Ev" \ ++ ); ++#else ++/* ++ * nsresult nsXPTCStubBase::Stub##n() ++ * Sets register $1 to "methodIndex" and jumps to SharedStub. ++ */ ++#define STUB_ENTRY(n) \ ++nsresult nsXPTCStubBase::Stub##n() \ ++{ \ ++ nsresult result; \ ++__asm__ __volatile__( \ ++ "ldah $29,0($27)\n\t" \ ++ "lda $29,0($29)\n\t" \ ++ "lda $1, "#n"\n\t" \ ++ "br $31, $SharedStub..ng\n\t" \ ++ "mov $0, %0\n\t" \ ++ : "=r" (result) \ ++ ); \ ++ return result; \ ++} ++#endif ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" ++ diff --git a/www/libxul/files/patch-xptcall-amd64 b/www/libxul/files/patch-xptcall-amd64 new file mode 100644 index 000000000000..3227cad02182 --- /dev/null +++ b/www/libxul/files/patch-xptcall-amd64 @@ -0,0 +1,386 @@ +--- /dev/null Wed Dec 31 16:00:00 1969 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_freebsd.cpp Thu Oct 16 22:59:43 2003 +@@ -0,0 +1,174 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++#include "xptcprivate.h" ++ ++// 6 integral parameters are passed in registers ++const PRUint32 GPR_COUNT = 6; ++ ++// 8 floating point parameters are passed in SSE registers ++const PRUint32 FPR_COUNT = 8; ++ ++// Remember that these 'words' are 64-bit long ++static inline void ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant * s, ++ PRUint32 & nr_gpr, PRUint32 & nr_fpr, PRUint32 & nr_stack) ++{ ++ nr_gpr = 1; // skip one GP register for 'that' ++ nr_fpr = 0; ++ nr_stack = 0; ++ ++ /* Compute number of eightbytes of class MEMORY. */ ++ for (uint32 i = 0; i < paramCount; i++, s++) { ++ if (!s->IsPtrData() ++ && (s->type == nsXPTType::T_FLOAT || s->type == nsXPTType::T_DOUBLE)) { ++ if (nr_fpr < FPR_COUNT) ++ nr_fpr++; ++ else ++ nr_stack++; ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ nr_gpr++; ++ else ++ nr_stack++; ++ } ++ } ++} ++ ++static void ++invoke_copy_to_stack(PRUint64 * d, PRUint32 paramCount, nsXPTCVariant * s, ++ PRUint64 * gpregs, double * fpregs) ++{ ++ PRUint32 nr_gpr = 1; // skip one GP register for 'that' ++ PRUint32 nr_fpr = 0; ++ PRUint64 value; ++ ++ for (uint32 i = 0; i < paramCount; i++, s++) { ++ if (s->IsPtrData()) ++ value = (PRUint64) s->ptr; ++ else { ++ switch (s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: value = s->val.i8; break; ++ case nsXPTType::T_I16: value = s->val.i16; break; ++ case nsXPTType::T_I32: value = s->val.i32; break; ++ case nsXPTType::T_I64: value = s->val.i64; break; ++ case nsXPTType::T_U8: value = s->val.u8; break; ++ case nsXPTType::T_U16: value = s->val.u16; break; ++ case nsXPTType::T_U32: value = s->val.u32; break; ++ case nsXPTType::T_U64: value = s->val.u64; break; ++ case nsXPTType::T_BOOL: value = s->val.b; break; ++ case nsXPTType::T_CHAR: value = s->val.c; break; ++ case nsXPTType::T_WCHAR: value = s->val.wc; break; ++ default: value = (PRUint64) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (nr_fpr < FPR_COUNT) ++ fpregs[nr_fpr++] = s->val.d; ++ else { ++ *((double *)d) = s->val.d; ++ d++; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (nr_fpr < FPR_COUNT) ++ // The value in %xmm register is already prepared to ++ // be retrieved as a float. Therefore, we pass the ++ // value verbatim, as a double without conversion. ++ fpregs[nr_fpr++] = s->val.d; ++ else { ++ *((float *)d) = s->val.f; ++ d++; ++ } ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ gpregs[nr_gpr++] = value; ++ else ++ *d++ = value; ++ } ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports * that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant * params) ++{ ++ PRUint32 nr_gpr, nr_fpr, nr_stack; ++ invoke_count_words(paramCount, params, nr_gpr, nr_fpr, nr_stack); ++ ++ // Stack, if used, must be 16-bytes aligned ++ if (nr_stack) ++ nr_stack = (nr_stack + 1) & ~1; ++ ++ // Load parameters to stack, if necessary ++ PRUint64 *stack = (PRUint64 *) __builtin_alloca(nr_stack * 8); ++ PRUint64 gpregs[GPR_COUNT]; ++ double fpregs[FPR_COUNT]; ++ invoke_copy_to_stack(stack, paramCount, params, gpregs, fpregs); ++ ++ // Load FPR registers from fpregs[] ++ register double d0 asm("xmm0"); ++ register double d1 asm("xmm1"); ++ register double d2 asm("xmm2"); ++ register double d3 asm("xmm3"); ++ register double d4 asm("xmm4"); ++ register double d5 asm("xmm5"); ++ register double d6 asm("xmm6"); ++ register double d7 asm("xmm7"); ++ ++ switch (nr_fpr) { ++#define ARG_FPR(N) \ ++ case N+1: d##N = fpregs[N]; ++ ARG_FPR(7); ++ ARG_FPR(6); ++ ARG_FPR(5); ++ ARG_FPR(4); ++ ARG_FPR(3); ++ ARG_FPR(2); ++ ARG_FPR(1); ++ ARG_FPR(0); ++ case 0:; ++#undef ARG_FPR ++ } ++ ++ // Load GPR registers from gpregs[] ++ register PRUint64 a0 asm("rdi"); ++ register PRUint64 a1 asm("rsi"); ++ register PRUint64 a2 asm("rdx"); ++ register PRUint64 a3 asm("rcx"); ++ register PRUint64 a4 asm("r8"); ++ register PRUint64 a5 asm("r9"); ++ ++ switch (nr_gpr) { ++#define ARG_GPR(N) \ ++ case N+1: a##N = gpregs[N]; ++ ARG_GPR(5); ++ ARG_GPR(4); ++ ARG_GPR(3); ++ ARG_GPR(2); ++ ARG_GPR(1); ++ case 1: a0 = (PRUint64) that; ++ case 0:; ++#undef ARG_GPR ++ } ++ ++ // Ensure that assignments to SSE registers won't be optimized away ++ asm("" :: ++ "x" (d0), "x" (d1), "x" (d2), "x" (d3), ++ "x" (d4), "x" (d5), "x" (d6), "x" (d7)); ++ ++ // Get pointer to method ++ PRUint64 methodAddress = *((PRUint64 *)that); ++ methodAddress += 8 * methodIndex; ++ methodAddress = *((PRUint64 *)methodAddress); ++ ++ typedef PRUint32 (*Method)(PRUint64, PRUint64, PRUint64, PRUint64, PRUint64, PRUint64); ++ PRUint32 result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5); ++ return result; ++} +--- /dev/null Wed Dec 31 16:00:00 1969 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_freebsd.cpp Thu Oct 16 23:01:08 2003 +@@ -0,0 +1,206 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The Linux/x86-64 ABI passes the first 6 integral parameters and the ++// first 8 floating point parameters in registers (rdi, rsi, rdx, rcx, ++// r8, r9 and xmm0-xmm7), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. ++ ++const PRUint32 PARAM_BUFFER_COUNT = 16; ++const PRUint32 GPR_COUNT = 6; ++const PRUint32 FPR_COUNT = 8; ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gpregs[]' contains the arguments passed in integer registers ++// - 'fpregs[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase * self, PRUint32 methodIndex, ++ PRUint64 * args, PRUint64 * gpregs, double *fpregs) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint64* ap = args; ++ PRUint32 nr_gpr = 1; // skip one GPR register for 'that' ++ PRUint32 nr_fpr = 0; ++ PRUint64 value; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (nr_fpr < FPR_COUNT) ++ dp->val.d = fpregs[nr_fpr++]; ++ else ++ dp->val.d = *(double*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (nr_fpr < FPR_COUNT) ++ // The value in %xmm register is already prepared to ++ // be retrieved as a float. Therefore, we pass the ++ // value verbatim, as a double without conversion. ++ dp->val.d = *(double*) ap++; ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ value = gpregs[nr_gpr++]; ++ else ++ value = *ap++; ++ } ++ ++ if (param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) value; ++ continue; ++ } ++ ++ switch (type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) value; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) value; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) value; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) value; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) value; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) value; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) value; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) value; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) value; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) value; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) value; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++// Linux/x86-64 uses gcc >= 3.1 ++#define STUB_ENTRY(n) \ ++asm(".section \".text\"\n\t" \ ++ ".align 2\n\t" \ ++ ".if " #n " < 10\n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 1000\n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \ ++ ".else\n\t" \ ++ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \ ++ ".endif\n\t" \ ++ "movl $" #n ", %eax\n\t" \ ++ "jmp SharedStub\n\t" \ ++ ".if " #n " < 10\n\t" \ ++ ".size _ZN14nsXPTCStubBase5Stub" #n "Ev,.-_ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".size _ZN14nsXPTCStubBase6Stub" #n "Ev,.-_ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".else\n\t" \ ++ ".size _ZN14nsXPTCStubBase7Stub" #n "Ev,.-_ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".endif"); ++ ++// static nsresult SharedStub(PRUint32 methodIndex) ++asm(".section \".text\"\n\t" ++ ".align 2\n\t" ++ ".type SharedStub,@function\n\t" ++ "SharedStub:\n\t" ++ // make room for gpregs (48), fpregs (64) ++ "pushq %rbp\n\t" ++ "movq %rsp,%rbp\n\t" ++ "subq $112,%rsp\n\t" ++ // save GP registers ++ "movq %rdi,-112(%rbp)\n\t" ++ "movq %rsi,-104(%rbp)\n\t" ++ "movq %rdx, -96(%rbp)\n\t" ++ "movq %rcx, -88(%rbp)\n\t" ++ "movq %r8 , -80(%rbp)\n\t" ++ "movq %r9 , -72(%rbp)\n\t" ++ "leaq -112(%rbp),%rcx\n\t" ++ // save FP registers ++ "movsd %xmm0,-64(%rbp)\n\t" ++ "movsd %xmm1,-56(%rbp)\n\t" ++ "movsd %xmm2,-48(%rbp)\n\t" ++ "movsd %xmm3,-40(%rbp)\n\t" ++ "movsd %xmm4,-32(%rbp)\n\t" ++ "movsd %xmm5,-24(%rbp)\n\t" ++ "movsd %xmm6,-16(%rbp)\n\t" ++ "movsd %xmm7, -8(%rbp)\n\t" ++ "leaq -64(%rbp),%r8\n\t" ++ // rdi has the 'self' pointer already ++ "movl %eax,%esi\n\t" ++ "leaq 16(%rbp),%rdx\n\t" ++ "call PrepareAndDispatch\n\t" ++ "leave\n\t" ++ "ret\n\t" ++ ".size SharedStub,.-SharedStub"); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" ++ ++#else ++#error "can't find a compiler to use" ++#endif /* __GNUC__ */ diff --git a/www/libxul/files/patch-xptcall-sparc64 b/www/libxul/files/patch-xptcall-sparc64 new file mode 100644 index 000000000000..9599a8a71336 --- /dev/null +++ b/www/libxul/files/patch-xptcall-sparc64 @@ -0,0 +1,327 @@ +--- /dev/null Mon May 26 13:22:00 2003 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp Mon May 26 04:12:55 2003 +@@ -0,0 +1,123 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- ++ * ++ * The contents of this file are subject to the Mozilla Public ++ * License Version 1.1 (the "License"); you may not use this file ++ * except in compliance with the License. You may obtain a copy of ++ * the License at http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS ++ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++ * implied. See the License for the specific language governing ++ * rights and limitations under the License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is Netscape ++ * Communications Corporation. Portions created by Netscape are ++ * Copyright (C) 2001 Netscape Communications Corporation. All ++ * Rights Reserved. ++ * ++ * Contributor(s): ++ * Stuart Parmenter <pavlov@netscape.com> ++ */ ++ ++/* Implement shared vtbl methods. */ ++ ++#include "xptcprivate.h" ++ ++#if defined(sparc) || defined(__sparc__) ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, PRUint64 methodIndex, PRUint64* args) ++{ ++ ++#define PARAM_BUFFER_COUNT 16 ++ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint8 paramCount; ++ PRUint8 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no interface info"); ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ ++ PRUint64* ap = args; ++ for(i = 0; i < paramCount; i++, ap++) ++ { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if(param.IsOut() || !type.IsArithmetic()) ++ { ++ dp->val.p = (void*) *ap; ++ continue; ++ } ++ // else ++ switch(type) ++ { ++ case nsXPTType::T_I8 : dp->val.i8 = *((PRInt64*) ap); break; ++ case nsXPTType::T_I16 : dp->val.i16 = *((PRInt64*) ap); break; ++ case nsXPTType::T_I32 : dp->val.i32 = *((PRInt64*) ap); break; ++ case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); break; ++ case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*) ap); break; ++ case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) ap); break; ++ case nsXPTType::T_U8 : dp->val.u8 = *((PRUint64*) ap); break; ++ case nsXPTType::T_U16 : dp->val.u16 = *((PRUint64*)ap); break; ++ case nsXPTType::T_U32 : dp->val.u32 = *((PRUint64*)ap); break; ++ case nsXPTType::T_FLOAT : dp->val.f = ((float*) ap)[1]; break; ++ case nsXPTType::T_BOOL : dp->val.b = *((PRInt64*) ap); break; ++ case nsXPTType::T_CHAR : dp->val.c = *((PRUint64*) ap); break; ++ case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt64*) ap); break; ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if(dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++extern "C" int SharedStub(int, int*); ++ ++#define STUB_ENTRY(n) \ ++nsresult nsXPTCStubBase::Stub##n() \ ++{ \ ++ int dummy; /* defeat tail-call optimization */ \ ++ return SharedStub(n, &dummy); \ ++} ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" ++ ++#endif /* sparc || __sparc__ */ +--- /dev/null Mon May 26 13:22:00 2003 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s Mon May 26 04:06:09 2003 +@@ -0,0 +1,104 @@ ++/* -*- Mode: asm; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- ++ * ++ * The contents of this file are subject to the Mozilla Public ++ * License Version 1.1 (the "License"); you may not use this file ++ * except in compliance with the License. You may obtain a copy of ++ * the License at http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS ++ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++ * implied. See the License for the specific language governing ++ * rights and limitations under the License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is Netscape ++ * Communications Corporation. Portions created by Netscape are ++ * Copyright (C) 2001 Netscape Communications Corporation. All ++ * Rights Reserved. ++ * ++ * Contributor(s): ++ * Stuart Parmenter <pavlov@netscape.com> ++ * Chris Seawood <cls@seawood.org> ++ */ ++ ++/* ++ Platform specific code to invoke XPCOM methods on native objects ++ for sparcv9 Solaris. ++ ++ See the SPARC Compliance Definition (SCD) Chapter 3 ++ for more information about what is going on here, including ++ the use of BIAS (0x7ff). ++ The SCD is available from http://www.sparc.com/. ++*/ ++ ++ .global XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex, #function ++ ++/* ++ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant* params); ++ ++*/ ++XPTC_InvokeByIndex: ++ save %sp,-(128 + 64),%sp ! room for the register window and ++ ! struct pointer, rounded up to 0 % 64 ++ sll %i2,4,%l0 ! assume the worst case ++ ! paramCount * 2 * 8 bytes ++ cmp %l0, 0 ! are there any args? If not, ++ be .invoke ! no need to copy args to stack ++ nop ++ ++ sub %sp,%l0,%sp ! create the additional stack space ++ add %sp,0x7ff+136,%o0 ! step past the register window, the ++ ! struct result pointer and the 'this' slot ++ mov %i2,%o1 ! paramCount ++ call invoke_copy_to_stack ++ mov %i3,%o2 ! params ++ ++! ++! load arguments from stack into the outgoing registers ++! BIAS is 0x7ff (2047) ++! ++ ++! load the %o1..5 64bit (extended word) output registers registers ++ ldx [%sp + 0x7ff + 136],%o1 ! %i1 ++ ldx [%sp + 0x7ff + 144],%o2 ! %i2 ++ ldx [%sp + 0x7ff + 152],%o3 ! %i3 ++ ldx [%sp + 0x7ff + 160],%o4 ! %i4 ++ ldx [%sp + 0x7ff + 168],%o5 ! %i5 ++ ++! load the even number double registers starting with %d2 ++ ldd [%sp + 0x7ff + 136],%f2 ++ ldd [%sp + 0x7ff + 144],%f4 ++ ldd [%sp + 0x7ff + 152],%f6 ++ ldd [%sp + 0x7ff + 160],%f8 ++ ldd [%sp + 0x7ff + 168],%f10 ++ ldd [%sp + 0x7ff + 176],%f12 ++ ldd [%sp + 0x7ff + 184],%f14 ++ ldd [%sp + 0x7ff + 192],%f16 ++ ldd [%sp + 0x7ff + 200],%f18 ++ ldd [%sp + 0x7ff + 208],%f20 ++ ldd [%sp + 0x7ff + 216],%f22 ++ ldd [%sp + 0x7ff + 224],%f24 ++ ldd [%sp + 0x7ff + 232],%f26 ++ ldd [%sp + 0x7ff + 240],%f28 ++ ldd [%sp + 0x7ff + 248],%f30 ++ ++! ++! calculate the target address from the vtable ++! ++.invoke: ++ sll %i1,3,%l0 ! index *= 8 ++! add %l0,16,%l0 ! there are 2 extra entries in the vTable (16bytes) ++ ldx [%i0],%l1 ! *that --> address of vtable ++ ldx [%l0 + %l1],%l0 ! that->vtable[index * 8 + 16] --> address ++ ++ jmpl %l0,%o7 ! call the routine ++ mov %i0,%o0 ! move 'this' pointer to out register ++ ++ mov %o0,%i0 ! propagate return value ++ ret ++ restore ++ ++ .size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex +--- /dev/null Mon May 26 14:00:00 2003 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp Mon May 26 14:00:49 2003 +@@ -0,0 +1,91 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- ++ * ++ * The contents of this file are subject to the Mozilla Public ++ * License Version 1.1 (the "License"); you may not use this file ++ * except in compliance with the License. You may obtain a copy of ++ * the License at http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS ++ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++ * implied. See the License for the specific language governing ++ * rights and limitations under the License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is Netscape ++ * Communications Corporation. Portions created by Netscape are ++ * Copyright (C) 2001 Netscape Communications Corporation. All ++ * Rights Reserved. ++ * ++ * Contributor(s): ++ * Stuart Parmenter <pavlov@netscape.com> ++ * Chris Seawood <cls@seawood.org> ++ */ ++ ++ ++/* Platform specific code to invoke XPCOM methods on native objects */ ++ ++#include "xptcprivate.h" ++ ++#if !defined(__sparc) && !defined(__sparc__) ++#error "This code is for Sparc only" ++#endif ++ ++/* Prototype specifies unmangled function name */ ++extern "C" PRUint64 ++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s); ++ ++extern "C" PRUint64 ++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s) ++{ ++ /* ++ We need to copy the parameters for this function to locals and use them ++ from there since the parameters occupy the same stack space as the stack ++ we're trying to populate. ++ */ ++ PRUint64 *l_d = d; ++ nsXPTCVariant *l_s = s; ++ PRUint64 l_paramCount = paramCount; ++ PRUint64 regCount = 0; // return the number of registers to load from the stack ++ ++ for(PRUint64 i = 0; i < l_paramCount; i++, l_d++, l_s++) ++ { ++ if (regCount < 5) regCount++; ++ ++ if (l_s->IsPtrData()) ++ { ++ *l_d = (PRUint64)l_s->ptr; ++ continue; ++ } ++ switch (l_s->type) ++ { ++ case nsXPTType::T_I8 : *((PRInt64*)l_d) = l_s->val.i8; break; ++ case nsXPTType::T_I16 : *((PRInt64*)l_d) = l_s->val.i16; break; ++ case nsXPTType::T_I32 : *((PRInt64*)l_d) = l_s->val.i32; break; ++ case nsXPTType::T_I64 : *((PRInt64*)l_d) = l_s->val.i64; break; ++ ++ case nsXPTType::T_U8 : *((PRUint64*)l_d) = l_s->val.u8; break; ++ case nsXPTType::T_U16 : *((PRUint64*)l_d) = l_s->val.u16; break; ++ case nsXPTType::T_U32 : *((PRUint64*)l_d) = l_s->val.u32; break; ++ case nsXPTType::T_U64 : *((PRUint64*)l_d) = l_s->val.u64; break; ++ ++ /* in the case of floats, we want to put the bits in to the ++ 64bit space right justified... floats in the paramter array on ++ sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip ++ the space that would be occupied by %f0, %f2, etc. ++ */ ++ case nsXPTType::T_FLOAT : *(((float*)l_d) + 1) = l_s->val.f; break; ++ case nsXPTType::T_DOUBLE: *((double*)l_d) = l_s->val.d; break; ++ case nsXPTType::T_BOOL : *((PRInt64*)l_d) = l_s->val.b; break; ++ case nsXPTType::T_CHAR : *((PRUint64*)l_d) = l_s->val.c; break; ++ case nsXPTType::T_WCHAR : *((PRInt64*)l_d) = l_s->val.wc; break; ++ ++ default: ++ // all the others are plain pointer types ++ *((void**)l_d) = l_s->val.p; ++ break; ++ } ++ } ++ ++ return regCount; ++} diff --git a/www/libxul/files/patch-xulrunner_app_mozilla.in b/www/libxul/files/patch-xulrunner_app_mozilla.in new file mode 100644 index 000000000000..1839a79d7d0a --- /dev/null +++ b/www/libxul/files/patch-xulrunner_app_mozilla.in @@ -0,0 +1,18 @@ +--- xulrunner/app/mozilla.in.orig Wed Oct 11 18:25:16 2006 ++++ xulrunner/app/mozilla.in Wed Oct 11 18:25:48 2006 +@@ -193,12 +193,12 @@ + done #others arg + + #???: needs check if othersopt begin with -* ? +-if [ `expr "${_optLast}" : '.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then ++if [ `expr X"${_optLast}" : 'X.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then + # Last argument seems to be a local file/directory + # Check, if it is absolutely specified (ie. /home/foo/file vs. ./file) + # If it is just "relatively" (./file) specified, make it absolutely +- [ `expr "${_optLast}" : '/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}" +-elif [ `expr "${_optLast}" : '.*:/.*'` -gt 0 -o -n "${_optOthers}" ]; then #???? like before... ++ [ `expr -e X"${_optLast}" : '/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}" ++elif [ `expr -e X"${_optLast}" : '.*:/.*'` -gt 0 -o -n X"${_optOthers}" ]; then #???? like before... + _NEW_WINDOW=1 + fi + diff --git a/www/libxul/files/patch-xulrunner_installer_libxul.pc.in b/www/libxul/files/patch-xulrunner_installer_libxul.pc.in new file mode 100644 index 000000000000..690ce9ce955d --- /dev/null +++ b/www/libxul/files/patch-xulrunner_installer_libxul.pc.in @@ -0,0 +1,11 @@ +--- xulrunner/installer/libxul.pc.in.orig 2007-08-03 10:46:28.000000000 -0400 ++++ xulrunner/installer/libxul.pc.in 2009-03-29 15:17:17.000000000 -0400 +@@ -12,5 +12,5 @@ Name: libxul + Description: The Mozilla Runtime and Embedding Engine + Version: %MOZILLA_VERSION% + Requires: %NSPR_NAME% >= %NSPR_VERSION% +-Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom +-Cflags: -I${includedir}/${includetype} -fshort-wchar +\ No newline at end of file ++Libs: -L${sdkdir}/lib -L%%MOZ_LIBDIR%% -lxpcomglue_s -lxul -lxpcom ++Cflags: -I${includedir}/${includetype} -fshort-wchar diff --git a/www/libxul/pkg-descr b/www/libxul/pkg-descr new file mode 100644 index 000000000000..a4c33d7dfb77 --- /dev/null +++ b/www/libxul/pkg-descr @@ -0,0 +1,7 @@ +Mozilla runtime package that can be used to bootstrap XUL+XPCOM applications +that are as rich as Firefox and Thunderbird. It will provide mechanisms for +installing, upgrading, and uninstalling these applications. XULRunner will +also provide libxul, a solution which allows the embedding of Mozilla +technologies in other projects and products. + +WWW: http://developer.mozilla.org/en/docs/XULRunner diff --git a/www/mozilla/Makefile b/www/mozilla/Makefile index 21dd5873e51e..366d8379734e 100644 --- a/www/mozilla/Makefile +++ b/www/mozilla/Makefile @@ -3,11 +3,11 @@ # Whom: eivind/dima/jseger # # $FreeBSD$ -# $MCom: ports-stable/www/mozilla/Makefile,v 1.22 2008/08/07 04:42:36 mezz Exp $ +# $MCom: ports/www/mozilla/Makefile,v 1.55 2009/04/09 03:12:52 mezz Exp $ PORTNAME= mozilla PORTVERSION= 1.7.13 -PORTREVISION?= 10 +PORTREVISION?= 11 PORTEPOCH= 2 CATEGORIES?= www MASTER_SITES= ${MASTER_SITE_MOZILLA} \ @@ -24,6 +24,7 @@ DEPRECATED= The mozilla team has shifted the development branch of mozilla to \ seamonkey, this port is outdated and has many vulnerabilities. \ Please consider using www/seamonkey or www/firefox instead. +CONFLICTS= libxul-[0-9]* MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/dist/bin USE_GMAKE= yes USE_BZIP2= yes diff --git a/www/mozilla/pkg-deinstall.in b/www/mozilla/pkg-deinstall.in index ea9cd3dcb04a..2544ee4ed3a2 100644 --- a/www/mozilla/pkg-deinstall.in +++ b/www/mozilla/pkg-deinstall.in @@ -1,6 +1,6 @@ #!/bin/sh # -# $MCom: ports-stable/www/mozilla/pkg-deinstall.in,v 1.13 2008/07/30 15:56:57 mezz Exp $ +# $MCom: ports/www/mozilla/pkg-deinstall.in,v 1.25 2008/07/26 19:07:07 ahze Exp $ # # Date created: Mon Nov 29, 2003 # Whom: Thierry Thomas (<thierry@pompo.net>) diff --git a/www/mozilla/pkg-install.in b/www/mozilla/pkg-install.in index 6f787fe716a1..b2c8186701c4 100644 --- a/www/mozilla/pkg-install.in +++ b/www/mozilla/pkg-install.in @@ -1,6 +1,6 @@ #!/bin/sh # -# $MCom: ports-stable/www/mozilla/pkg-install.in,v 1.15 2008/08/04 05:01:00 mezz Exp $ +# $MCom: ports/www/mozilla/pkg-install.in,v 1.26 2008/08/04 16:58:03 mezz Exp $ # # Date created: Mon Nov 29, 2003 # Whom: Thierry Thomas (<thierry@pompo.net>) |