git: 8580a08f3e01 - main - emulators/hatari: Update to 2.5.0

From: Nuno Teixeira <eduardo_at_FreeBSD.org>
Date: Thu, 02 May 2024 08:39:51 UTC
The branch main has been updated by eduardo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8580a08f3e0100cddca19ab29fb2e823f03b9687

commit 8580a08f3e0100cddca19ab29fb2e823f03b9687
Author:     Laurent <laurent.chardon@gmail.com>
AuthorDate: 2024-05-02 08:36:13 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2024-05-02 08:36:13 +0000

    emulators/hatari: Update to 2.5.0
    
    - Submitter becomes maintainer
    - Update options
    - Bypass broken readline detection by cmake
    - Add test target
    
    ChangeLog:      https://www.hatari.tuxfamily.org/news.html
    PR:             278590
---
 emulators/hatari/Makefile                          | 59 ++++++++++-------
 emulators/hatari/distinfo                          |  6 +-
 emulators/hatari/files/patch-CMakeLists.txt        | 16 -----
 .../hatari/files/patch-cmake_FindReadline.cmake    | 17 +++++
 emulators/hatari/files/patch-share_CMakeLists.txt  | 16 ++---
 .../hatari/files/patch-tools_atari-hd-image.sh     | 14 ++--
 emulators/hatari/pkg-plist                         | 74 +++++++++++++---------
 7 files changed, 113 insertions(+), 89 deletions(-)

diff --git a/emulators/hatari/Makefile b/emulators/hatari/Makefile
index 5be9728b9c28..1773111df2f9 100644
--- a/emulators/hatari/Makefile
+++ b/emulators/hatari/Makefile
@@ -1,44 +1,57 @@
 PORTNAME=	hatari
-PORTVERSION=	2.3.1
-PORTREVISION=	3
+PORTVERSION=	2.5.0
 CATEGORIES=	emulators
 MASTER_SITES=	http://download.tuxfamily.org/hatari/${PORTVERSION}/
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	laurent.chardon@gmail.com
 COMMENT=	Atari ST emulator
 WWW=		https://hatari.tuxfamily.org/
 
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/gpl.txt
 
-BROKEN_armv6=		fails to configure: CMake Error: Generator: execution of make failed
+BROKEN_armv6=	fails to configure: CMake Error: Generator: execution of make failed
 
-LIB_DEPENDS=	libportaudio.so:audio/portaudio \
-		libpng.so:graphics/png
+LIB_DEPENDS=	libpng.so:graphics/png \
+		libudev.so:devel/libudev-devd \
+		libreadline.so:devel/readline \
+		libcapstone.so:devel/capstone
 
 USES=		cmake desktop-file-utils gnome python readline \
-		sdl shared-mime-info shebangfix tar:bzip2 xorg
-USE_GNOME=	gtk30
+		sdl shared-mime-info shebangfix tar:bzip2 xorg iconv
+USE_GNOME=	gtk30 pygobject3
 USE_XORG=	sm ice x11 xext
