rpms/inkscape/devel inkscape-0.41-64bit.patch, NONE, 1.1 inkscape-gcc4.patch, NONE, 1.1 inkscape.spec, 1.8, 1.9

Jeremy Katz (katzj) fedora-extras-commits at redhat.com
Thu May 26 01:26:33 UTC 2005


Author: katzj

Update of /cvs/extras/rpms/inkscape/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1268

Modified Files:
	inkscape.spec 
Added Files:
	inkscape-0.41-64bit.patch inkscape-gcc4.patch 
Log Message:
* Wed May 25 2005 Jeremy Katz <katzj at redhat.com> - 0.41-4
- add patch for gcc4 problems (ignacio, #156228)
- fix build on 64bit boxes.  sizeof(int) != sizeof(void*)


inkscape-0.41-64bit.patch:

--- NEW FILE inkscape-0.41-64bit.patch ---
--- inkscape-0.41/src/verbs.cpp.64bit	2005-05-25 18:02:32.000000000 -0400
+++ inkscape-0.41/src/verbs.cpp	2005-05-25 18:03:01.000000000 -0400
@@ -1292,7 +1292,7 @@
 void
 DialogVerb::perform (SPAction *action, void * data, void * pdata)
 {
-    if ((int) data != SP_VERB_DIALOG_TOGGLE) {
+    if (GPOINTER_TO_INT(data) != SP_VERB_DIALOG_TOGGLE) {
         // unhide all when opening a new dialog
         inkscape_dialogs_unhide ();
     }
--- inkscape-0.41/src/dialogs/export.cpp.64bit	2005-05-25 18:04:09.000000000 -0400
+++ inkscape-0.41/src/dialogs/export.cpp	2005-05-25 18:05:34.000000000 -0400
@@ -595,7 +595,7 @@
                               GtkObject *base )
 {
     selection_type current_key;
-    current_key = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
 
     if ((current_key == SELECTION_DRAWING || current_key == SELECTION_PAGE) &&
             (SP_DT_SELECTION(SP_ACTIVE_DESKTOP))->isEmpty() == false &&
@@ -606,7 +606,7 @@
     }
     was_empty = (SP_DT_SELECTION(SP_ACTIVE_DESKTOP))->isEmpty();
 
-    current_key = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
 
     if (inkscape &&
             SP_IS_INKSCAPE (inkscape) &&
@@ -627,7 +627,7 @@
                                GtkObject *base )
 {
     selection_type current_key;
-    current_key = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    current_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
 
     switch (current_key) {
         case SELECTION_DRAWING:
@@ -664,8 +664,8 @@
         return;
 
     selection_type key, old_key;
-    key = (selection_type)((int)gtk_object_get_data (GTK_OBJECT (tb), "key"));
-    old_key = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data (GTK_OBJECT (tb), "key")));
+    old_key = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
 
     /* Ignore all "turned off" events unless we're the only active button */
     if (!gtk_toggle_button_get_active (tb) ) {
@@ -1036,7 +1036,7 @@
     g_object_set_data (G_OBJECT (base), "cancel", (gpointer) 0);
 
     /* Setup the values in the document */
-    switch ((selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"))) {
+    switch ((selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")))) {
         case SELECTION_PAGE:
         case SELECTION_DRAWING: {
             SPDocument * doc = SP_ACTIVE_DOCUMENT;
@@ -1229,7 +1229,7 @@
     current_bbox.round(2);
     // std::cout << "Current " << current_bbox;
 
-    this_test[0] = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    this_test[0] = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
     for (int i = 0; i < SELECTION_NUMBER_OF; i++) {
         this_test[i + 1] = test_order[i];
     }
@@ -1298,7 +1298,7 @@
 
     /* We're now using a custom size, not a fixed one */
     /* printf("Detecting state: %s\n", selection_names[key]); */
-    selection_type old = (selection_type)((int)gtk_object_get_data(GTK_OBJECT(base), "selection-type"));
+    selection_type old = (selection_type)(GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(base), "selection-type")));
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gtk_object_get_data(base, selection_names[old])), FALSE);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gtk_object_get_data(base, selection_names[key])), TRUE);
     gtk_object_set_data(GTK_OBJECT(base), "selection-type", (gpointer)key);
--- inkscape-0.41/src/sp-skeleton.cpp.64bit	2005-05-25 17:55:21.000000000 -0400
+++ inkscape-0.41/src/sp-skeleton.cpp	2005-05-25 17:57:24.000000000 -0400
@@ -91,7 +91,7 @@
 static void
 sp_skeleton_init (SPSkeleton *skeleton)
 {
-    debug("0x%08x",(unsigned int)skeleton);
+    debug("0x%08x",GPOINTER_TO_UINT(skeleton));
 }
 
 /*
@@ -103,7 +103,7 @@
 static void
 sp_skeleton_build (SPObject *object, SPDocument *document, SPRepr *repr)
 {
-    debug("0x%08x",(unsigned int)object);
+    debug("0x%08x",GPOINTER_TO_UINT(object));
     if (((SPObjectClass *) skeleton_parent_class)->build)
         ((SPObjectClass *) skeleton_parent_class)->build (object, document, repr);
 
@@ -132,7 +132,7 @@
 static void
 sp_skeleton_release (SPObject *object)
 {
-    debug("0x%08x",(unsigned int)object);
+    debug("0x%08x",GPOINTER_TO_UINT(object));
 
     /* deal with our children and our selves here */
 
@@ -146,7 +146,7 @@
 static void
 sp_skeleton_set (SPObject *object, unsigned int key, const gchar *value)
 {
-    debug("0x%08x %s(%u): '%s'",(unsigned int)object,
+    debug("0x%08x %s(%u): '%s'",GPOINTER_TO_UINT(object),
             sp_attribute_name(key),key,value);
     SPSkeleton * skeleton;
 
@@ -163,7 +163,7 @@
 static void
 sp_skeleton_update(SPObject *object, SPCtx *ctx, guint flags)
 {
-    debug("0x%08x",(unsigned int)object);
+    debug("0x%08x",GPOINTER_TO_UINT(object));
     //SPSkeleton *skeleton = SP_SKELETON(object);
 
     if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG |
@@ -183,7 +183,7 @@
 static SPRepr *
 sp_skeleton_write(SPObject *object, SPRepr *repr, guint flags)
 {
-    debug("0x%08x",(unsigned int)object);
+    debug("0x%08x",GPOINTER_TO_UINT(object));
     //SPSkeleton *skeleton = SP_SKELETON(object);
 
     // Inkscape-only object, not copied during an "plain SVG" dump:
--- inkscape-0.41/src/sp-flowtext.cpp.64bit	2005-05-25 17:52:26.000000000 -0400
+++ inkscape-0.41/src/sp-flowtext.cpp	2005-05-25 17:53:13.000000000 -0400
@@ -673,7 +673,7 @@
                         for (int k = comp->spans[j].l_st; k<comp->spans[j].l_en; k++) {
                             int u4_l = 0, u8_l = comp->letters[k].t_en-comp->letters[k].t_st;
                             for (char *p = &comp->chars[comp->letters[k].t_st]; p && *p; p = g_utf8_next_char(p)) {
-                                int d= ((int)p)-((int)(&comp->chars[0]));
+                                int d= p - (&comp->chars[0]);
                                 d-=comp->letters[k].t_st;
                                 if ( d >= u8_l ) break;
                                 u4_l++;
@@ -703,7 +703,7 @@
                         for (int k = comp->spans[j].l_st; k<comp->spans[j].l_en; k++) {
                             int u4_l = 0, u8_l = comp->letters[k].t_en-comp->letters[k].t_st;
                             for (char *p = &comp->chars [comp->letters[k].t_st]; p && *p; p = g_utf8_next_char(p)) {
-                                int d = ((int)p)-((int)(&comp->chars[0]));
+                                int d = p - (&comp->chars[0]);
                                 d -= comp->letters[k].t_st;
                                 if ( d >= u8_l ) break;
                                 u4_l++;
--- inkscape-0.41/src/livarot/ShapeMisc.cpp.64bit	2005-05-25 18:27:11.000000000 -0400
+++ inkscape-0.41/src/livarot/ShapeMisc.cpp	2005-05-25 18:27:33.000000000 -0400
@@ -386,7 +386,7 @@
         if (askTo < 0 || askTo >= numberOfEdges() ) {
           dadContour=-1;
         } else {
-          dadContour = (int) swdData[askTo].misc;
+	  dadContour = GPOINTER_TO_INT(swdData[askTo].misc);
           dadContour-=1; // pour compenser le decalage
         }
       }
--- inkscape-0.41/src/display/nr-arena-item.cpp.64bit	2005-05-25 18:07:30.000000000 -0400
+++ inkscape-0.41/src/display/nr-arena-item.cpp	2005-05-25 18:07:44.000000000 -0400
@@ -984,7 +984,7 @@
 
 int hash_that(NRArenaItem* owner,int th,int tv)
 {
-  int    res=(int)owner;
+    int    res=GPOINTER_TO_INT(owner);
   res*=17;
   res+=th;
   res*=59;
--- inkscape-0.41/src/libnrtype/FlowStyle.cpp.64bit	2005-05-25 18:16:21.000000000 -0400
+++ inkscape-0.41/src/libnrtype/FlowStyle.cpp	2005-05-25 18:18:57.000000000 -0400
@@ -126,7 +126,7 @@
 		double   sum=0;
 		int      k_pos=0;
 		for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-			int d=((int)p)-((int)iText);
+		    int d=p-iText;
 			if ( d >= iLen ) break;
 			sum+=kern_x[k_pos];
 			k_pos++;
@@ -137,7 +137,7 @@
 		double   min_y=0,max_y=0;
 		int      k_pos=0;
 		for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-			int d=((int)p)-((int)iText);
+		    int d=p-iText;
 			if ( d >= iLen ) break;
 			if ( kern_y[k_pos] < min_y ) min_y=kern_y[k_pos];
 			if ( kern_y[k_pos] > max_y ) max_y=kern_y[k_pos];
@@ -193,7 +193,7 @@
 					double a_k_x=0,a_k_y=0;
 					if ( kern_x ) {
 						for (char* p=iText+kx_st;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							if ( d >= g_en ) break;
 							a_k_x+=kern_x[kx_pos];
 							kx_pos++;
@@ -204,7 +204,7 @@
 						//int gLen=pGlyphs->log_clusters[i];
 						int k_pos=0;
 						for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							a_k_y=kern_y[k_pos];
 							if ( d >= g_st ) break;
 							k_pos++;
@@ -234,7 +234,7 @@
 					double a_k_x=0,a_k_y=0;
 					if ( kern_x ) {
 						for (char* p=iText+kx_st;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							if ( d >= g_en ) break;
 							a_k_x+=kern_x[kx_pos];
 							kx_pos++;
@@ -244,7 +244,7 @@
 					if ( kern_y ) {
 						int k_pos=0;
 						for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							a_k_y=kern_y[k_pos];
 							if ( d >= g_st ) break;
 							k_pos++;
@@ -283,7 +283,7 @@
 					double a_k_x=0,a_k_y=0;
 					if ( kern_x ) {
 						for (char* p=iText+kx_st;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							if ( d >= g_en ) break;
 							a_k_x+=kern_x[kx_pos];
 							kx_pos++;
@@ -294,7 +294,7 @@
 						//int gLen=pGlyphs->log_clusters[i];
 						int k_pos=0;
 						for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							a_k_y=kern_y[k_pos];
 							if ( d >= g_st ) break;
 							k_pos++;
@@ -326,7 +326,7 @@
 					double a_k_x=0,a_k_y=0;
 					if ( kern_x ) {
 						for (char* p=iText+kx_st;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							if ( d >= g_en ) break;
 							a_k_x+=kern_x[kx_pos];
 							kx_pos++;
@@ -336,7 +336,7 @@
 					if ( kern_y ) {
 						int k_pos=0;
 						for (char* p=iText;*p;p=g_utf8_next_char(p)) {
-							int d=((int)p)-((int)iText);
+						    int d=p-iText;
 							a_k_y=kern_y[k_pos];
 							if ( d >= g_st ) break;
 							k_pos++;
--- inkscape-0.41/src/libnrtype/FontFactory.cpp.64bit	2005-05-25 18:12:05.000000000 -0400
+++ inkscape-0.41/src/libnrtype/FontFactory.cpp	2005-05-25 18:12:20.000000000 -0400
@@ -461,7 +461,7 @@
 	if ( loadedFaces.find(who->descr) == loadedFaces.end() ) {
 		// not found
 		char* tc=pango_font_description_to_string(who->descr);
-		g_warning("unrefFace %x=%s: failed\n",(unsigned int)who,tc);
+		g_warning("unrefFace %x=%s: failed\n",GPOINTER_TO_UINT(who),tc);
 		free(tc);
 	} else {
 		loadedFaces.erase(loadedFaces.find(who->descr));
--- inkscape-0.41/src/libnrtype/FlowSrcText.cpp.64bit	2005-05-25 18:12:44.000000000 -0400
+++ inkscape-0.41/src/libnrtype/FlowSrcText.cpp	2005-05-25 18:14:29.000000000 -0400
@@ -65,7 +65,7 @@
 {
 	int ucs4_pos=0;
 	for (char* p=utf8_text;p&&*p;p=g_utf8_next_char(p)) {
-		int d=((int)p)-((int)utf8_text);
+	    int d= p - utf8_text;
 		if ( d >= utf8_pos ) {
 			return ucs4_pos;
 		}
@@ -77,7 +77,7 @@
 {
 	int cur_pos=0;
 	for (char* p=utf8_text;p&&*p;p=g_utf8_next_char(p)) {
-		int d=((int)p)-((int)utf8_text);
+	    int d=p-utf8_text;
 		if ( cur_pos >= ucs4_pos ) {
 			return d;
 		}
@@ -198,7 +198,7 @@
 		int   src_length=src[i].txt->utf8_length;
 		for (char* p=src_text;p&&*p;p=g_utf8_next_char(p)) {
 			gunichar  c=g_utf8_get_char(p);
-			int       d=((int)p)-((int)src_text);
+			int       d=p-src_text;
 			bool      add_it=true;
 			if ( g_unichar_iscntrl(c) ) {
 				add_it=false;
@@ -226,7 +226,7 @@
 		int   src_length=src[i].txt->utf8_length;
 		for (char* p=src_text;p&&*p;p=g_utf8_next_char(p)) {
 			gunichar  c=g_utf8_get_char(p);
-			int       d=((int)p)-((int)src_text);
+			int       d=p-src_text;
 			bool      add_it=true;
 			if ( g_unichar_iscntrl(c) ) {
 				add_it=false;
@@ -364,12 +364,12 @@
 	int       s_8_st=is_8_st-src[s_no].utf8_offset,s_8_en=is_8_en-src[s_no].utf8_offset;
 	int       s_4_st=0,s_4_en=0;
 	for (char* p=src_text;p&&*p;p=g_utf8_next_char(p)) {
-		int   d=((int)p)-((int)src_text);
+	    int   d=p-src_text;
 		if ( d >= s_8_st ) break;
 		s_4_st++;
 	}
 	for (char* p=src_text;p&&*p;p=g_utf8_next_char(p)) {
-		int   d=((int)p)-((int)src_text);
+	    int   d=p-src_text;
 		if ( d >= s_8_en ) break;
 		s_4_en++;
 	}
--- inkscape-0.41/src/libnrtype/TextWrapper.cpp.64bit	2005-05-25 18:25:45.000000000 -0400
+++ inkscape-0.41/src/libnrtype/TextWrapper.cpp	2005-05-25 18:26:10.000000000 -0400
@@ -139,7 +139,7 @@
 			// get the new codepoint
 			uni32_text[i]=g_utf8_get_char(p);
 			// compute the offset in the utf8_string
-			int n_o=((int)p)-((int)utf8_text);
+			int n_o= p-utf8_text;
 			// record the codepoint's start
 			utf8_codepoint[i]=n_o;
 			// record the codepoint's correspondance in the utf8 string
--- inkscape-0.41/src/libnrtype/FlowBoxes.cpp.64bit	2005-05-25 18:15:09.000000000 -0400
+++ inkscape-0.41/src/libnrtype/FlowBoxes.cpp	2005-05-25 18:16:00.000000000 -0400
@@ -77,7 +77,7 @@
 		int   src_length=flow_to_me.src[i].txt->utf8_length;
 		int   src_offset=flow_to_me.src[i].utf8_offset;
 		for (char* p=src_text;p&&*p;p=g_utf8_next_char(p)) {
-			int     d=((int)p)-((int)src_text);
+		    int     d=p-src_text;
 			gunichar nc=g_utf8_get_char(p);
 			if ( *p == '\n' ) {
 				AddCtrl(raw_text.utf8_length,ctrl_return); // nooo, not a newline!
@@ -548,7 +548,7 @@
 				}
 				if ( *p == 0 ) break;
 				p=g_utf8_next_char(p);
-				i=((int)p)-((int)t_st);
+				i=p-t_st;
 				ucs4_i++;
 			}
 			free(lAttrs);
@@ -772,7 +772,7 @@
 {
 	int n_o=0;
 	for (char* p=utf8_text;p&&*p;p=g_utf8_next_char(p)) {
-		int  d=((int)p)-((int)utf8_text);
+	    int  d=p-utf8_text;
 		if ( d >= pos ) break;
 		n_o++;
 	}

inkscape-gcc4.patch:

--- NEW FILE inkscape-gcc4.patch ---
--- inkscape-0.41/src/xml/sp-repr.h.gcc4	2005-05-10 05:38:09.000000000 -0400
+++ inkscape-0.41/src/xml/sp-repr.h	2005-05-10 05:38:40.000000000 -0400
@@ -44,6 +44,7 @@
 class SPRepr : public Inkscape::GC::Anchored {
 public:
     SPRepr() {}
+    virtual ~SPRepr() {}
 
     virtual SPReprType type() const=0;
 
--- inkscape-0.41/src/file.cpp.gcc4	2005-05-10 05:40:00.000000000 -0400
+++ inkscape-0.41/src/file.cpp	2005-05-10 05:40:52.000000000 -0400
@@ -269,7 +269,7 @@
     Glib::ustring::size_type const dataLen = ustr.length();
     Glib::ustring::size_type const cstrLen = strlen(cstr);
 
-    g_message("   size: %d\n   length: %d\n   bytes: %d\n    clen: %d", ustr.size(), dataLen, byteLen, cstrLen );
+    g_message("   size: %zd\n   length: %zd\n   bytes: %zd\n    clen: %zd", ustr.size(), dataLen, byteLen, cstrLen );
     g_message( "  ASCII? %s", (ustr.is_ascii() ? "yes":"no") );
     g_message( "  UTF-8? %s", (ustr.validate() ? "yes":"no") );
 
--- inkscape-0.41/src/interface.cpp.gcc4	2005-02-01 02:11:06.000000000 -0500
+++ inkscape-0.41/src/interface.cpp	2005-05-10 05:29:12.000000000 -0400
@@ -332,7 +332,7 @@
         if (event->state & GDK_SHIFT_MASK) shortcut |= SP_SHORTCUT_SHIFT_MASK;
         if (event->state & GDK_CONTROL_MASK) shortcut |= SP_SHORTCUT_CONTROL_MASK;
         if (event->state & GDK_MOD1_MASK) shortcut |= SP_SHORTCUT_ALT_MASK;
-        sp_shortcut_set (shortcut, (Inkscape::Verb *)((int)data), true);
+        sp_shortcut_set (shortcut, (Inkscape::Verb *)data, true);
     }
 }
 


Index: inkscape.spec
===================================================================
RCS file: /cvs/extras/rpms/inkscape/devel/inkscape.spec,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- inkscape.spec	22 May 2005 23:03:56 -0000	1.8
+++ inkscape.spec	26 May 2005 01:26:30 -0000	1.9
@@ -1,6 +1,6 @@
 Name:           inkscape
 Version:        0.41
-Release: 3
+Release: 4
 
 Summary:        A vector-based drawing program using SVG.
 
@@ -8,6 +8,8 @@
 License:        GPL
 URL:            http://inkscape.sourceforge.net/
 Source0:        http://download.sourceforge.net/inkscape/inkscape-0.41.tar.bz2
+Patch0: inkscape-gcc4.patch
+Patch1: inkscape-0.41-64bit.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  atk-devel
@@ -49,8 +51,11 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .gcc4
+%patch1 -p1 -b .64bit
 
 %build
+aclocal ; autoconf
 %configure                     \
 --disable-dependency-tracking  \
 --with-xinerama                \
@@ -99,6 +104,10 @@
 
 
 %changelog
+* Wed May 25 2005 Jeremy Katz <katzj at redhat.com> - 0.41-4
+- add patch for gcc4 problems (ignacio, #156228)
+- fix build on 64bit boxes.  sizeof(int) != sizeof(void*)
+
 * Sun May 22 2005 Jeremy Katz <katzj at redhat.com> - 0.41-3
 - rebuild on all arches
 




More information about the fedora-extras-commits mailing list