Hi!

lablgtk2 is currently broken when building with systrace on:

...

Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablrsvg.so
Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablrsvg.so.owner
Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablglade2.so
Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablglade2.so.owner
Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablgtk2.so
Installed 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs/dlllablgtk2.so.owner
ocamlfind: [WARNING] You have installed DLLs but the directory 
/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/usr/local/lib/ocaml/stublibs is not 
mentioned in ld.conf
ranlib "`ocamlfind query lablgtk2 | tr -d '\r'`"/liblablgtk2.a "`ocamlfind 
query lablgtk2 | tr -d '\r'`"/liblablglade2.a "`ocamlfind query lablgtk2 | tr 
-d '\r'`"/liblablrsvg.a "`ocamlfind query lablgtk2 | tr -d 
'\r'`"/liblablgtksourceview2.a
systrace: deny user: root, prog: /usr/bin/ranlib, pid: 21753(0)[18156], policy: 
/usr/bin/env, filters: 241, syscall: native-fswrite(5), filename: 
/usr/local/lib/ocaml/lablgtk2/stcQnacy
ranlib: /usr/local/lib/ocaml/lablgtk2/liblablgtk2.a: Operation not permitted
gmake[1]: *** [findlib-install] Error 1
gmake[1]: Leaving directory `/usr/ports/pobj/lablgtk2-2.16.0/lablgtk-2.16.0/src'
gmake: *** [install] Error 2
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2683 
'/usr/ports/pobj/lablgtk2-2.16.0/fake-amd64/.fake_done')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:1804 
'/usr/ports/packages/amd64/all/lablgtk2-2.16.0p1.tgz')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2343 
'_internal-package')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2323 'package')
*** Error 1 in /usr/ports/x11/lablgtk2 
(/usr/ports/infrastructure/mk/bsd.port.mk:3290 'repackage')


The diff below (adapted from upstream git) fixes it.
Tested on amd64 (native) and sparc64 (non-native).

Are you ok?

Ciao,
David

Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/lablgtk2/Makefile,v
retrieving revision 1.21
diff -u -p -r1.21 Makefile
--- Makefile    30 Nov 2012 19:38:09 -0000      1.21
+++ Makefile    31 Jan 2013 11:19:11 -0000
@@ -3,7 +3,7 @@
 COMMENT =      OCaml interface to GTK+2
 
 V =            2.16.0
-REVISION=      0
+REVISION=      1
 DISTNAME =     lablgtk-$V
 PKGNAME =      lablgtk2-$V
 CATEGORIES =   x11 devel
Index: patches/patch-config_make_in
===================================================================
RCS file: patches/patch-config_make_in
diff -N patches/patch-config_make_in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-config_make_in        31 Jan 2013 11:19:11 -0000
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Support DESTDIR with findlib-install; unbreak systraced builds
+(adapted from upstream git 58e15c3a33ee747e3e58a2c9687f22234f0055b6)
+
+--- config.make.in.orig        Thu Aug 23 12:37:48 2012
++++ config.make.in     Thu Jan 31 11:48:57 2013
+@@ -9,6 +9,7 @@ OCAMLDOC=@OCAMLDOC@
+ CAMLMKTOP=@CAMLMKTOP@
+ CAMLMKLIB=@CAMLMKLIB@
+ CAMLP4O=@CAMLP4O@
++FINDLIBDIR=@FINDLIBDIR@
+ CAMLBEST=@OCAMLBEST@
+ CAMLWIN32=@OCAMLWIN32@
+ CAMLDEP=@OCAMLDEP@
+@@ -56,9 +57,11 @@ BINDIR=$(DESTDIR)@bindir@
+ # where to install the man page
+ MANDIR=$(DESTDIR)@mandir@
+ 
++LABLGTKDIR=@LIBDIR@/lablgtk2
+ INSTALLDIR=$(DESTDIR)@LIBDIR@/lablgtk2
+ DLLDIR=$(DESTDIR)@LIBDIR@/stublibs
+ LABLGLDIR=@LABLGLDIR@
++FLINSTALLDIR=$(DESTDIR)$(FINDLIBDIR)/lablgtk2
+ 
+ FILT = -Wl,--export-dynamic
+ clean_libs = $(subst -pthread,-ldopt -pthread -ccopt -pthread,$(subst 
--rpath,-rpath,$(filter-out $(FILT),$(1))))
Index: patches/patch-configure
===================================================================
RCS file: patches/patch-configure
diff -N patches/patch-configure
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-configure     31 Jan 2013 11:19:11 -0000
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Support DESTDIR with findlib-install; unbreak systraced builds
+(adapted from upstream git 58e15c3a33ee747e3e58a2c9687f22234f0055b6)
+
+--- configure.orig     Thu Aug 23 12:37:48 2012
++++ configure  Thu Jan 31 11:49:11 2013
+@@ -568,6 +568,7 @@ DEBUG
+ USE_CC
+ HAVE_SVGZ
+ LABLGLDIR
++FINDLIBDIR
+ HAS_NATIVE_DYNLINK
+ HAS_DLL_SUPPORT
+ THREADS_LIB
+@@ -2607,6 +2608,9 @@ fi
+ if test "$CAMLP4O" = no ; then
+       as_fn_error $? "Cannot find camlp4o." "$LINENO" 5
+ fi
++
++FINDLIBDIR="`ocamlfind printconf destdir | tr -d '\\r'`"
++echo "ocamlfind library path is $FINDLIBDIR"
+ 
+ if expr "$OCAMLVERSION" '>=' '4' > /dev/null ; then
+    ODOC_DEF="-D OCAML_400"
Index: patches/patch-src_Makefile
===================================================================
RCS file: /cvs/ports/x11/lablgtk2/patches/patch-src_Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 patch-src_Makefile
--- patches/patch-src_Makefile  9 Oct 2012 09:22:24 -0000       1.2
+++ patches/patch-src_Makefile  31 Jan 2013 11:19:11 -0000
@@ -1,6 +1,10 @@
 $OpenBSD: patch-src_Makefile,v 1.2 2012/10/09 09:22:24 dcoppa Exp $
