Index: head/emulators/citra/Makefile =================================================================== --- head/emulators/citra/Makefile (revision 453586) +++ head/emulators/citra/Makefile (revision 453587) @@ -1,77 +1,80 @@ # $FreeBSD$ PORTNAME= citra PORTVERSION= s20171105 PORTREVISION?= 0 CATEGORIES= emulators +PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ +PATCHFILES= ff17773c28b1.patch:-p1 + MAINTAINER= jbeich@FreeBSD.org COMMENT= Nintendo 3DS emulator/debugger LICENSE= BSD2CLAUSE BSD3CLAUSE BSL GPLv2+ LGPL21+ MIT UNLICENSE LICENSE_COMB= multi LICENSE_FILE_BSD2CLAUSE=${WRKSRC}/externals/fmt/LICENSE.rst LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/externals/inih/inih/LICENSE.txt LICENSE_FILE_BSL= ${WRKSRC}/externals/catch/LICENSE.txt LICENSE_FILE_GPLv2+ = ${WRKSRC}/license.txt LICENSE_FILE_MIT= ${WRKSRC}/externals/enet/LICENSE LICENSE_FILE_LGPL21+ = ${_LICENSE_STORE}/LGPL21 # soundtouch BUILD_DEPENDS= boost-libs>=1.63:devel/boost-libs LIB_DEPENDS= libpng.so:graphics/png # backend_x64/hostloc.h:93:8: fatal error: no type named 'Reg64' in namespace 'Xbyak' ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= https://github.com/MerryMage/dynarmic/issues/35 USE_GITHUB= yes GH_ACCOUNT= citra-emu GH_TAGNAME= 4fc04480 GH_TUPLE= citra-emu:ext-soundtouch:019d208:soundtouch/externals/soundtouch \ MerryMage:dynarmic:d3fb603:dynarmic/externals/dynarmic \ fmtlib:fmt:4.0.0:fmt/externals/fmt \ herumi:xbyak:v5.53-1-gc5da377:xbyak/externals/xbyak \ lsalzman:enet:a84c120:enet/externals/enet \ neobrain:nihstro:7e24743:nihstro/externals/nihstro \ philsquared:Catch:v1.9.4:catch/externals/catch \ svn2github:inih:603729d:inih/externals/inih/inih \ weidai11:cryptopp:CRYPTOPP_5_6_5-610-g24bc2b8:cryptopp/externals/cryptopp/cryptopp USES= cmake:outsource compiler:c++14-lang iconv localbase:ldflags USE_SDL= sdl2 CXXFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \ -D_DECLARE_C99_LDBL_MATH # XXX ports/193528 OPTIONS_DEFINE= CURL OPTIONS_DEFAULT=CURL OPTIONS_MULTI= GUI OPTIONS_MULTI_GUI= QT5 SDL OPTIONS_SLAVE?= SDL OPTIONS_EXCLUDE:= ${OPTIONS_MULTI_GUI} CURL_GH_TUPLE= whoshuu:cpr:1.3.0-12-gb5758fb:cpr/externals/cpr CURL_LIB_DEPENDS=libcurl.so:ftp/curl CURL_CMAKE_BOOL=ENABLE_WEB_SERVICE USE_SYSTEM_CURL SDL_CMAKE_BOOL= ENABLE_SDL2 SDL_PLIST_FILES=bin/${PORTNAME} \ man/man6/${PORTNAME}.6.gz QT5_USES= desktop-file-utils shared-mime-info QT5_USE= QT5=qmake_build,buildtools_build,core,gui,opengl,widgets QT5_CMAKE_BOOL= ENABLE_QT QT5_PLIST_FILES=bin/${PORTNAME}-qt \ man/man6/${PORTNAME}-qt.6.gz \ share/applications/${PORTNAME}.desktop \ share/mime/packages/${PORTNAME}.xml \ share/pixmaps/${PORTNAME}.svg post-patch: @${REINPLACE_CMD} -e 's,share/man,man,' \ -e '/check_submodules_present()/d' \ ${WRKSRC}/CMakeLists.txt @${REINPLACE_CMD} -e 's/@GIT_BRANCH@/master/' \ -e 's/@GIT_DESC@/${GH_TAGNAME}/' \ ${WRKSRC}/src/common/scm_rev.cpp.in .include Index: head/emulators/citra/distinfo =================================================================== --- head/emulators/citra/distinfo (revision 453586) +++ head/emulators/citra/distinfo (revision 453587) @@ -1,23 +1,25 @@ TIMESTAMP = 1509870766 SHA256 (citra-emu-citra-s20171105-4fc04480_GH0.tar.gz) = 05301e6316b858c94d068d936e086c20faa8c86c32aaab0bd3645f3acc953b89 SIZE (citra-emu-citra-s20171105-4fc04480_GH0.tar.gz) = 1619629 SHA256 (citra-emu-ext-soundtouch-019d208_GH0.tar.gz) = f48c211bbabe7ad79e1c504af1082756c74241be6bab4aca13140803f4b694e7 SIZE (citra-emu-ext-soundtouch-019d208_GH0.tar.gz) = 59366 SHA256 (MerryMage-dynarmic-d3fb603_GH0.tar.gz) = a6e159eab0d40a39e868dbab7d250af5076fb3cef5a4030dcaa0eaa8ead71f66 SIZE (MerryMage-dynarmic-d3fb603_GH0.tar.gz) = 421395 SHA256 (fmtlib-fmt-4.0.0_GH0.tar.gz) = 35300a0d356529447a79ed5ccf419239d8b34f916e5d4625f046fd37afa3650a SIZE (fmtlib-fmt-4.0.0_GH0.tar.gz) = 617818 SHA256 (herumi-xbyak-v5.53-1-gc5da377_GH0.tar.gz) = 51129bc945fe2650f5fcd41f3b0166555b17589f03bda5d2216927234ef6446a SIZE (herumi-xbyak-v5.53-1-gc5da377_GH0.tar.gz) = 206888 SHA256 (lsalzman-enet-a84c120_GH0.tar.gz) = 409d458f2da9d8bba49191ab6abaeb6bcf89193cd5eff07382c1d7b5f3fb06f0 SIZE (lsalzman-enet-a84c120_GH0.tar.gz) = 79369 SHA256 (neobrain-nihstro-7e24743_GH0.tar.gz) = 063728b01f7de99ca91693c46bd5c5a0fb03c0058baf4452d539f630b10f3650 SIZE (neobrain-nihstro-7e24743_GH0.tar.gz) = 110273 SHA256 (philsquared-Catch-v1.9.4_GH0.tar.gz) = d67d2ee26ec9f72618dd9b28a9d1b7ba3c6368bc846ecfeda05a1e5d1b8b9b20 SIZE (philsquared-Catch-v1.9.4_GH0.tar.gz) = 363097 SHA256 (svn2github-inih-603729d_GH0.tar.gz) = b4faa364c3e33261707d4b669e1c669ca3818d7b9515c15fe0befd9df3f1f00a SIZE (svn2github-inih-603729d_GH0.tar.gz) = 8342 SHA256 (weidai11-cryptopp-CRYPTOPP_5_6_5-610-g24bc2b8_GH0.tar.gz) = 9f3f59538ba0515307e142ab404d65270da709aa3ac906770ec658e47a277ec2 SIZE (weidai11-cryptopp-CRYPTOPP_5_6_5-610-g24bc2b8_GH0.tar.gz) = 7008104 SHA256 (whoshuu-cpr-1.3.0-12-gb5758fb_GH0.tar.gz) = 84ea509dc08766d7182b867b78ba6dd16f3352d85b18b0654661079b8617dae4 SIZE (whoshuu-cpr-1.3.0-12-gb5758fb_GH0.tar.gz) = 34100 +SHA256 (ff17773c28b1.patch) = ecc6ef211c4436945b632dcc427ed4ca51cb66f12079054003983fce0c44db5a +SIZE (ff17773c28b1.patch) = 783 Index: head/emulators/citra/files/patch-revert-pr3042 =================================================================== --- head/emulators/citra/files/patch-revert-pr3042 (revision 453586) +++ head/emulators/citra/files/patch-revert-pr3042 (nonexistent) @@ -1,119 +0,0 @@ -https://github.com/citra-emu/citra/issues/3079 - ---- src/core/hle/kernel/errors.h.orig 2017-11-05 08:32:46 UTC -+++ src/core/hle/kernel/errors.h -@@ -13,7 +13,6 @@ enum { - OutOfHandles = 19, - SessionClosedByRemote = 26, - PortNameTooLong = 30, -- WrongLockingThread = 31, - NoPendingSessions = 35, - WrongPermission = 46, - InvalidBufferDescriptor = 48, ---- src/core/hle/kernel/mutex.cpp.orig 2017-11-05 08:32:46 UTC -+++ src/core/hle/kernel/mutex.cpp -@@ -7,7 +7,6 @@ - #include - #include "common/assert.h" - #include "core/core.h" --#include "core/hle/kernel/errors.h" - #include "core/hle/kernel/kernel.h" - #include "core/hle/kernel/mutex.h" - #include "core/hle/kernel/thread.h" -@@ -59,35 +58,20 @@ void Mutex::Acquire(Thread* thread) { - lock_count++; - } - --ResultCode Mutex::Release(Thread* thread) { -- // We can only release the mutex if it's held by the calling thread. -- if (thread != holding_thread) { -- if (holding_thread) { -- LOG_ERROR( -- Kernel, -- "Tried to release a mutex (owned by thread id %u) from a different thread id %u", -- holding_thread->thread_id, thread->thread_id); -+void Mutex::Release() { -+ // Only release if the mutex is held -+ if (lock_count > 0) { -+ lock_count--; -+ -+ // Yield to the next thread only if we've fully released the mutex -+ if (lock_count == 0) { -+ holding_thread->held_mutexes.erase(this); -+ holding_thread->UpdatePriority(); -+ holding_thread = nullptr; -+ WakeupAllWaitingThreads(); -+ Core::System::GetInstance().PrepareReschedule(); - } -- return ResultCode(ErrCodes::WrongLockingThread, ErrorModule::Kernel, -- ErrorSummary::InvalidArgument, ErrorLevel::Permanent); - } -- -- // Note: It should not be possible for the situation where the mutex has a holding thread with a -- // zero lock count to occur. The real kernel still checks for this, so we do too. -- if (lock_count <= 0) -- return ResultCode(ErrorDescription::InvalidResultValue, ErrorModule::Kernel, -- ErrorSummary::InvalidState, ErrorLevel::Permanent); -- -- lock_count--; -- -- // Yield to the next thread only if we've fully released the mutex -- if (lock_count == 0) { -- holding_thread->held_mutexes.erase(this); -- holding_thread->UpdatePriority(); -- holding_thread = nullptr; -- WakeupAllWaitingThreads(); -- Core::System::GetInstance().PrepareReschedule(); -- } - } - - void Mutex::AddWaitingThread(SharedPtr thread) { -@@ -118,4 +102,4 @@ void Mutex::UpdatePriority() { - } - } - --} // namespace Kernel -+} // namespace ---- src/core/hle/kernel/mutex.h.orig 2017-11-05 08:32:46 UTC -+++ src/core/hle/kernel/mutex.h -@@ -8,7 +8,6 @@ - #include "common/common_types.h" - #include "core/hle/kernel/kernel.h" - #include "core/hle/kernel/wait_object.h" --#include "core/hle/result.h" - - namespace Kernel { - -@@ -53,12 +52,7 @@ class Mutex final : public WaitObject { (public) - void AddWaitingThread(SharedPtr thread) override; - void RemoveWaitingThread(Thread* thread) override; - -- /** -- * Attempts to release the mutex from the specified thread. -- * @param thread Thread that wants to release the mutex. -- * @returns The result code of the operation. -- */ -- ResultCode Release(Thread* thread); -+ void Release(); - - private: - Mutex(); -@@ -71,4 +65,4 @@ class Mutex final : public WaitObject { (public) - */ - void ReleaseThreadMutexes(Thread* thread); - --} // namespace Kernel -+} // namespace ---- src/core/hle/svc.cpp.orig 2017-11-05 08:32:46 UTC -+++ src/core/hle/svc.cpp -@@ -818,7 +818,9 @@ static ResultCode ReleaseMutex(Kernel::Handle handle) - if (mutex == nullptr) - return ERR_INVALID_HANDLE; - -- return mutex->Release(Kernel::GetCurrentThread()); -+ mutex->Release(); -+ -+ return RESULT_SUCCESS; - } - - /// Get the ID of the specified process Property changes on: head/emulators/citra/files/patch-revert-pr3042 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property