Skip to content

Commit

Permalink
dev-ml/ocaml2: Remove lablgtk2 dep
Browse files Browse the repository at this point in the history
cairo2 should not depend on labltk2:
Chris00/ocaml-cairo#21
Follow Debian with patching out the lablgtk2 dependency:
https://salsa.debian.org/ocaml-team/ocaml-cairo2/-/blob/master/debian/patches/ignore-gtk-and-pango
Also add the Debian patch for the tests, however the tests still
fail.

Closes: https://bugs.gentoo.org/748546
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Mark Wright <[email protected]>
  • Loading branch information
markwright committed Oct 16, 2020
1 parent 7ccadf4 commit 3112159
Show file tree
Hide file tree
Showing 3 changed files with 190 additions and 1 deletion.
7 changes: 6 additions & 1 deletion dev-ml/cairo2/cairo2-0.6.1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,10 @@ BDEPEND=""
# Done: 70/72 (jobs: 1) * ERROR: dev-ml/cairo2-0.6.1::x-portage failed (test phase):
RESTRICT=test

# Remove lablgtk2 dep https://github.com/Chris00/ocaml-cairo/issues/21
# Fix compiler warnings, from: https://github.com/Chris00/ocaml-cairo/pull/22
PATCHES=( "${FILESDIR}"/${PN}-0.6.1-handle-safe-string.patch )
PATCHES=(
"${FILESDIR}"/${PN}-0.6.1-ignore-gtk-and-pango.patch
"${FILESDIR}"/${PN}-0.6.1-handle-safe-string.patch
"${FILESDIR}"/${PN}-0.6.1-Fix-multiple-definitions-of-variables.patch
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
From: Stephane Glondu <[email protected]>
Date: Sat, 15 Aug 2020 09:08:30 +0200
Subject: Fix multiple definitions of variables

Bug-Debian: https://bugs.debian.org/968427
Bug: https://github.com/Chris00/ocaml-cairo/issues/23
Forwarded: https://github.com/Chris00/ocaml-cairo/issues/23
---
src/cairo_ocaml.h.p | 18 +++++++++---------
src/cairo_ocaml_types.h | 4 +++-
2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/cairo_ocaml.h.p b/src/cairo_ocaml.h.p
index 4192aed..1f05664 100644
--- a/src/cairo_ocaml.h.p
+++ b/src/cairo_ocaml.h.p
@@ -25,7 +25,7 @@
/* cairo_t
***********************************************************************/
#define CAIRO_VAL(v) (* (cairo_t **) Data_custom_val(v))
-struct custom_operations caml_cairo_ops;
+extern struct custom_operations caml_cairo_ops;

void caml_cairo_raise_Error(cairo_status_t status);
/* raise [Cairo.Error] if the status indicates a failure. */
@@ -33,7 +33,7 @@ void caml_cairo_raise_Error(cairo_status_t status);
/* cairo_pattern_t
***********************************************************************/
#define PATTERN_VAL(v) (* (cairo_pattern_t **) Data_custom_val(v))
-struct custom_operations caml_pattern_ops;
+extern struct custom_operations caml_pattern_ops;

#define EXTEND_VAL(v) ((cairo_extend_t) Int_val(v))
#define VAL_EXTEND(v) Val_int(v)
@@ -45,12 +45,12 @@ struct custom_operations caml_pattern_ops;
***********************************************************************/

#define FONT_OPTIONS_VAL(v) (* (cairo_font_options_t**) Data_custom_val(v))
-struct custom_operations caml_font_options_ops;
+extern struct custom_operations caml_font_options_ops;

/* cairo_font_type_t
***********************************************************************/

-value caml_cairo_font_type[5];
+extern value caml_cairo_font_type[5];

cairo_font_type_t caml_cairo_font_type_val(value vft);

@@ -61,13 +61,13 @@ cairo_font_type_t caml_cairo_font_type_val(value vft);
***********************************************************************/

#define SCALED_FONT_VAL(v) (* (cairo_scaled_font_t**) Data_custom_val(v))
-struct custom_operations caml_scaled_font_ops;
+extern struct custom_operations caml_scaled_font_ops;

/* cairo_surface_t
***********************************************************************/

#define SURFACE_VAL(v) (* (cairo_surface_t **) Data_custom_val(v))
-struct custom_operations caml_surface_ops;
+extern struct custom_operations caml_surface_ops;

/* Type cairo_content_t */

@@ -93,7 +93,7 @@ struct custom_operations caml_surface_ops;
***********************************************************************/

#define PATH_VAL(v) (* (cairo_path_t **) Data_custom_val(v))
-struct custom_operations caml_path_ops;
+extern struct custom_operations caml_path_ops;

#define PATH_DATA_ASSIGN(vdata, data) \
switch (data->header.type) { \
@@ -151,10 +151,10 @@ struct custom_operations caml_path_ops;
#include <cairo-ft.h>

#define FT_LIBRARY_VAL(v) (* (FT_Library*) Data_custom_val(v))
-struct custom_operations caml_cairo_ft_library_ops;
+extern struct custom_operations caml_cairo_ft_library_ops;

#define FT_FACE_VAL(v) (* (FT_Face*) Data_custom_val(v))
-struct custom_operations caml_cairo_ft_face_ops;
+extern struct custom_operations caml_cairo_ft_face_ops;

#endif /* OCAML_CAIRO_HAS_FT */

diff --git a/src/cairo_ocaml_types.h b/src/cairo_ocaml_types.h
index b850ae2..84dde3d 100644
--- a/src/cairo_ocaml_types.h
+++ b/src/cairo_ocaml_types.h
@@ -276,7 +276,9 @@ struct custom_operations caml_font_options_ops = {
custom_deserialize_default };


-/* caml_cairo_font_type is defined in "cairo_ocaml.h". */
+/* caml_cairo_font_type is exported in "cairo_ocaml.h". */
+value caml_cairo_font_type[5];
+
CAMLexport value caml_cairo_font_type_init(value unit)
{
/* noalloc */
82 changes: 82 additions & 0 deletions dev-ml/cairo2/files/cairo2-0.6.1-ignore-gtk-and-pango.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
From: Debian OCaml Maintainers <[email protected]>
Date: Sat, 15 Aug 2020 08:56:03 +0200
Subject: ignore-gtk-and-pango

===================================================================
---
examples-gtk/dune | 8 --------
examples-pango/dune | 8 --------
gtk/dune | 13 -------------
pango/dune | 13 -------------
4 files changed, 42 deletions(-)
delete mode 100644 examples-gtk/dune
delete mode 100644 examples-pango/dune
delete mode 100644 gtk/dune
delete mode 100644 pango/dune

diff --git a/examples-gtk/dune b/examples-gtk/dune
deleted file mode 100644
index 10d8fcb..0000000
--- a/examples-gtk/dune
+++ /dev/null
@@ -1,8 +0,0 @@
-
-(executables
- (names gtk_demo)
-(libraries cairo2-gtk))
-
-(alias
- (name examples)
- (deps gtk_demo.exe))
diff --git a/examples-pango/dune b/examples-pango/dune
deleted file mode 100644
index c8ae49e..0000000
--- a/examples-pango/dune
+++ /dev/null
@@ -1,8 +0,0 @@
-
-(executables
- (names pango_demo rendering)
- (libraries cairo2-pango))
-
-(alias
- (name examples)
- (deps pango_demo.exe rendering.exe))
diff --git a/gtk/dune b/gtk/dune
deleted file mode 100644
index 6ef367e..0000000
--- a/gtk/dune
+++ /dev/null
@@ -1,13 +0,0 @@
-
-(library
- (name cairo_gtk)
- (public_name cairo2-gtk)
- (c_names cairo_gtk_stubs)
- (c_flags :standard (:include c_flags.sexp))
- (c_library_flags :standard (:include c_library_flags.sexp))
- (libraries threads lablgtk2 cairo2)
- (synopsis "Rendering Cairo on Gtk canvas"))
-
-(rule
- (targets c_flags.sexp c_library_flags.sexp)
- (action (run ../config/discover.exe --gtk)))
diff --git a/pango/dune b/pango/dune
deleted file mode 100644
index 816cc49..0000000
--- a/pango/dune
+++ /dev/null
@@ -1,13 +0,0 @@
-
-(library
- (name cairo_pango)
- (public_name cairo2-pango)
- (c_names cairo_pango_stubs)
- (c_flags :standard (:include c_flags.sexp))
- (c_library_flags :standard (:include c_library_flags.sexp))
- (libraries threads lablgtk2 cairo2)
- (synopsis "Interface between Cairo and Pango"))
-
-(rule
- (targets c_flags.sexp c_library_flags.sexp)
- (action (run ../config/discover.exe --gtk)))

0 comments on commit 3112159

Please sign in to comment.