git: 0f02c6466c45 - main - lang/pharo: update to 10.0.8

From: Fernando Apesteguía <fernape_at_FreeBSD.org>
Date: Fri, 24 Nov 2023 08:19:35 UTC
The branch main has been updated by fernape:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0f02c6466c455f20b81db359aa433ba2555a1b82

commit 0f02c6466c455f20b81db359aa433ba2555a1b82
Author:     Daniel Ziltener <dziltener@lyrion.ch>
AuthorDate: 2023-11-23 09:05:15 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2023-11-24 08:19:14 +0000

    lang/pharo: update to 10.0.8
    
    PR:             274973
    Reported by:    dziltener@lyrion.ch
---
 lang/pharo/Makefile                                | 56 +++++++++++++---------
 lang/pharo/distinfo                                |  5 +-
 .../files/patch-packaging_linux_bin_launch.sh.in   | 18 +++++++
 lang/pharo/pkg-descr                               |  2 -
 lang/pharo/pkg-plist                               | 20 ++++++++
 5 files changed, 74 insertions(+), 27 deletions(-)

diff --git a/lang/pharo/Makefile b/lang/pharo/Makefile
index c17b31547514..70e73e9da54f 100644
--- a/lang/pharo/Makefile
+++ b/lang/pharo/Makefile
@@ -1,37 +1,47 @@
 PORTNAME=	pharo
-DISTVERSION=	1.4
-PORTREVISION=	3
+DISTVERSION=	10.0.9
+DISTVERSIONSUFFIX=	de76067
 CATEGORIES=	lang
-MASTER_SITES=	https://gforge.inria.fr/frs/download.php/30620/
-DISTNAME=	Pharo-${DISTVERSION}-${SVNVERSION}
-EXTRACT_ONLY=	Pharo-${DISTVERSION}-${SVNVERSION}.zip
+MASTER_SITES=	http://files.pharo.org/vm/pharo-spur64-headless/Linux-x86_64/source/
+DISTNAME=	PharoVM-${DISTVERSION}-${DISTVERSIONSUFFIX}-Linux-x86_64-c-src
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Smalltalk-inspired language and environment
-WWW=		http://www.pharo-project.org/
+WWW=		http://www.pharo.org/
 
-LICENSE=	APACHE20 MIT
-LICENSE_COMB=	multi
+LICENSE=	MIT
 
-RUN_DEPENDS=	squeak:lang/squeak
+LIB_DEPENDS=	libffi.so:devel/libffi \
+		libgit2.so:devel/libgit2 \
+		libcairo.so:graphics/cairo \
+		libfreetype.so:print/freetype2 \
+		libssl.so:security/openssl \
+		libpixman-1.so:x11/pixman \
+		libpng.so:graphics/png \
+		libuuid.so:misc/e2fsprogs-libuuid
 
-SVNVERSION=	14438
+USES=		cmake
+CMAKE_ARGS=	-DFLAVOUR=CoInterpreter \
+		-DPHARO_BIN_LOCATION=${PREFIX}/libexec/pharo10 \
+		-DGENERATED_SOURCE_DIR=.
+CMAKE_ON=	ALWAYS_INTERACTIVE BUILD_IS_RELEASE
+CMAKE_OFF=	GENERATE_SOURCES BUILD_BUNDLE
 
-NO_BUILD=	yes
-USES=		zip
+WRKSRC=		${WRKDIR}/pharo-vm
 
-DIST_SUBDIR=	squeak
-
-FILES_DIR=	${WRKDIR}/Pharo-${DISTVERSION}-${SVNVERSION}/
-FILES_TO_INSTALL=Pharo-${DISTVERSION}.image \
-		Pharo-${DISTVERSION}.changes \
-		PharoV10.sources
-PLIST_FILES=	lib/squeak/Pharo-${DISTVERSION}.image \
-		lib/squeak/Pharo-${DISTVERSION}.changes \
-		lib/squeak/PharoV10.sources
+USE_HCC=	yes
+USE_SDL=	sdl image
 
 do-install:
-	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/squeak
-	${INSTALL_DATA} ${FILES_TO_INSTALL:S,^,${FILES_DIR}/,} ${STAGEDIR}${PREFIX}/lib/squeak
+	${MKDIR} ${STAGEDIR}${PREFIX}/libexec/pharo10
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/pharo10
+	cd ${WRKDIR}/.build/build/packaging/linux/bin && \
+		${INSTALL_SCRIPT} pharo ${STAGEDIR}${PREFIX}/bin/pharo10
+	cd ${WRKDIR}/.build/build/vm && \
+		${INSTALL_PROGRAM} pharo ${STAGEDIR}${PREFIX}/libexec/pharo10/pharo
+	cd ${WRKDIR}/.build/build/vm && \
+		${FIND} . -type f -name "*.so" | while read file; do \
+		${INSTALL_LIB} $$file ${STAGEDIR}${PREFIX}/lib/pharo10/$$file; \
+		done
 
 .include <bsd.port.mk>
