On Wed Dec 14, 2022 at 11:33:23AM +0100, Stefan Sperling wrote:
> On Wed, Dec 14, 2022 at 10:53:09AM +0100, Stefan Sperling wrote:
> > On Tue, Dec 13, 2022 at 11:16:59PM +0100, Stefan Sperling wrote:
> > > On Sun, Dec 04, 2022 at 05:19:01PM +0100, Rafael Sadowski wrote:
> > > > Hi Thomas, Hi ports@,
> > > >
> > > >
> > > > Update citra-nightly to 1816. This update results form the devel/catch2
> > > > update and depends on it. There a some exciting port changes:
> > > >
> > > > - Switch to the github repository.
> > > > - 1816 depends on C++20 so I add COMPILER and point to clang only.
> > > > - CXXFLAGS deleted as it no longer needed
> > > > - Use fmt, boost, sdl and robin-map from system
> > > > - Remove {catch2,fmt,boost} before configure to ensure it is not picked
> > > > up
> > > > - This update needs devel/catch2>=3.2.0 (see ports@)
> > > >
> > > > I am not a user of citra so please test and send feedback.
> > > >
> > > > Rafael
> > > >
> > >
> > > The 'citra' SDL binary seems to work fine.
> > >
> > > But citra-qt is broken by this update. No image is being displayed in
> > > the window during emulation. citra-qt works in citra-0.0.0.729p5.
> >
> > In case a reproducer is useful, download this .3dsx file:
> > https://archive.org/download/thc-3ds-physics-sandbox/3DSPhysicsSandbox_v0.3.7z/3ds%2Fphysicssandbox%2Fphysicssandbox.3dsx
> > This game is BSD-licensed homebrew, see here for source code:
> > https://github.com/pieface-/3dsphysicssandbox
> >
> > With citra-0.0.0.729p5 it runs well in both citra and citra-qt (use the
> > mouse to move the squares on the "touchscreen" and watch them bounce).
> >
> > With updated citra, the graphics only show up in citra (the SDL version),
> > but not in citra-qt.
>
> Another problem:
>
> With a game controller plugged in, this message appears over and over on
> stderr of the SDL citra program, and the controller does not work.
> The only way I found to get the process to quit in this state is kill -9.
>
> [ 62.956917] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 62.995382] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 63.032273] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 63.069881] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 63.108039] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 63.145670] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
> [ 63.183113] Input <Info> input_common/sdl/sdl_impl.cpp:InitGameController:508: opened joystick 0 as controller
>
> Controllers do work in citra-qt of citra-0.0.0.729p5. But in the SDL citra
> of 0.0.0.729p5 controllers don't seem to work at all (at least after copying
> over the button config generated by citra-qt from qt-config.ini to the
> sdl2-config.ini file, not sure if that is expected to work).
>
> I'll stop playig around for now.
> Perhaps I will find time to look into fixing some of these issues, but it is
> not very likely :-/
>
It looks like 1827 fixes this issue. Stefan, could you verify this for me?
Before I tested 1827 I removed my config in .config/citra-emu
Cheers, Rafael
Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/citra/Makefile,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 Makefile
--- Makefile 14 Jan 2023 08:26:10 -0000 1.20
+++ Makefile 14 Jan 2023 11:10:22 -0000
@@ -7,10 +7,9 @@ USE_WXNEEDED = Yes
COMMENT = nintendo 3DS emulator
-V = 729
-DISTNAME = citra-nightly-${V}
+DISTNAME = citra-unified-source-20230110-ad2cbe2
+V = 1827
PKGNAME = citra-0.0.0.${V}
-REVISION = 8
CATEGORIES = emulators
@@ -19,35 +18,49 @@ CATEGORIES = emulators
# BSD-3-clause (nihstro), LGPLv2.1 (soundtouch), BSD-style (xbyak)
PERMIT_PACKAGE = Yes
-WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Multimedia Qt5Network Qt5OpenGL
-WANTLIB += Qt5Widgets SDL2 c cryptopp enet iconv m
+WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Multimedia Qt5Widgets
+WANTLIB += SDL2 avcodec avformat avutil boost_serialization-mt
+WANTLIB += c cryptopp enet fmt m swresample swscale usb-1.0
-MASTER_SITES = https://spacehopper.org/mirrors/
+MASTER_SITES = https://github.com/citra-emu/citra-nightly/releases/download/nightly-${V}/
EXTRACT_SUFX = .tar.xz
MODULES = devel/cmake \
x11/qt5
-# XXX Enable with the next update
-#BUILD_DEPENDS = devel/catch2
+# C++20
+COMPILER = base-clang ports-clang
+
+BUILD_DEPENDS = devel/catch2 \
+ devel/robin-map
-BUILD_DEPENDS = devel/boost
RUN_DEPENDS = devel/desktop-file-utils \
misc/shared-mime-info \
x11/gtk+3,-guic
-LIB_DEPENDS = devel/cryptopp \
+
+LIB_DEPENDS = devel/boost \
+ devel/cryptopp \
+ graphics/ffmpeg \
+ devel/fmt \
devel/sdl2 \
net/enet \
x11/qt5/qtmultimedia
CONFIGURE_ARGS = -DENABLE_CUBEB=OFF \
- -DENABLE_WEB_SERVICE=OFF
-
-CXXFLAGS += -I${LOCALBASE}/include -I${LOCALBASE}/lib/qt5/cmake/Qt5/
+ -DENABLE_WEB_SERVICE=OFF \
+ -DENABLE_WEB_SERVICE=OFF \
+ -DUSE_SYSTEM_BOOST=ON \
+ -DUSE_SYSTEM_SDL2=ON \
+ -DENABLE_FFMPEG_AUDIO_DECODER=ON \
+ -DENABLE_FFMPEG_VIDEO_DUMPER=ON \
+ -DCITRA_USE_PRECOMPILED_HEADERS=OFF
MODCMAKE_LDFLAGS = -L${LOCALBASE}/lib
-do-test:
- cd ${WRKBUILD}/src/tests && ./tests
+WRKDIST = ${WRKDIR}/${DISTNAME}
+
+CXXFLAGS += -I${LOCALBASE}/include -I${LOCALBASE}/lib/qt5/cmake/Qt5/
+post-extract:
+ rm -rf ${WRKSRC}/externals/{sdl2,catch2,fmt,boost,cryptopp}
.include <bsd.port.arch.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/citra/distinfo,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 distinfo
--- distinfo 18 Jun 2018 17:44:38 -0000 1.2
+++ distinfo 14 Jan 2023 11:10:22 -0000
@@ -1,2 +1,2 @@
-SHA256 (citra-nightly-729.tar.xz) = kJblK81dOGA98vkR9FKGLZvcKjJJ99ylBaq/VADdu94=
-SIZE (citra-nightly-729.tar.xz) = 10912304
+SHA256 (citra-unified-source-20230110-ad2cbe2.tar.xz) = aMHLApv2CMToeZVXk9D5WwKslfnfCsj1gJy2n0uTKzo=
+SIZE (citra-unified-source-20230110-ad2cbe2.tar.xz) = 29916568
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/citra/patches/patch-CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt 11 Mar 2022 18:59:33 -0000 1.2
+++ patches/patch-CMakeLists_txt 14 Jan 2023 11:10:22 -0000
@@ -4,37 +4,44 @@ fix man path
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
-@@ -29,20 +29,6 @@ endif()
+@@ -102,18 +102,6 @@ endif()
# Sanity check : Check that all submodules are present
# =======================================================================
-function(check_submodules_present)
-- file(READ "${CMAKE_SOURCE_DIR}/.gitmodules" gitmodules)
+- file(READ "${PROJECT_SOURCE_DIR}/.gitmodules" gitmodules)
- string(REGEX MATCHALL "path *= *[^ \t\r\n]*" gitmodules ${gitmodules})
- foreach(module ${gitmodules})
- string(REGEX REPLACE "path *= *" "" module ${module})
-- if (NOT EXISTS "${CMAKE_SOURCE_DIR}/${module}/.git")
+- if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${module}/.git")
- message(SEND_ERROR "Git submodule ${module} not found."
- "Please run: git submodule update --init --recursive")
- endif()
- endforeach()
-endfunction()
-check_submodules_present()
--
--
- configure_file(${CMAKE_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
- ${CMAKE_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
- COPYONLY)
-@@ -397,11 +383,11 @@ endif()
+
+ configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
+ ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
+@@ -189,6 +177,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DI
+ # Prefer the -pthread flag on Linux.
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
++find_package(fmt REQUIRED)
++find_package(Catch2 REQUIRED)
+
+ if (ENABLE_QT)
+ if (CITRA_USE_BUNDLED_QT)
+@@ -426,11 +416,11 @@ endif()
if(UNIX)
if(ENABLE_SDL2)
- install(FILES "${CMAKE_SOURCE_DIR}/dist/citra.6"
+ install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.6"
- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man6")
endif()
if (ENABLE_QT)
- install(FILES "${CMAKE_SOURCE_DIR}/dist/citra-qt.6"
+ install(FILES "${PROJECT_SOURCE_DIR}/dist/citra-qt.6"
- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man6")
endif()
Index: patches/patch-externals_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/citra/patches/patch-externals_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-externals_CMakeLists_txt
--- patches/patch-externals_CMakeLists_txt 11 Mar 2022 18:59:33 -0000 1.2
+++ patches/patch-externals_CMakeLists_txt 14 Jan 2023 11:10:22 -0000
@@ -3,24 +3,48 @@ remove cryptopp, enet from builtins
Index: externals/CMakeLists.txt
--- externals/CMakeLists.txt.orig
+++ externals/CMakeLists.txt
-@@ -7,9 +7,6 @@ include(DownloadExternals)
- add_library(catch-single-include INTERFACE)
- target_include_directories(catch-single-include INTERFACE catch/single_include)
+@@ -9,33 +9,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_S
+ include(DownloadExternals)
+ include(ExternalProject)
+-# Boost
+-set(BOOST_ROOT "${CMAKE_SOURCE_DIR}/externals/boost")
+-set(Boost_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/externals/boost")
+-set(Boost_NO_SYSTEM_PATHS ON)
+-add_library(boost INTERFACE)
+-target_include_directories(boost SYSTEM INTERFACE ${Boost_INCLUDE_DIR})
+-
+-# Boost::serialization
+-file(GLOB boost_serialization_SRC "${CMAKE_SOURCE_DIR}/externals/boost/libs/serialization/src/*.cpp")
+-add_library(boost_serialization STATIC ${boost_serialization_SRC})
+-target_link_libraries(boost_serialization PUBLIC boost)
+-
+ # Add additional boost libs here; remember to ALIAS them in the root CMakeLists!
+
+-# Catch2
+-set(CATCH_INSTALL_DOCS OFF)
+-set(CATCH_INSTALL_EXTRAS OFF)
+-add_subdirectory(catch2)
+-
-# Crypto++
-add_subdirectory(cryptopp)
-
- # Dynarmic
- if (ARCHITECTURE_x86_64)
- # Dynarmic will skip defining xbyak if it's already defined, we then define it below
-@@ -54,10 +51,6 @@ if (ARCHITECTURE_x86_64)
- target_include_directories(xbyak INTERFACE ./xbyak/xbyak)
- target_compile_definitions(xbyak INTERFACE XBYAK_NO_OP_NAMES)
- endif()
+-# fmt and Xbyak need to be added before dynarmic
+-# libfmt
+-option(FMT_INSTALL "" ON)
+-add_subdirectory(fmt)
+-
+ # Xbyak
+ if ("x86_64" IN_LIST ARCHITECTURE)
+ add_subdirectory(xbyak)
+@@ -89,10 +64,6 @@ set(ZSTD_BUILD_PROGRAMS OFF)
+ set(ZSTD_BUILD_SHARED OFF)
+ add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
+ target_include_directories(libzstd_static INTERFACE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/externals/zstd/lib>)
-
-# ENet
-add_subdirectory(enet)
-target_include_directories(enet INTERFACE ./enet/include)
- if (ENABLE_WEB_SERVICE)
- # LibreSSL
+ # Cubeb
+ if (ENABLE_CUBEB)
Index: patches/patch-externals_cubeb_CMakeLists_txt
===================================================================
RCS file: patches/patch-externals_cubeb_CMakeLists_txt
diff -N patches/patch-externals_cubeb_CMakeLists_txt
--- patches/patch-externals_cubeb_CMakeLists_txt 11 Mar 2022 18:59:33 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-attempt to fix path to include directory of cubeb
-
-Index: externals/cubeb/CMakeLists.txt
---- externals/cubeb/CMakeLists.txt.orig
-+++ externals/cubeb/CMakeLists.txt
-@@ -78,7 +78,7 @@ target_include_directories(cubeb
- PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/exports>
- )
-
--install(DIRECTORY ${CMAKE_SOURCE_DIR}/include DESTINATION ${CMAKE_INSTALL_PREFIX})
-+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include DESTINATION ${CMAKE_INSTALL_PREFIX})
- install(DIRECTORY ${CMAKE_BINARY_DIR}/exports/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/cubeb)
-
- include(CMakePackageConfigHelpers)
Index: patches/patch-externals_dynarmic_src_dynarmic_backend_exception_handler_posix_cpp
===================================================================
RCS file: patches/patch-externals_dynarmic_src_dynarmic_backend_exception_handler_posix_cpp
diff -N patches/patch-externals_dynarmic_src_dynarmic_backend_exception_handler_posix_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-externals_dynarmic_src_dynarmic_backend_exception_handler_posix_cpp 14 Jan 2023 11:10:22 -0000
@@ -0,0 +1,49 @@
+Index: externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
+--- externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp.orig
++++ externals/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
+@@ -10,8 +10,10 @@
+ # include <sys/ucontext.h>
+ #else
+ # include <signal.h>
++#if !defined(__OpenBSD__)
+ # include <ucontext.h>
+
No comments:
Post a Comment