+USE_SDL=	sdl2
 
 SHEBANG_FILES=	python-ui/*.py tools/*.py \
 		tools/debugger/*.py tools/hconsole/*.py
 
-CMAKE_ARGS=	-DETCDIR:PATH="${PREFIX}/etc" \
-		-DREADLINE_FOUND:BOOL=ON
-
-#		-DMANDIR:PATH="share/man/man1"
-OPTIONS_DEFINE=		DEBUG DOCS SDL2 WINUAE
-
-DEBUG_CFLAGS_OFF=	-DNDEBUG
-SDL2_DESC=		Use SDL2 libraries instead of SDL 1.2
-SDL2_USES=		iconv
-SDL2_USE=		sdl=sdl2
-SDL2_USE_OFF=		sdl=sdl
-SDL2_CMAKE_BOOL=	ENABLE_SDL2
-SDL2_CFLAGS=		-I${ICONV_INCLUDE_PATH}
-WINUAE_DESC=		Build with WinUAE CPU core
-WINUAE_CMAKE_BOOL=	ENABLE_WINUAE_CPU
+CMAKE_ARGS=	-DETCDIR:PATH="${PREFIX}/etc"
+
+OPTIONS_DEFINE=		DEBUG DOCS DSP TRACE SMALL
+OPTIONS_DEFAULT=	DOCS DSP TRACE
+
+DEBUG_DESC=		Build with debug information
+DOCS_DESC=		Install extra documentation
+DSP_DESC=		DSP 56k emulator for Falcon mode
+TRACE_DESC=		Tracing messages for debugging
+SMALL_DESC=		Use less memory at the expense of emulation speed
+
+DSP_CMAKE_BOOL=		ENABLE_DSP_EMU
+TRACE_CMAKE_BOOL=	ENABLE_TRACING
+SMALL_CMAKE_BOOL=	ENABLE_SMALL_MEM
+
+TEST_TARGET=	test
+
+.include <bsd.port.options.mk>
+
+# CMAKE_ARGS CMAKE_BUILD_TYPE is getting overriden
+.if ${PORT_OPTIONS:MDEBUG}
+CMAKE_BUILD_TYPE=Debug
+INSTALL_TARGET=install
+.else
+CMAKE_BUILD_TYPE=Release
+.endif
 
 post-patch:
 .for i in doc/*.1 python-ui/*.1 tools/*.1 tools/debugger/*.1 tools/hconsole/*.1 tools/hmsa/*.1
diff --git a/emulators/hatari/distinfo b/emulators/hatari/distinfo
index 535bcf7864db..5a3cac4e6c7d 100644
--- a/emulators/hatari/distinfo
+++ b/emulators/hatari/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1645876638
-SHA256 (hatari-2.3.1.tar.bz2) = 44a2f62ca995e38d9e0874806956f0b9c3cc84ea89e0169a63849b63cd3b64bd
-SIZE (hatari-2.3.1.tar.bz2) = 4334129
+TIMESTAMP = 1714071173
+SHA256 (hatari-2.5.0.tar.bz2) = d76c22fc3de69fb1bb4af3e8ba500b7e40f5a2a45d07783f24cb7101e53c3457
+SIZE (hatari-2.5.0.tar.bz2) = 2820580
diff --git a/emulators/hatari/files/patch-CMakeLists.txt b/emulators/hatari/files/patch-CMakeLists.txt
deleted file mode 100644
index d7d7c63a51cb..000000000000
--- a/emulators/hatari/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
---- CMakeLists.txt.orig	2018-03-20 22:30:14 UTC
-+++ CMakeLists.txt
-@@ -187,7 +187,12 @@
- check_include_files(termios.h HAVE_TERMIOS_H)
- check_include_files(strings.h HAVE_STRINGS_H)
- check_include_files(malloc.h HAVE_MALLOC_H)
--check_include_files(${SDL_INCLUDE_DIR}/SDL_config.h HAVE_SDL_CONFIG_H)
-+foreach(_sid ${SDL_INCLUDE_DIR})
-+  check_include_files(${_sid}/SDL_config.h HAVE_SDL_CONFIG_H)
-+  if(HAVE_SDL_CONFIG_H)
-+    break()
-+  endif()
-+endforeach()
- check_include_files(sys/time.h HAVE_SYS_TIME_H)
- check_include_files(sys/times.h HAVE_SYS_TIMES_H)
- check_include_files(utime.h HAVE_UTIME_H)
diff --git a/emulators/hatari/files/patch-cmake_FindReadline.cmake b/emulators/hatari/files/patch-cmake_FindReadline.cmake
new file mode 100644
index 000000000000..a610362cb09b
--- /dev/null
+++ b/emulators/hatari/files/patch-cmake_FindReadline.cmake
@@ -0,0 +1,17 @@
+--- cmake/FindReadline.cmake.orig	2024-04-30 09:37:41 UTC
++++ cmake/FindReadline.cmake
+@@ -19,9 +19,11 @@ if(Readline_FOUND)
+ if(Readline_FOUND)
+ 	set(CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARY})
+ 	set(CMAKE_REQUIRED_INCLUDES ${READLINE_INCLUDE_DIR})
+-	check_symbol_exists(rl_filename_completion_function
+-			    "stdio.h;readline.h"
+-			    HAVE_RL_COMPLETION_FUNCTION)
++	# check_symbol_exists faile for readline on FreeBSD. Bypassing
++	set(HAVE_RL_COMPLETION_FUNCTION TRUE)
++	#check_symbol_exists(rl_filename_completion_function
++	#		    "stdio.h;readline.h"
++	#		    HAVE_RL_COMPLETION_FUNCTION)
+ 	# If linking did not work, we might have to link
+ 	# explicitly against libtermcap or libncurses
+ 	if(NOT HAVE_RL_COMPLETION_FUNCTION)
diff --git a/emulators/hatari/files/patch-share_CMakeLists.txt b/emulators/hatari/files/patch-share_CMakeLists.txt
index 5a8031d36044..a8294702cd55 100644
--- a/emulators/hatari/files/patch-share_CMakeLists.txt
+++ b/emulators/hatari/files/patch-share_CMakeLists.txt
@@ -1,25 +1,23 @@
---- share/CMakeLists.txt.orig	2018-02-07 18:33:55 UTC
+--- share/CMakeLists.txt.orig	2024-04-26 10:53:02 UTC
 +++ share/CMakeLists.txt
-@@ -5,9 +5,8 @@ foreach(size 32x32 48x48 64x64 128x128 2
- 	install(FILES icons/hicolor/${size}/mimetypes/application-x-st-disk-image.png
+@@ -6,8 +6,8 @@ foreach(size 32x32 48x48 64x64 128x128 256x256)
  		DESTINATION ${ICONDIR}/${size}/mimetypes)
  	foreach(type vnd.msa vnd.fastcopy x-stx)
--		install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
+ 		install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
 -				application-x-st-disk-image.png
 -				\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ICONDIR}/${size}/mimetypes/application-${type}-disk-image.png)
-+		install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink application-x-st-disk-image.png application-${type}-disk-image.png
++				application-x-st-disk-image.png application-${type}-disk-image.png
 +				WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ICONDIR}/${size}/mimetypes)
  				")
  	endforeach()
  endforeach()
-@@ -17,9 +16,8 @@ install(FILES icons/hicolor/scalable/app
- install(FILES icons/hicolor/scalable/mimetypes/application-x-st-disk-image.svg
+@@ -18,8 +18,8 @@ foreach(type vnd.msa vnd.fastcopy x-stx)
  	DESTINATION ${ICONDIR}/scalable/mimetypes)
  foreach(type vnd.msa vnd.fastcopy x-stx)
--	install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
+ 	install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
 -			application-x-st-disk-image.svg
 -			\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ICONDIR}/scalable/mimetypes/application-${type}-disk-image.svg)
-+	install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink application-x-st-disk-image.svg application-${type}-disk-image.svg
++			application-x-st-disk-image.svg application-${type}-disk-image.svg 
 +			WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ICONDIR}/scalable/mimetypes)
  			")
  endforeach()
diff --git a/emulators/hatari/files/patch-tools_atari-hd-image.sh b/emulators/hatari/files/patch-tools_atari-hd-image.sh
index 0d26d83f5fb3..9b92f43e239b 100644
--- a/emulators/hatari/files/patch-tools_atari-hd-image.sh
+++ b/emulators/hatari/files/patch-tools_atari-hd-image.sh
@@ -1,13 +1,13 @@
---- tools/atari-hd-image.sh.orig	2022-02-26 12:11:11 UTC
+--- tools/atari-hd-image.sh.orig	2024-04-26 10:23:56 UTC
 +++ tools/atari-hd-image.sh
-@@ -33,8 +33,8 @@ PATH=/sbin:$PATH
+@@ -33,8 +33,8 @@ export PATH
  export PATH
  
  # check tools
--if [ -z "$(which mkdosfs)" ] || [ -z "$(which python)" ]; then
--	echo "ERROR: either mkdosfs or python tool missing!"
+-if [ -z "$(which mkdosfs)" ] || [ -z "$(which python3)" ]; then
+-	echo "ERROR: either mkdosfs or python3 missing!"
 +if [ -z "$(which mkdosfs)" ] || [ -z "$(which %%PYTHON_VERSION%%)" ]; then
-+	echo "ERROR: either mkdosfs or %%PYTHON_VERSION%% tool missing!"
++	echo "ERROR: either mkdosfs or %%PYTHON_VERSION%% missing!"
  	exit 1
  fi
  
@@ -15,10 +15,10 @@
  # - http://en.wikipedia.org/wiki/File_Allocation_Table#Boot_Sector
  # For DOS MBR, the values are little endian.
  # -----------
--python << EOF
+-python3 << EOF
 -#!/usr/bin/env python3
 +%%PYTHON_VERSION%% << EOF
-+#!/usr/bin/env %%PYTHON_VERSION%%3
++#!/usr/bin/env %%PYTHON_VERSION%%
  mbr = bytearray(512)
  
  def set_long(idx, value):
diff --git a/emulators/hatari/pkg-plist b/emulators/hatari/pkg-plist
index 03175af65fc3..c1b06045aef2 100644
--- a/emulators/hatari/pkg-plist
+++ b/emulators/hatari/pkg-plist
@@ -7,35 +7,6 @@ bin/hatari_profile
 bin/hatariui
 bin/hmsa
 bin/zip2st
-%%DATADIR%%/hatari-icon.bmp
-%%DATADIR%%/hatariui/README
-%%DATADIR%%/hatariui/TODO
-%%DATADIR%%/hatariui/config.py
-%%DATADIR%%/hatariui/conftypes.py
-%%DATADIR%%/hatariui/debugui.py
-%%DATADIR%%/hatariui/dialogs.py
-%%DATADIR%%/hatariui/hatari-icon.png
-%%DATADIR%%/hatariui/hatari-logo.png
-%%DATADIR%%/hatariui/hatari.py
-%%DATADIR%%/hatariui/hatariui.py
-%%DATADIR%%/hatariui/%%CMAKE_BUILD_TYPE%%-notes.txt
-%%DATADIR%%/hatariui/uihelpers.py
-%%DATADIR%%/hconsole/example-commands
-%%DATADIR%%/hconsole/example-debugger
-%%DATADIR%%/hconsole/example.py
-%%DATADIR%%/hconsole/hconsole.py
-%%DATADIR%%/hconsole/%%CMAKE_BUILD_TYPE%%-notes.txt
-%%DATADIR%%/tos.img
-share/man/man1/atari-convert-dir.1.gz
-share/man/man1/atari-hd-image.1.gz
-share/man/man1/gst2ascii.1.gz
-share/man/man1/hatari-prg-args.1.gz
-share/man/man1/hatari.1.gz
-share/man/man1/hatari_profile.1.gz
-share/man/man1/hatariui.1.gz
-share/man/man1/hconsole.1.gz
-share/man/man1/hmsa.1.gz
-share/man/man1/zip2st.1.gz
 share/applications/hatari.desktop
 share/applications/hatariui.desktop
 %%PORTDOCS%%%%DOCSDIR%%/CMakeLists.txt
@@ -46,6 +17,11 @@ share/applications/hatariui.desktop
 %%PORTDOCS%%%%DOCSDIR%%/compatibility.html
 %%PORTDOCS%%%%DOCSDIR%%/debugger.html
 %%PORTDOCS%%%%DOCSDIR%%/emutos.txt
+%%PORTDOCS%%%%DOCSDIR%%/hatari-ui.html
+%%PORTDOCS%%%%DOCSDIR%%/hatariui/README
+%%PORTDOCS%%%%DOCSDIR%%/hatariui/TODO
+%%PORTDOCS%%%%DOCSDIR%%/hatariui/release-notes.txt
+%%PORTDOCS%%%%DOCSDIR%%/hconsole/release-notes.txt
 %%PORTDOCS%%%%DOCSDIR%%/images/callgraph.png
 %%PORTDOCS%%%%DOCSDIR%%/images/callgraph.svg
 %%PORTDOCS%%%%DOCSDIR%%/images/cpu.png
@@ -54,6 +30,17 @@ share/applications/hatariui.desktop
 %%PORTDOCS%%%%DOCSDIR%%/images/fileselector.png
 %%PORTDOCS%%%%DOCSDIR%%/images/floppydisks.png
 %%PORTDOCS%%%%DOCSDIR%%/images/harddisks.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-0.7.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-0.9.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-debug.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-input.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-noembed.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-peripherals.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-quit.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-setup-edit.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-setup.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-speed.png
+%%PORTDOCS%%%%DOCSDIR%%/images/hatari-ui-trace.png
 %%PORTDOCS%%%%DOCSDIR%%/images/joystick.png
 %%PORTDOCS%%%%DOCSDIR%%/images/kcachegrind.png
 %%PORTDOCS%%%%DOCSDIR%%/images/keyboard.png
@@ -72,13 +59,28 @@ share/applications/hatariui.desktop
 %%PORTDOCS%%%%DOCSDIR%%/manual.html
 %%PORTDOCS%%%%DOCSDIR%%/memory-usage.txt
 %%PORTDOCS%%%%DOCSDIR%%/midi-linux.txt
-%%PORTDOCS%%%%DOCSDIR%%/%%CMAKE_BUILD_TYPE%%-checklist.txt
-%%PORTDOCS%%%%DOCSDIR%%/%%CMAKE_BUILD_TYPE%%-notes.txt
+%%PORTDOCS%%%%DOCSDIR%%/release-checklist.txt
+%%PORTDOCS%%%%DOCSDIR%%/release-notes.txt
 %%PORTDOCS%%%%DOCSDIR%%/scsi-driver.txt
 %%PORTDOCS%%%%DOCSDIR%%/thanks.txt
 %%PORTDOCS%%%%DOCSDIR%%/toc.js
 %%PORTDOCS%%%%DOCSDIR%%/todo.txt
 %%PORTDOCS%%%%DOCSDIR%%/video-recording.txt
+%%DATADIR%%/hatari-icon.bmp
+%%DATADIR%%/hatariui/config.py
+%%DATADIR%%/hatariui/conftypes.py
+%%DATADIR%%/hatariui/debugui.py
+%%DATADIR%%/hatariui/dialogs.py
+%%DATADIR%%/hatariui/hatari-icon.png
+%%DATADIR%%/hatariui/hatari-logo.png
+%%DATADIR%%/hatariui/hatari.py
+%%DATADIR%%/hatariui/hatariui.py
+%%DATADIR%%/hatariui/uihelpers.py
+%%DATADIR%%/hconsole/example-commands
+%%DATADIR%%/hconsole/example-debugger
+%%DATADIR%%/hconsole/example.py
+%%DATADIR%%/hconsole/hconsole.py
+%%DATADIR%%/tos.img
 share/icons/hicolor/128x128/apps/hatari.png
 share/icons/hicolor/128x128/mimetypes/application-vnd.fastcopy-disk-image.png
 share/icons/hicolor/128x128/mimetypes/application-vnd.msa-disk-image.png
@@ -109,4 +111,14 @@ share/icons/hicolor/scalable/mimetypes/application-vnd.fastcopy-disk-image.svg
 share/icons/hicolor/scalable/mimetypes/application-vnd.msa-disk-image.svg
 share/icons/hicolor/scalable/mimetypes/application-x-st-disk-image.svg
 share/icons/hicolor/scalable/mimetypes/application-x-stx-disk-image.svg
+share/man/man1/atari-convert-dir.1.gz
+share/man/man1/atari-hd-image.1.gz
+share/man/man1/gst2ascii.1.gz
+share/man/man1/hatari-prg-args.1.gz
+share/man/man1/hatari.1.gz
+share/man/man1/hatari_profile.1.gz
+share/man/man1/hatariui.1.gz
+share/man/man1/hconsole.1.gz
+share/man/man1/hmsa.1.gz
+share/man/man1/zip2st.1.gz
 share/mime/packages/hatari.xml