diff --git a/lang/pharo/distinfo b/lang/pharo/distinfo
index 336094d99abe..14e34b18d7af 100644
--- a/lang/pharo/distinfo
+++ b/lang/pharo/distinfo
@@ -1,2 +1,3 @@
-SHA256 (squeak/Pharo-1.4-14438.zip) = 7f1a3fa43f44f3f4d05955cd1b1191abcdb8f3ee9692eeb55d67ef0122324f1d
-SIZE (squeak/Pharo-1.4-14438.zip) = 13324537
+TIMESTAMP = 1700701195
+SHA256 (PharoVM-10.0.9-de76067-Linux-x86_64-c-src.tar.gz) = e797b3b00be38fbd158ffba732d175307fe9928421529e1f5b96a9e553f018bf
+SIZE (PharoVM-10.0.9-de76067-Linux-x86_64-c-src.tar.gz) = 3875300
diff --git a/lang/pharo/files/patch-packaging_linux_bin_launch.sh.in b/lang/pharo/files/patch-packaging_linux_bin_launch.sh.in
new file mode 100644
index 000000000000..0a2ff8e1e85e
--- /dev/null
+++ b/lang/pharo/files/patch-packaging_linux_bin_launch.sh.in
@@ -0,0 +1,18 @@
+--- packaging/linux/bin/launch.sh.in.orig	2023-11-23 00:48:34 UTC
++++ packaging/linux/bin/launch.sh.in
+@@ -27,13 +27,13 @@ fi
+ # and so it should take precedence over /lib libc.  This is done by setting
+ # LD_LIBRARY_PATH appropriately, based on ldd's idea of the libc use by the VM.
+ #Try extracting Libc
+-LIBC_SO="`/usr/bin/ldd "$BIN/@VM_EXECUTABLE_NAME@" | /bin/fgrep /libc. | sed 's/^.*=> \([^ ]*\).*/\1/'`"
++LIBC_SO="`ldd "$BIN/@VM_EXECUTABLE_NAME@" | grep /libc. | sed 's/^.*=> \([^ ]*\).*/\1/'`"
+ PLATFORMLIBDIR=`expr "$LIBC_SO" : '\(.*\)/libc.*'`
+ 
+ #If empty try extracting Musl
+ if [ "$PLATFORMLIBDIR" = "" ]; then
+ {
+-	LIBC_SO="`/usr/bin/ldd "$BIN/@VM_EXECUTABLE_NAME@" | /bin/fgrep libc. | sed 's/^.*=> \([^ ]*\).*/\1/'`"
++	LIBC_SO="`ldd "$BIN/@VM_EXECUTABLE_NAME@" | grep libc. | sed 's/^.*=> \([^ ]*\).*/\1/'`"
+ 	PLATFORMLIBDIR=`expr "$LIBC_SO" : '\(.*\)/ld-musl.*'`
+ }
+ fi
diff --git a/lang/pharo/pkg-descr b/lang/pharo/pkg-descr
index d7ffa82e509d..a27244ad3208 100644
--- a/lang/pharo/pkg-descr
+++ b/lang/pharo/pkg-descr
@@ -5,5 +5,3 @@ Pharo is a clean, innovative, open-source Smalltalk-inspired environment.
 - a clean look and feel
 - good developer tools
 - low memory footprint
-
-It runs under squeak virtual machine.
diff --git a/lang/pharo/pkg-plist b/lang/pharo/pkg-plist
new file mode 100644
index 000000000000..056860634b74
--- /dev/null
+++ b/lang/pharo/pkg-plist
@@ -0,0 +1,20 @@
+bin/pharo10
+lib/pharo10/libB2DPlugin.so
+lib/pharo10/libBitBltPlugin.so
+lib/pharo10/libDSAPrims.so
+lib/pharo10/libFileAttributesPlugin.so
+lib/pharo10/libFilePlugin.so
+lib/pharo10/libFloatArrayPlugin.so
+lib/pharo10/libJPEGReadWriter2Plugin.so
+lib/pharo10/libJPEGReaderPlugin.so
+lib/pharo10/libLargeIntegers.so
+lib/pharo10/libLocalePlugin.so
+lib/pharo10/libMiscPrimitivePlugin.so
+lib/pharo10/libPharoVMCore.so
+lib/pharo10/libSocketPlugin.so
+lib/pharo10/libSqueakSSL.so
+lib/pharo10/libSurfacePlugin.so
+lib/pharo10/libTestLibrary.so
+lib/pharo10/libUUIDPlugin.so
+lib/pharo10/libUnixOSProcessPlugin.so
+libexec/pharo10/pharo