+
+Support DESTDIR with findlib-install; unbreak systraced builds
+(adapted from upstream git 58e15c3a33ee747e3e58a2c9687f22234f0055b6)
+
 --- src/Makefile.orig  Thu Aug 23 12:37:48 2012
-+++ src/Makefile       Fri Aug 24 12:06:15 2012
++++ src/Makefile       Thu Jan 31 12:00:38 2013
 @@ -48,7 +48,7 @@ CUSTOM = -custom
  #MLLINK += -cclib -lcamlrund
  MLBYTEFLAGS = -g -dtypes
@@ -19,3 +23,48 @@ $OpenBSD: patch-src_Makefile,v 1.2 2012/
  else
  CCOMPILER = $(CAMLC) -c -ccopt '$(CFLAGS)' -verbose
  endif
+@@ -274,7 +274,7 @@ lablgtktop$(XE): $(MLLIBS) $(THOBJS) $(CONFIG)
+ endif
+ 
+ lablgtk2: Makefile $(CONFIG) lablgtk2.in
+-      sed -e "s|@INSTALLDIR@|$(INSTALLDIR)|g" \
++      sed -e "s|@INSTALLDIR@|$(LABLGTKDIR)|g" \
+           -e "s|@LABLGLDIR@|$(LABLGLDIR)|g" \
+           -e "s|@MLLIBS@|$(MLLINK) $(MLLIBS)|g" \
+           -e "s|@INITOBJS@|$(INITOBJS)|g" \
+@@ -391,7 +391,9 @@ old-uninstall:
+ # Install using ocamlfind
+ findlib-install:
+       mkdir -p "$(BINDIR)"
+-      ocamlfind install lablgtk2 ../META \
++      mkdir -p "$(DESTDIR)$(FINDLIBDIR)"
++      ocamlfind install -destdir "$(DESTDIR)$(FINDLIBDIR)" \
++    lablgtk2 ../META \
+     build.ml \
+     $(CLIBS) \
+     $(ALLOBJS:.cmo=.cmi) $(EXTRA_OBJS:.cmo=.cmi) \
+@@ -427,16 +429,19 @@ findlib-install:
+       then \
+         echo $(CLIBS:lib%$(XA)=dll%$(XA)) ; \
+     fi`
+-      $(RANLIB) $(CLIBS:%="`ocamlfind query lablgtk2 | tr -d '\r'`"/%)
+-      @if test -f lablgtk.cmxa; \
+-        then ($(RANLIB) $(MLLIBS:%.cma="`ocamlfind query lablgtk2 | tr -d 
'\r'`"/%$(XA)) $(EXTRA_MLLIBS:%.cma="`ocamlfind query lablgtk2 | tr -d 
'\r'`"/%$(XA)) ); fi
+-      rm lablgtk2$(XB)
+-      $(MAKE) INSTALLDIR=`ocamlfind query lablgtk2 | tr -d '\r'` lablgtk2$(XB)
++      rm -f lablgtk2
++      $(MAKE) lablgtk2 LABLGTKDIR="$(FINDLIBDIR)/lablgtk2"
+       cp lablgtk2$(XB) "$(BINDIR)"
+       if test -f lablgladecc$(XE); then \
+         cp lablgladecc$(XE) "$(BINDIR)/lablgladecc2$(XE)"; \
+       fi
+       cp gdk_pixbuf_mlsource$(XE) "$(BINDIR)"
++      $(RANLIB) $(CLIBS:%=$(FLINSTALLDIR)/%)
++      @if test -f lablgtk.cmxa; then \
++        echo "Execute $(RANLIB) in $(FLINSTALLDIR)"; \
++        $(RANLIB) $(MLLIBS:%.cma=$(FLINSTALLDIR)/%$(XA)) \
++                  $(EXTRA_MLLIBS:%.cma=$(FLINSTALLDIR)/%$(XA)) ; \
++       fi
+ 
+ findlib-uninstall:
+       ocamlfind remove lablgtk2

Reply via email to