git: cbfb68895fa7 - main - emulators/fceux: update to 2.7.0

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Fri, 16 Oct 2026 19:04:50 UTC
The branch main has been updated by fuz:

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

commit cbfb68895fa705a83995a1d980d61753f4bc7c08
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2026-10-09 22:18:31 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2026-10-16 19:03:13 +0000

    emulators/fceux: update to 2.7.0
    
     - remove qt5 flavor to get ahead of the upcoming qt5 removal
     - upstream is now compatible with FFmpeg 9
    
    Changelog: https://github.com/TASEmulators/fceux/releases/tag/fceux-2.7.0
---
 emulators/fceux/Makefile            |  31 +---
 emulators/fceux/distinfo            |  10 +-
 emulators/fceux/files/patch-ffmpeg9 | 275 ------------------------------------
 3 files changed, 7 insertions(+), 309 deletions(-)

diff --git a/emulators/fceux/Makefile b/emulators/fceux/Makefile
index d07977fb16b9..9a46d80f5b2b 100644
--- a/emulators/fceux/Makefile
+++ b/emulators/fceux/Makefile
@@ -1,13 +1,8 @@
 PORTNAME=	fceux
-DISTVERSIONPREFIX=	v
-DISTVERSION=	2.6.6
-PORTREVISION=	8
+DISTVERSIONPREFIX=	fceux-
+DISTVERSION=	2.7.0
 CATEGORIES=	emulators games
 
-PATCH_SITES=	https://github.com/TASEmulators/fceux/commit/
-PATCHFILES=	396096223ec58ff7f437ec0de7275240946531c5.diff:-p1 \
-		d2ee6351c08518c866bb48d89f58a67bb36931fc.diff:-p1
-
 MAINTAINER=	fuz@FreeBSD.org
 COMMENT=	NES emulator
 WWW=		https://fceux.com
@@ -17,38 +12,20 @@ LICENSE_FILE=	${WRKSRC}/COPYING
 
 LIB_DEPENDS=	libminizip.so:archivers/minizip
 
-FLAVORS=	qt5 qt6
-FLAVOR?=	${FLAVORS:[1]}
-qt5_PKGNAMEPREFIX=	qt5-
-qt6_PKGNAMEPREFIX=	qt6-
-
-USES=		cmake desktop-file-utils gl libarchive lua:51 pkgconfig sdl
+USES=		cmake desktop-file-utils gl libarchive lua:51 pkgconfig qt:6 sdl
 USE_GITHUB=	yes
 GH_ACCOUNT=	TASEmulators
 USE_GL=		gl glu
+USE_QT=		base declarative
 USE_SDL=	sdl2
 
-.if ${FLAVOR} == qt5
-USE_QT=		buildtools:build core gui opengl qmake:build widgets
-USES+=		qt:5
-CMAKE_OFF=	QT6
-.else
-USES+=		qt:6
-USE_QT=		base
-CMAKE_ON=	QT6
-.endif
-
 CFLAGS+=	-DPUBLIC_RELEASE
 CMAKE_ON+=	GLVND QHELP QT6
 
 OPTIONS_DEFINE=		DOCS FFMPEG X264 X265
 OPTIONS_DEFAULT=	FFMPEG X264 X265
 DOCS_CMAKE_BOOL=	QHELP
-.if ${FLAVOR} == qt5
-DOCS_USE=		qt=help,sql
-.else
 DOCS_USE=		qt=tools
-.endif
 FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg
 X264_LIB_DEPENDS=	libx264.so:multimedia/libx264
 X265_LIB_DEPENDS=	libx265.so:multimedia/x265
