summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Glagolev2011-12-20 23:41:50 +0400
committerVlad Glagolev2011-12-20 23:41:50 +0400
commit4a2f3f68ad26cc5df4d4d050688919a343b0b033 (patch)
treeb99967dd04a0444c9ad52c36344c0b296df0f2cf
parentd50846306ae3f7334ae83f6a8f22c5f141c30ed4 (diff)
seamonkey: => 2.6
-rwxr-xr-xhttp/seamonkey/CONFIGURE11
-rwxr-xr-xhttp/seamonkey/DEPENDS2
-rwxr-xr-xhttp/seamonkey/DETAILS8
-rw-r--r--http/seamonkey/HISTORY7
-rwxr-xr-xhttp/seamonkey/PRE_BUILD1
-rw-r--r--http/seamonkey/cursor.patch97
6 files changed, 120 insertions, 6 deletions
diff --git a/http/seamonkey/CONFIGURE b/http/seamonkey/CONFIGURE
index 238dfe49f0..33c98494fc 100755
--- a/http/seamonkey/CONFIGURE
+++ b/http/seamonkey/CONFIGURE
@@ -50,10 +50,19 @@ config_query_option SEAMONKEY_OPTS "Use system installed cairo?" n \
"--enable-system-cairo" \
"--disable-system-cairo" &&
-config_query_option SEAMONKEY_OPTS "Enable Pango support for complex font rendering?" n \
+config_query_option SEAMONKEY_OPTS "Enable Pango support for complex font rendering?" y \
"--enable-pango" \
"--disable-pango" &&
+if list_find "$SEAMONKEY_OPTS" "--disable-pango"; then
+ message "${MESSAGE_COLOR}"
+ message "FreeType 2 support is broken. Forcing '--enable-pango' configure option."
+ message "${DEFAULT_COLOR}"
+
+ list_add "SEAMONKEY_OPTS" "--enable-pango" &&
+ list_remove "SEAMONKEY_OPTS" "--disable-pango"
+fi &&
+
if list_find "$SEAMONKEY_OPTS" "--enable-mailnews"; then
config_query_option SEAMONKEY_OPTS "Enable LDAP support?" n \
"--enable-ldap" \
diff --git a/http/seamonkey/DEPENDS b/http/seamonkey/DEPENDS
index 090e253b88..9587d7d8dc 100755
--- a/http/seamonkey/DEPENDS
+++ b/http/seamonkey/DEPENDS
@@ -3,7 +3,7 @@ depends gtk+2 &&
depends libidl &&
depends libxft &&
depends nspr &&
-depends -sub 3.12.x nss &&
+depends -sub 3.13.x nss &&
depends -sub "TSAFE SECURE_DELETE ENABLE_UNLOCK_NOTIFY" sqlite &&
depends perl &&
depends zip &&
diff --git a/http/seamonkey/DETAILS b/http/seamonkey/DETAILS
index b467b07a49..531129cdc3 100755
--- a/http/seamonkey/DETAILS
+++ b/http/seamonkey/DETAILS
@@ -1,11 +1,11 @@
SPELL=seamonkey
- VERSION=2.5
+ VERSION=2.6
SOURCE=$SPELL-$VERSION.source.tar.bz2
- SOURCE_HASH=sha512:803259425ab0e75cce61c33f37873a8765bbc2b0e6c70aa1b9b21a9947a732c3dbd4a033a08d779a9a830c990fe30c5ed37b0c36c890722b31319df78d9b9ef1
+ SOURCE_HASH=sha512:37346114048687068d17701853349a2295c3250465aa546f0ef6429862e2cc345feb2c92528cb4d328dc3162a94b29d0557bee1dd61748b6bf8064e478320956
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
SOURCE_URI=seamonkey/releases/$VERSION/source/$SOURCE
- SOURCE_URL[0]=http://releases.mozilla.org/pub/mozilla.org/$SOURCE_URI
- SOURCE_URL[1]=ftp://ftp.mozilla.org/pub/mozilla.org/$SOURCE_URI
+ SOURCE_URL[0]=ftp://ftp.mozilla.org/pub/mozilla.org/$SOURCE_URI
+ SOURCE_URL[1]=http://releases.mozilla.org/pub/mozilla.org/$SOURCE_URI
WEB_SITE=http://www.seamonkey-project.org/
SECURITY_PATCH=36
TMPFS=off
diff --git a/http/seamonkey/HISTORY b/http/seamonkey/HISTORY
index e08817a737..47133e23b6 100644
--- a/http/seamonkey/HISTORY
+++ b/http/seamonkey/HISTORY
@@ -1,3 +1,10 @@
+2011-12-20 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 2.6; swapped source urls
+ * DEPENDS: requires nss 3.13 now
+ * CONFIGURE: pango is required since now
+ * PRE_BUILD: apply the patch
+ * cursor.patch: fixes activity cursor appearance (mozilla bug #709259)
+
2011-12-13 Vlad Glagolev <stealth@sourcemage.org>
* CONFIGURE: continue handling of the legacy
diff --git a/http/seamonkey/PRE_BUILD b/http/seamonkey/PRE_BUILD
index a0bb413f7b..63344af4d4 100755
--- a/http/seamonkey/PRE_BUILD
+++ b/http/seamonkey/PRE_BUILD
@@ -4,4 +4,5 @@ unpack_file '' &&
cd comm-release &&
patch -p0 < "$SPELL_DIRECTORY/ldap.patch" &&
+patch -p0 < "$SPELL_DIRECTORY/cursor.patch" &&
patch -p0 < "$SPELL_DIRECTORY/mailnews.patch"
diff --git a/http/seamonkey/cursor.patch b/http/seamonkey/cursor.patch
new file mode 100644
index 0000000000..59eab8c613
--- /dev/null
+++ b/http/seamonkey/cursor.patch
@@ -0,0 +1,97 @@
+--- mozilla/widget/src/gtk2/nsGtkCursors.h.orig
++++ mozilla/widget/src/gtk2/nsGtkCursors.h
+@@ -41,16 +41,17 @@
+ #ifndef nsGtkCursors_h__
+ #define nsGtkCursors_h__
+
+ typedef struct {
+ const unsigned char *bits;
+ const unsigned char *mask_bits;
+ int hot_x;
+ int hot_y;
++ const char *hash;
+ } nsGtkCursor;
+
+ /* MOZ_CURSOR_HAND_GRAB */
+ static const unsigned char moz_hand_grab_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
+ 0x60, 0x39, 0x00, 0x00, 0x90, 0x49, 0x00, 0x00, 0x90, 0x49, 0x01, 0x00,
+ 0x20, 0xc9, 0x02, 0x00, 0x20, 0x49, 0x02, 0x00, 0x58, 0x40, 0x02, 0x00,
+ 0x64, 0x00, 0x02, 0x00, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00,
+@@ -410,26 +411,28 @@ enum {
+ MOZ_CURSOR_ZOOM_OUT,
+ MOZ_CURSOR_NOT_ALLOWED,
+ MOZ_CURSOR_VERTICAL_TEXT,
+ MOZ_CURSOR_NESW_RESIZE,
+ MOZ_CURSOR_NWSE_RESIZE,
+ MOZ_CURSOR_NONE
+ };
+
+-// create custom pixmap cursor
++// create custom pixmap cursor. The hash values must stay in sync with the
++// bitmap data above. To see the hash function, have a look at XcursorImageHash
++// in libXcursor
+ static const nsGtkCursor GtkCursors[] = {
+- { moz_hand_grab_bits, moz_hand_grab_mask_bits, 10, 10 },
+- { moz_hand_grabbing_bits, moz_hand_grabbing_mask_bits, 10, 10 },
+- { moz_copy_bits, moz_copy_mask_bits, 2, 2 },
+- { moz_alias_bits, moz_alias_mask_bits, 2, 2 },
+- { moz_menu_bits, moz_menu_mask_bits, 2, 2 },
+- { moz_spinning_bits, moz_spinning_mask_bits, 2, 2 },
+- { moz_zoom_in_bits, moz_zoom_in_mask_bits, 6, 6 },
+- { moz_zoom_out_bits, moz_zoom_out_mask_bits, 6, 6 },
+- { moz_not_allowed_bits, moz_not_allowed_mask_bits, 9, 9 },
+- { moz_vertical_text_bits, moz_vertical_text_mask_bits, 8, 4 },
+- { moz_nesw_resize_bits, moz_nesw_resize_mask_bits, 8, 8 },
+- { moz_nwse_resize_bits, moz_nwse_resize_mask_bits, 8, 8 },
+- { moz_none_bits, moz_none_mask_bits, 0, 0 }
++ { moz_hand_grab_bits, moz_hand_grab_mask_bits, 10, 10, "5aca4d189052212118709018842178c0" },
++ { moz_hand_grabbing_bits, moz_hand_grabbing_mask_bits, 10, 10, "208530c400c041818281048008011002" },
++ { moz_copy_bits, moz_copy_mask_bits, 2, 2, "08ffe1cb5fe6fc01f906f1c063814ccf" },
++ { moz_alias_bits, moz_alias_mask_bits, 2, 2, "0876e1c15ff2fc01f906f1c363074c0f" },
++ { moz_menu_bits, moz_menu_mask_bits, 2, 2, "08ffe1e65f80fcfdf9fff11263e74c48" },
++ { moz_spinning_bits, moz_spinning_mask_bits, 2, 2, "08e8e1c95fe2fc01f976f1e063a24ccd" },
++ { moz_zoom_in_bits, moz_zoom_in_mask_bits, 6, 6, "f41c0e382c94c0958e07017e42b00462" },
++ { moz_zoom_out_bits, moz_zoom_out_mask_bits, 6, 6, "f41c0e382c97c0938e07017e42800402" },
++ { moz_not_allowed_bits, moz_not_allowed_mask_bits, 9, 9, "03b6e0fcb3499374a867d041f52298f0" },
++ { moz_vertical_text_bits, moz_vertical_text_mask_bits, 8, 4, "048008013003cff3c00c801001200000" },
++ { moz_nesw_resize_bits, moz_nesw_resize_mask_bits, 8, 8, "50585d75b494802d0151028115016902" },
++ { moz_nwse_resize_bits, moz_nwse_resize_mask_bits, 8, 8, "38c5dff7c7b8962045400281044508d2" },
++ { moz_none_bits, moz_none_mask_bits, 0, 0, NULL }
+ };
+
+ #endif /* nsGtkCursors_h__ */
+--- mozilla/widget/src/gtk2/nsWindow.cpp.orig
++++ mozilla/widget/src/gtk2/nsWindow.cpp
+@@ -5640,19 +5640,27 @@ get_gtk_cursor(nsCursor aCursor)
+ newType = MOZ_CURSOR_NONE;
+ break;
+ default:
+ NS_ASSERTION(aCursor, "Invalid cursor type");
+ gdkcursor = gdk_cursor_new(GDK_LEFT_PTR);
+ break;
+ }
+
+- // if by now we don't have a xcursor, this means we have to make a
+- // custom one
+- if (newType != 0xff) {
++ // If by now we don't have a xcursor, this means we have to make a custom
++ // one. First, we try creating a named cursor based on the hash of our
++ // custom bitmap, as libXcursor has some magic to convert bitmapped cursors
++ // to themed cursors
++ if (newType != 0xFF && GtkCursors[newType].hash) {
++ gdkcursor = gdk_cursor_new_from_name(gdk_display_get_default(),
++ GtkCursors[newType].hash);
++ }
++
++ // If we still don't have a xcursor, we now really create a bitmap cursor
++ if (newType != 0xff && !gdkcursor) {
+ GdkPixbuf * cursor_pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32);
+ if (!cursor_pixbuf)
+ return NULL;
+
+ guchar *data = gdk_pixbuf_get_pixels(cursor_pixbuf);
+
+ // Read data from GtkCursors and compose RGBA surface from 1bit bitmap and mask
+ // GtkCursors bits and mask are 32x32 monochrome bitmaps (1 bit for each pixel)
+