Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 04 Mar 2006 17:04:25 +0900
From:      Takeshi MUTOH <mutoh@openedu.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        chris@chrisburkert.de, mutoh@openedu.org
Subject:   ports/94058: [Patch] lang/squeak add FFI plugin support
Message-ID:  <dd7j7a7i0m.wl%mutoh@openedu.org>
Resent-Message-ID: <200603040810.k248A5LH099847@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         94058
>Category:       ports
>Synopsis:       Add FFI support for lang/squeak
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Mar 04 08:10:04 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Takeshi MUTOH <mutoh@openedu.org>
>Release:        FreeBSD 6.0-STABLE i386
>Organization:
610t
>Environment:

  FreeBSD mutoh.dyndns.org 6.0-STABLE FreeBSD 6.0-STABLE #6: Fri Jan 27 07:50:53 JST 2006     root@mutoh.dyndns.org:/usr/obj/usr/src/sys/SMP+NAT  i386

>Description:

Currently, lang/squeak FFI plugin 
(See http://minnow.cc.gatech.edu/squeak/1414) support works not well.

If you has already install devel/libffi before installing lang/squeak,
FFI support is automatically activated. But pkg-plist is not care this
situation, so you can't deinstall cleanly.
Furthermore, configure script can't link libffi automatically, FFI
plugin can't work well.

>How-To-Repeat:

Install devel/libffi before installing lang/squeak.

>Fix:

Plese apply patch below.
Some portlint errors are reduced.

diff -ruN /usr/ports/lang/squeak/Makefile squeak/Makefile
--- /usr/ports/lang/squeak/Makefile	Mon Nov 29 10:25:32 2004
+++ squeak/Makefile	Sat Mar  4 15:40:53 2006
@@ -37,7 +37,6 @@
 ONLY_FOR_ARCHS= 	i386
 MAN1=			inisqueak.1 squeak.1
 USE_GMAKE=		yes
-USE_REINPLACE=		yes
 HAS_CONFIGURE=		yes
 
 # Don't set USE_ZIP as this breaks EXTRACT_CMD.
@@ -59,7 +58,8 @@
 INSTALL_WRKSRC=		${CONFIGURE_WRKSRC}
 CONFIGURE_SCRIPT=	../platforms/unix/config/configure
 CONFIGURE_ARGS+=	--libdir=${PREFIX}/share \
-			--without-quartz
+			--without-quartz \
+			LDFLAGS="-L${LOCALBASE}/lib" CPPFLAGS="-I${LOCALBASE}/include"
 # don't pass "-s" to install to avoid trying to strip a shell script
 CONFIGURE_ENV=
 
@@ -89,6 +89,15 @@
 CONFIGURE_ARGS+=        --enable-mpg-mmx
 .endif
 
+.if defined(WITH_FFI) && (${WITH_FFI}=="yes")
+LIB_DEPENDS+=		ffi.2:${PORTSDIR}/devel/libffi
+PLIST_FFI=
+EXT_PLUGINS+=		SqueakFFIPrims
+.else
+CONFIGURE_ARGS+=	--without-ffi
+PLIST_FFI=		"@comment feature not wanted - "
+.endif
+
 .ifdef (CC)
 MAKE_ARGS+=		CC="${CC}"
 .endif
@@ -101,7 +110,8 @@
 			PATCHNUMBER=${PATCHNUMBER}\
 			VMVERSION=${VMVERSION}\
 			PLIST_NPSQUEAK=${PLIST_NPSQUEAK}\
-			PLIST_X=${PLIST_X}
+			PLIST_X=${PLIST_X}\
+			PLIST_FFI=${PLIST_FFI}
 
 .include <bsd.port.pre.mk>
 
@@ -120,6 +130,8 @@
 	@${ECHO_MSG} "                        ^^^      (default: enabled)"
 	@${ECHO_MSG} "    WITH_X=            [yes|no]  X Windows support"
 	@${ECHO_MSG} "                        ^^^      (default: enabled)"
+	@${ECHO_MSG} "    WITH_FFI=          [yes|no]  FFI support"
+	@${ECHO_MSG} "                            ^^   (default: disabled)"
 	@${ECHO_MSG} " "
 	@${ECHO_MSG} "  additional make arguments"
 	@${ECHO_MSG} "    CC=<aString>"
@@ -129,10 +141,13 @@
 	@${ECHO_MSG} " "
 
 ##################################################
+post-patch:
+# Fix external plugins
+	@${ECHO_MSG} "EXTERNAL_PLUGINS = B3DAcceleratorPlugin UnixOSProcessPlugin XDisplayControlPlugin ${EXT_PLUGINS}" > ${WRKSRC}/src/plugins.ext
+
+##################################################
 pre-configure:
 	@${MKDIR} ${CONFIGURE_WRKSRC}
-	@cd ${WRKSRC}/platforms/unix/npsqueak && \
-		${REINPLACE_CMD} -e 's|include|include -I${X11BASE}/include|g' Makefile
 
 ##################################################
 post-configure:
@@ -145,8 +160,8 @@
 post-install:
 	(cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} SqueakV3.sources.gz ${PREFIX}/share/squeak/)
 	(cd ${PREFIX}/share/squeak && ${EXTRACT_CMD} -d SqueakV3.sources.gz)
-	(cd ${DISTDIR}/${DIST_SUBDIR} && unzip -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip -d ${WRKDIR})
-	(cd ${DISTDIR}/${DIST_SUBDIR} && unzip -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip -d ${WRKDIR})
+	(cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip -d ${WRKDIR})
+	(cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip -d ${WRKDIR})
 	(cd ${WRKDIR} && ${INSTALL_DATA} ReadMe.txt ${PREFIX}/share/squeak/)
 .for file in ${FILES_TO_GZIP}
 	(cd ${WRKDIR} && ${GZIP_CMD} ${file} && ${INSTALL_DATA} ${file}.gz ${PREFIX}/share/squeak/)
diff -ruN /usr/ports/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in
--- /usr/ports/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in	Thu Jan  1 09:00:00 1970
+++ squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in	Sat Mar  4 14:58:46 2006
@@ -0,0 +1,11 @@
+--- platforms/unix/plugins/SqueakFFIPrims/Makefile.in.orig	Sun Mar 20 05:38:18 2005
++++ platforms/unix/plugins/SqueakFFIPrims/Makefile.in	Sun Feb 26 00:08:03 2006
+@@ -14,7 +14,7 @@
+ XINCLUDES	= [includes]
+ 
+ $(TARGET) : $(OBJS) Makefile
+-	$(LINK) $(TARGET) $(OBJS)
++	$(LINK) $(TARGET) $(OBJS) -lffi
+ 	$(RANLIB) $(TARGET)
+ 
+ [make_targets]
diff -ruN /usr/ports/lang/squeak/pkg-plist squeak/pkg-plist
--- /usr/ports/lang/squeak/pkg-plist	Sun Jan  8 03:37:39 2006
+++ squeak/pkg-plist	Sat Mar  4 14:58:00 2006
@@ -9,6 +9,7 @@
 %%PLIST_X%%share/squeak/%%VMVERSION%%/B3DAcceleratorPlugin
 share/squeak/%%VMVERSION%%/UnixOSProcessPlugin
 %%PLIST_X%%share/squeak/%%VMVERSION%%/XDisplayControlPlugin
+%%PLIST_FFI%%share/squeak/%%VMVERSION%%/SqueakFFIPrims
 %%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueak.so
 %%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueakrun
 share/squeak/%%VMVERSION%%/squeak


--
Takeshi MUTOH	<mutoh@openedu.org>
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dd7j7a7i0m.wl%mutoh>