diff --git a/emulators/fceux/distinfo b/emulators/fceux/distinfo
index 7d06afc861f1..05ebe59dac9a 100644
--- a/emulators/fceux/distinfo
+++ b/emulators/fceux/distinfo
@@ -1,7 +1,3 @@
-TIMESTAMP = 1694135542
-SHA256 (TASEmulators-fceux-v2.6.6_GH0.tar.gz) = 0320241d45c6d609f7aeb6f85fdd9019552047206b0864a7f9fddff15b004daa
-SIZE (TASEmulators-fceux-v2.6.6_GH0.tar.gz) = 23330274
-SHA256 (396096223ec58ff7f437ec0de7275240946531c5.diff) = ab77ef293252ac5bad91ffd299dfcdac326ebcad821ac84526c45d8af329d973
-SIZE (396096223ec58ff7f437ec0de7275240946531c5.diff) = 1134
-SHA256 (d2ee6351c08518c866bb48d89f58a67bb36931fc.diff) = 08c352b145c040bd5db7162fbaa69e49914d550f2d90fc0f7da6aa48888d7572
-SIZE (d2ee6351c08518c866bb48d89f58a67bb36931fc.diff) = 1038
+TIMESTAMP = 1791584061
+SHA256 (TASEmulators-fceux-fceux-2.7.0_GH0.tar.gz) = 4473d073c5a95702c6c02d11432faa8ffae624d9e2f356190221b5f258d80c80
+SIZE (TASEmulators-fceux-fceux-2.7.0_GH0.tar.gz) = 23853517
diff --git a/emulators/fceux/files/patch-ffmpeg9 b/emulators/fceux/files/patch-ffmpeg9
deleted file mode 100644
index fac6d3048431..000000000000
--- a/emulators/fceux/files/patch-ffmpeg9
+++ /dev/null
@@ -1,275 +0,0 @@
-brdiff --git a/src/drivers/Qt/AviRecord.cpp b/src/drivers/Qt/AviRecord.cpp
-index e6a695d..409aa86 100644
---- src/drivers/Qt/AviRecord.cpp
-+++ src/drivers/Qt/AviRecord.cpp
-@@ -64,6 +64,51 @@ extern "C"
- #include "libswresample/swresample.h"
- }
- #endif
-+
-+// FFmpeg 7.1 deprecated the AVCodec capability arrays in favour of
-+// avcodec_get_supported_config(); FFmpeg 9 removed them outright.
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 13, 100)
-+static const enum AVPixelFormat *avCodecPixFmts(const AVCodec *codec)
-+{
-+	const enum AVPixelFormat *cfg = NULL;
-+	avcodec_get_supported_config( NULL, codec, AV_CODEC_CONFIG_PIX_FORMAT, 0,
-+			reinterpret_cast<const void**>(&cfg), NULL );
-+	return cfg;
-+}
-+
-+static const enum AVSampleFormat *avCodecSampleFmts(const AVCodec *codec)
-+{
-+	const enum AVSampleFormat *cfg = NULL;
-+	avcodec_get_supported_config( NULL, codec, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0,
-+			reinterpret_cast<const void**>(&cfg), NULL );
-+	return cfg;
-+}
-+
-+static const int *avCodecSampleRates(const AVCodec *codec)
-+{
-+	const int *cfg = NULL;
-+	avcodec_get_supported_config( NULL, codec, AV_CODEC_CONFIG_SAMPLE_RATE, 0,
-+			reinterpret_cast<const void**>(&cfg), NULL );
-+	return cfg;
-+}
-+
-+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)
-+static const AVChannelLayout *avCodecChLayouts(const AVCodec *codec)
-+{
-+	const AVChannelLayout *cfg = NULL;
-+	avcodec_get_supported_config( NULL, codec, AV_CODEC_CONFIG_CHANNEL_LAYOUT, 0,
-+			reinterpret_cast<const void**>(&cfg), NULL );
-+	return cfg;
-+}
-+#endif
-+#else
-+static const enum AVPixelFormat *avCodecPixFmts(const AVCodec *codec){ return codec->pix_fmts; }
-+static const enum AVSampleFormat *avCodecSampleFmts(const AVCodec *codec){ return codec->sample_fmts; }
-+static const int *avCodecSampleRates(const AVCodec *codec){ return codec->supported_samplerates; }
-+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)
-+static const AVChannelLayout *avCodecChLayouts(const AVCodec *codec){ return codec->ch_layouts; }
-+#endif
-+#endif
- #endif
- 
- #include "Qt/AviRecord.h"
-@@ -1173,19 +1218,21 @@ static int initVideoStream( const char *codec_name, OutputStream *ost )
- 	//printf("compression_level:%i\n", c->compression_level);
- 	//printf("TAG:0x%08X\n", c->codec_tag);
- 
--	if ( codec->pix_fmts )
-+	const enum AVPixelFormat *pixFmts = avCodecPixFmts(codec);
-+
-+	if ( pixFmts )
- 	{
- 		if ( ost->pixelFormat == -1 )
- 		{
- 			// Auto select least lossy format to comvert to.
--			c->pix_fmt = avcodec_find_best_pix_fmt_of_list( codec->pix_fmts, AV_PIX_FMT_BGRA, 0, NULL);
-+			c->pix_fmt = avcodec_find_best_pix_fmt_of_list( pixFmts, AV_PIX_FMT_BGRA, 0, NULL);
- 		}
- 
- 		int i=0, formatOk=0;
--		while (codec->pix_fmts[i] != -1)
-+		while (pixFmts[i] != -1)
- 		{
--			//printf("Codec PIX_FMT: %i\n", codec->pix_fmts[i]);
--			if ( codec->pix_fmts[i] == c->pix_fmt )
-+			//printf("Codec PIX_FMT: %i\n", pixFmts[i]);
-+			if ( pixFmts[i] == c->pix_fmt )
- 			{
- 				printf("CODEC Supports PIX_FMT:%i\n", c->pix_fmt );
- 				formatOk = 1;
-@@ -1196,7 +1243,7 @@ static int initVideoStream( const char *codec_name, OutputStream *ost )
- 		{
- 			printf("CODEC Does Not Support PIX_FMT:%i\n", c->pix_fmt);
- 
--			c->pix_fmt = avcodec_find_best_pix_fmt_of_list( codec->pix_fmts, AV_PIX_FMT_BGRA, 0, NULL);
-+			c->pix_fmt = avcodec_find_best_pix_fmt_of_list( pixFmts, AV_PIX_FMT_BGRA, 0, NULL);
- 
- 			printf("Changing to:%i\n", c->pix_fmt);
- 		}
-@@ -1332,12 +1379,14 @@ static int select_audio_channel_layout(const OutputStream *ost, const AVCodec *c
- 	av_channel_layout_from_mask( &defaultLayout, AV_CH_LAYOUT_MONO );
- 	#endif
- 
--	if (!codec->ch_layouts)
-+	const AVChannelLayout *chLayouts = avCodecChLayouts(codec);
-+
-+	if (!chLayouts)
- 	{
- 		return av_channel_layout_copy(dst, &defaultLayout);
- 	}
- 
--	best_ch_layout = p = codec->ch_layouts;
-+	best_ch_layout = p = chLayouts;
- 	while (p && p->nb_channels)
- 	{
- 		int nb_channels = p->nb_channels;
-@@ -1400,17 +1449,20 @@ static int initAudioStream( const char *codec_name, OutputStream *ost )
- 
- 	/* put sample parameters */
- 
-+	const enum AVSampleFormat *sampleFmts = avCodecSampleFmts(codec);
-+	const int *sampleRates = avCodecSampleRates(codec);
-+
- 	// Sample Format Selection
- 	if ( ost->sampleFormat > 0 )
- 	{
- 		c->sample_fmt  = (AVSampleFormat)ost->sampleFormat;
- 
--		if ( codec->sample_fmts )
-+		if ( sampleFmts )
- 		{
- 			int i=0, formatOk=0;
--			while ( codec->sample_fmts[i] != -1 )
-+			while ( sampleFmts[i] != -1 )
- 			{
--				if ( c->sample_fmt == codec->sample_fmts[i] )
-+				if ( c->sample_fmt == sampleFmts[i] )
- 				{
- 					formatOk = true; break;
- 				}
-@@ -1418,13 +1470,13 @@ static int initAudioStream( const char *codec_name, OutputStream *ost )
- 			}
- 			if ( !formatOk )
- 			{
--				c->sample_fmt = codec->sample_fmts  ? codec->sample_fmts[0] : AV_SAMPLE_FMT_S16;
-+				c->sample_fmt = sampleFmts  ? sampleFmts[0] : AV_SAMPLE_FMT_S16;
- 			}
- 		}
- 	}
- 	else
- 	{
--		c->sample_fmt = codec->sample_fmts ? codec->sample_fmts[0] : AV_SAMPLE_FMT_S16;
-+		c->sample_fmt = sampleFmts ? sampleFmts[0] : AV_SAMPLE_FMT_S16;
- 	}
- 
- 	// Sample Rate Selection
-@@ -1432,12 +1484,12 @@ static int initAudioStream( const char *codec_name, OutputStream *ost )
- 	{
- 		c->sample_rate = ost->sampleRate;
- 
--		if ( codec->supported_samplerates )
-+		if ( sampleRates )
- 		{
- 			int i=0, formatOk=0;
--			while ( codec->supported_samplerates[i] != 0 )
-+			while ( sampleRates[i] != 0 )
- 			{
--				if ( c->sample_rate == codec->supported_samplerates[i] )
-+				if ( c->sample_rate == sampleRates[i] )
- 				{
- 					formatOk = true; break;
- 				}
-@@ -1445,13 +1497,13 @@ static int initAudioStream( const char *codec_name, OutputStream *ost )
- 			}
- 			if ( !formatOk )
- 			{
--				c->sample_rate    = codec->supported_samplerates ? codec->supported_samplerates[0] : audioSampleRate;
-+				c->sample_rate    = sampleRates ? sampleRates[0] : audioSampleRate;
- 			}
- 		}
- 	}
- 	else
- 	{
--		c->sample_rate    = codec->supported_samplerates ? codec->supported_samplerates[0] : audioSampleRate;
-+		c->sample_rate    = sampleRates ? sampleRates[0] : audioSampleRate;
- 	}
- 
- 	// Channel Layout Selection
-@@ -2983,21 +3035,23 @@ void LibavOptionsPage::initPixelFormatSelect(const char *codec_name)
- 	{
- 		return;
- 	}
--	if ( c->pix_fmts )
-+	const enum AVPixelFormat *pixFmts = avCodecPixFmts(c);
-+
-+	if ( pixFmts )
- 	{
- 		int i=0; //, formatOk=0;
--		while (c->pix_fmts[i] != -1)
-+		while (pixFmts[i] != -1)
- 		{
--			desc = av_pix_fmt_desc_get( c->pix_fmts[i] );
-+			desc = av_pix_fmt_desc_get( pixFmts[i] );
- 
- 			if ( desc )
- 			{
--				//printf("Codec PIX_FMT: %i: %s 0x%04X\t-  %s\n", c->pix_fmts[i],
--				//		desc->name, av_get_pix_fmt_loss(c->pix_fmts[i], AV_PIX_FMT_BGRA, 0), desc->alias);
-+				//printf("Codec PIX_FMT: %i: %s 0x%04X\t-  %s\n", pixFmts[i],
-+				//		desc->name, av_get_pix_fmt_loss(pixFmts[i], AV_PIX_FMT_BGRA, 0), desc->alias);
- 
--				videoPixfmt->addItem( tr(desc->name), c->pix_fmts[i]);
-+				videoPixfmt->addItem( tr(desc->name), pixFmts[i]);
- 
--				if ( LIBAV::video_st.pixelFormat == c->pix_fmts[i] )
-+				if ( LIBAV::video_st.pixelFormat == pixFmts[i] )
- 				{
- 					videoPixfmt->setCurrentIndex( videoPixfmt->count() - 1 );
- 					formatOk = true;
-@@ -3086,20 +3140,22 @@ void LibavOptionsPage::initSampleFormatSelect( const char *codec_name )
- 	{
- 		return;
- 	}
--	if ( c->sample_fmts )
-+	const enum AVSampleFormat *sampleFmts = avCodecSampleFmts(c);
-+
-+	if ( sampleFmts )
- 	{
- 		int i=0;
- 		const char *fmtName;
- 
--		while ( c->sample_fmts[i] != -1 )
-+		while ( sampleFmts[i] != -1 )
- 		{
--			fmtName = av_get_sample_fmt_name( c->sample_fmts[i] );
-+			fmtName = av_get_sample_fmt_name( sampleFmts[i] );
- 
- 			if ( fmtName )
- 			{
--				audioSamplefmt->addItem( tr(fmtName), c->sample_fmts[i] );
-+				audioSamplefmt->addItem( tr(fmtName), sampleFmts[i] );
- 
--				if ( LIBAV::audio_st.sampleFormat == c->sample_fmts[i] )
-+				if ( LIBAV::audio_st.sampleFormat == sampleFmts[i] )
- 				{
- 					audioSamplefmt->setCurrentIndex( audioSamplefmt->count() - 1 );
- 					formatOk = true;
-@@ -3129,18 +3185,20 @@ void LibavOptionsPage::initSampleRateSelect( const char *codec_name )
- 	{
- 		return;
- 	}
--	if ( c->supported_samplerates )
-+	const int *sampleRates = avCodecSampleRates(c);
-+
-+	if ( sampleRates )
- 	{
- 		int i=0;
- 		char rateName[64];
- 
--		while ( c->supported_samplerates[i] != 0 )
-+		while ( sampleRates[i] != 0 )
- 		{
--			sprintf( rateName, "%i", c->supported_samplerates[i] );
-+			sprintf( rateName, "%i", sampleRates[i] );
- 
--			audioSampleRate->addItem( tr(rateName), c->supported_samplerates[i] );
-+			audioSampleRate->addItem( tr(rateName), sampleRates[i] );
- 
--			if ( LIBAV::audio_st.sampleRate == c->supported_samplerates[i] )
-+			if ( LIBAV::audio_st.sampleRate == sampleRates[i] )
- 			{
- 				audioSampleRate->setCurrentIndex( audioSampleRate->count() - 1 );
- 				formatOk = true;
-@@ -3191,7 +3249,7 @@ void LibavOptionsPage::initChannelLayoutSelect( const char *codec_name )
- 
- 	}
- 	#else
--	const AVChannelLayout *p = c->ch_layouts;
-+	const AVChannelLayout *p = avCodecChLayouts(c);
- 
- 	while (p && p->nb_channels)
- 	{