# How to use a diff (with a --git line) to patch a port?



## bdub (Nov 26, 2010)

Hi ports people,

I am trying upgrade all ports (using portupgrade) on a 6.3-RELEASE-p1 system, with a view to doing my first make world and bring this system up to 8.1.

I am struggling to get cairo from cairo-1.8.10_1, 1  to cairo-1.10.0_3, 1 . (GCC is 3.4)


```
[root@XXXXX /usr/ports/graphics/cairo]# make
....
....
cairo-bentley-ottmann.c: In function `edges_compare_x_for_y_general':
cairo-bentley-ottmann.c:425: internal compiler error: in expand_mult, at expmed.c:2653
Please submit a full bug report,
with preprocessed source if appropriate.
```


I have been sent a patch from the cairo people that my fix my problem, but im not sure how to apply it to the port as it is not quite in the same format as the ones in /usr/ports/graphics/cairo/files/ i tried without success to modify it to look like the ones found in there but no success. This is what i was sent (thanks Joonas!)


```
diff --git a/src/cairo-wideint-type-private.h b/src/cairo-wideint-type-private.h
index 4c910ed..2d23d17 100644
--- a/src/cairo-wideint-type-private.h
+++ b/src/cairo-wideint-type-private.h
@@ -121,6 +121,11 @@ typedef struct _cairo_quorem64 {
    cairo_int64_t      rem;
} cairo_quorem64_t;

+/* Intrinsic __uint128_t support is broken on gcc 3.4/sparc. */
+#if __GNUC__ == 3 && __GNUC_MINOR__ == 4
+#undef HAVE___UINT128_T
+#endif
+
/* gcc has a non-standard name. */
#if HAVE___UINT128_T && !HAVE_UINT128_T
typedef __uint128_t uint128_t;
```


Can someone please tell me how to use this patch on the cairo port? 

Thanks in advance,
Ben


----------



## graudeejs (Nov 26, 2010)

I think you need this:
http://www.kernel.org/pub/software/scm/git/docs/git-apply.html


----------



## wblock@ (Nov 26, 2010)

bdub said:
			
		

> Hi ports people,
> 
> I am trying upgrade all ports (using portupgrade) on a 6.3-RELEASE-p1 system, with a view to doing my first make world and bring this system up to 8.1.



There's a mistaken assumption in there.  Don't upgrade your ports first, it's pointless.  They have to be upgraded after the OS upgrade anyway.


----------

