diff --git a/emulators/duckstation/Makefile b/emulators/duckstation/Makefile index 851bd5fbdd33..e861d907ea0d 100644 --- a/emulators/duckstation/Makefile +++ b/emulators/duckstation/Makefile @@ -1,63 +1,64 @@ PORTNAME= duckstation PORTVERSION= 20240614 DISTVERSIONPREFIX= v +PORTREVISION= 1 CATEGORIES= emulators MAINTAINER= martymac@FreeBSD.org COMMENT= Free and open-source PlayStation emulator WWW= https://www.duckstation.org LICENSE= GPLv3 NOT_FOR_ARCHS= i386 NOT_FOR_ARCHS_REASON= src/common/fastjmp.cpp:186:2: error: Unknown platform LIB_DEPENDS= libzstd.so:archivers/zstd \ libwebp.so:graphics/webp \ libpng.so:graphics/png \ libfreetype.so:print/freetype2 \ libcurl.so:ftp/curl \ libwayland-client.so:graphics/wayland \ libwayland-egl.so:graphics/wayland \ libbacktrace.so:devel/libbacktrace \ libpulse.so:audio/pulseaudio \ libjack.so:audio/jack \ libsndio.so:audio/sndio \ libdbus-1.so:devel/dbus \ libxkbcommon.so:x11/libxkbcommon # XXX Necessary for Qt6/FindWrapVulkanHeaders.cmake #BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers USES= cmake compiler:c++20-lang gl jpeg kde:5 pkgconfig qt:6 sdl xorg USE_GITHUB= yes GH_ACCOUNT= stenzek # See: https://github.com/stenzek/duckstation/commits/latest GH_TAGNAME= v0.1-6937 USE_GL= egl USE_SDL= sdl2 USE_XORG= ice x11 xext xrandr xrender USE_QT= base tools USE_KDE= ecm:build # XXX Vulkan support needs libshaderc_shared.so:graphics/shaderc but # Duckstation embeds its own -patched/incompatible- version # (see: scripts/shaderc-changes.patch) so we just disable it for now. CMAKE_ARGS+= \ -DDUCKSTATION_APPLICATION_DIR_PATH:STRING=${DATADIR} \ -DENABLE_VULKAN:BOOL=OFF # - Program and resources are copied from target dir ${CONFIGURE_WRKSRC}/bin # because only necessary resources are installed there do-install: cd ${CONFIGURE_WRKSRC}/bin && \ ${COPYTREE_SHARE} resources/ ${STAGEDIR}${DATADIR}/ && \ ${COPYTREE_SHARE} translations/ ${STAGEDIR}${DATADIR}/ ${INSTALL_PROGRAM} \ ${CONFIGURE_WRKSRC}/bin/duckstation-qt ${STAGEDIR}${PREFIX}/bin/ ${INSTALL_DATA} ${CONFIGURE_WRKSRC}/bin/resources/images/duck.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/duckstation.png ${INSTALL_DATA} ${FILESDIR}/duckstation.desktop ${STAGEDIR}${DESKTOPDIR} .include diff --git a/emulators/duckstation/files/patch-src-common-byte_stream.cpp b/emulators/duckstation/files/patch-src-common-byte_stream.cpp new file mode 100644 index 000000000000..4b56b7c460b6 --- /dev/null +++ b/emulators/duckstation/files/patch-src-common-byte_stream.cpp @@ -0,0 +1,11 @@ +--- src/common/byte_stream.cpp.orig 2024-06-14 05:59:32 UTC ++++ src/common/byte_stream.cpp +@@ -1118,7 +1118,7 @@ std::unique_ptr ByteStream::OpenFile(const + std::snprintf(temporaryFileName, fileNameLength + 8, "%s.XXXXXX", fileName); + + // fill in random characters +-#if defined(__linux__) || defined(__ANDROID__) || defined(__APPLE__) ++#if defined(__linux__) || defined(__ANDROID__) || defined(__APPLE__) || defined(__FreeBSD__) + mkstemp(temporaryFileName); + #else + mktemp(temporaryFileName);