FreeBSD Bugzilla – Attachment 234016 Details for
Bug 264064
games/devilutionX: update to 1.4
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
devilution.patch (text/plain), 14.58 KB, created by
Dmitry Marakasov
on 2022-05-18 10:41:51 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dmitry Marakasov
Created:
2022-05-18 10:41:51 UTC
Size:
14.58 KB
patch
obsolete
>commit a74d51fc8e35cbdd90a2948907cb6484374a172f >Author: Dmitry Marakasov <amdmi3@FreeBSD.org> >Date: Tue May 17 17:43:57 2022 +0300 > > games/devilutionX: update to 1.4 > > - Update to 1.4 > - Make dependency handling less obscure and save a line by dropping > _MY_DEPENDS > - Drop unnecessary .desktop file patches > - Install from the port, be more explicit and flexible > - Convert to pkg-plist as there's more files now > - The new version tries to fetch dependencies from the net, for some > depenencies this is unconditional. Fetch these properly with > GH_TUPLE and place in a directory where CMake expectes them. > - Upstream code expects patch component in the version, so add an extra > .0 to VERSION_NUM. This should not break on (future) X.Y.Z versions > as the component will move to micropatch and be ignored > - BINARY_RELEASE option is gone > - Untie DEBUG (engine debug bode) from WITH_DEBUG knob (build debug > binary), these are orthogonal > - Properly support optional depends; zerotier is the only one > broken as it conflicts with system header (see > https://github.com/diasurgical/devilutionX/issues/4585) > - Install devilutionx (own) data file > - Since it's not versioned, use a little hack to add a tag to the > filename to avoid clashes on the future updates; this seemed less > evil than introducing DIST_SUBDIR > - Use two-level datadir to be consistent with ~/.local/share path > (however I vouch for converting both for single level) > - Update pkg-message (Diablo data file doesn't have to be lowercase, > works either way) > >diff --git games/devilutionX/Makefile games/devilutionX/Makefile >index 1723b6e09fba..6d39423045aa 100644 >--- games/devilutionX/Makefile >+++ games/devilutionX/Makefile >@@ -1,39 +1,101 @@ > PORTNAME= devilutionX >-DISTVERSION= 1.2.1 >-PORTREVISION= 1 >+DISTVERSION= 1.4 > CATEGORIES= games >+MASTER_SITES= https://github.com/diasurgical/devilutionx-assets/releases/download/${DATA_VERSION}/:data >+DISTFILES= devilutionx.mpq?tag=${DATA_VERSION}:data >+EXTRACT_ONLY= ${DISTFILES:N*\:data:C/:.*//} > > MAINTAINER= eduardo@FreeBSD.org > COMMENT= Diablo I engine for modern operating systems > >-LICENSE= UNLICENSE >-LICENSE_FILE= ${WRKSRC}/LICENSE >+LICENSE= UNLICENSE CC-BY-NC-SA-4.0 OFL11 >+LICENSE_COMB= multi >+LICENSE_FILE_UNLICENSE= ${WRKSRC}/LICENSE > >-_MY_DEPENDS= CharisSIL>0:x11-fonts/charis >-BUILD_DEPENDS= ${_MY_DEPENDS} >-LIB_DEPENDS= libsodium.so:security/libsodium >-RUN_DEPENDS= ${_MY_DEPENDS} >+BUILD_DEPENDS= CharisSIL>0:x11-fonts/charis >+RUN_DEPENDS= CharisSIL>0:x11-fonts/charis >+LIB_DEPENDS= libfmt.so:devel/libfmt > >-USES= cmake compiler:c++11-lang dos2unix sdl >-DOS2UNIX_GLOB= *.c *.h CMakeLists.txt >+USES= cmake compiler:c++11-lang dos2unix gettext-tools pkgconfig sdl >+DOS2UNIX_GLOB= *.cpp *.h CMakeLists.txt > USE_GITHUB= yes > GH_ACCOUNT= diasurgical >-USE_SDL= mixer2 sdl2 ttf2 >+GH_TUPLE= diasurgical:libsmackerdec:2997ee0e41e91bb723003bc09234be553b190e38:libsmackerdec/_deps/libsmackerdec-src \ >+ brofield:simpleini:9b3ed7ec815997bc8c5b9edf140d6bde653e1458:simpleini/_deps/simpleini-src \ >+ diasurgical:libmpq:0f10bd1600f406b13932bf5351ba713361262184:libmpq/_deps/libmpq-src >+USE_SDL= sdl2 image2 > > CMAKE_ARGS= -DCMAKE_INSTALL_SHAREDIR:PATH=${PREFIX}/share \ >- -DVERSION_NUM=${PORTVERSION} >- >-.if defined(WITH_DEBUG) >-CMAKE_ON= DEBUG >-.else >-CMAKE_ON= BINARY_RELEASE >-.endif >+ -DVERSION_NUM="${PORTVERSION}.0" >+CMAKE_ON= FETCHCONTENT_FULLY_DISCONNECTED > > CXXFLAGS+= -DTTF_FONT_NAME=\\\"${LOCALBASE}/share/fonts/CharisSIL/CharisSIL-Bold.ttf\\\" > >-PLIST_FILES= bin/devilutionx \ >- share/applications/devilutionx.desktop \ >- share/icons/hicolor/512x512/apps/devilutionx.png \ >- share/icons/hicolor/512x512/apps/devilutionx_solid.png >+DATA_VERSION= v2 >+DATADIR= ${PREFIX}/share/diasurgical/devilutionx >+ >+OPTIONS_DEFINE= TEST SOUND LTO DEBUG >+OPTIONS_GROUP= NETWORKING >+OPTIONS_GROUP_NETWORKING= NETWORK TCP ZEROTIER ENCRYPTION >+OPTIONS_DEFAULT= LTO NETWORK TCP ENCRYPTION SOUND >+ >+TEST_CMAKE_BOOL= BUILD_TESTING >+TEST_BUILD_DEPENDS= googletest>0:devel/googletest >+ >+NETWORK_DESC= Enable network support >+NETWORK_CMAKE_BOOL_OFF= NONET >+ >+TCP_DESC= TCP multiplayer option >+TCP_CMAKE_BOOL_OFF= DISABLE_TCP >+TCP_IMPLIES= NETWORK >+TCP_GH_TUPLE= diasurgical:asio:ebeff99f539da23d27c2e8d4bdbc1ee011968644:asio/_deps/asio-src >+ >+ZEROTIER_DESC= ZeroTier multiplayer option (broken) >+ZEROTIER_BROKEN= does not build: fatal error: 'sys/appleapiopts.h' file not found >+ZEROTIER_CMAKE_BOOL_OFF=DISABLE_ZERO_TIER >+ZEROTIER_IMPLIES= NETWORK >+ZEROTIER_GH_TUPLE= diasurgical:libzt:a34ba7f1cc2e41b05badd25d1b01fdc5fd2f4e02:libzt/_deps/libzt-src \ >+ diasurgical:ZeroTierOne:b1350ac91118d1bd6bb71c0c41be5f4a30196838:ZeroTierOne/_deps/libzt-src/ext/ZeroTierOne \ >+ diasurgical:lwip:1bf7e011caf4e992ad139f6cb8c9818a9c1fbe1b:lwip/_deps/libzt-src/ext/lwip \ >+ diasurgical:lwip-contrib:1f9e26e221a41542563834222c4ec8399be1908f:lwipcontrib/_deps/libzt-src/ext/lwip-contrib >+ >+ENCRYPTION_DESC= Encrypt network packets >+ENCRYPTION_CMAKE_BOOL= PACKET_ENCRYPTION >+ENCRYPTION_IMPLIES= NETWORK >+ENCRYPTION_LIB_DEPENDS= libsodium.so:security/libsodium >+ >+SOUND_CMAKE_BOOL_OFF= NOSOUND >+SOUND_GH_TUPLE= realnc:SDL_audiolib:1a69135313c79817b38a3a99826d4ac28d627fdf:SDL_audiolib/_deps/sdl_audiolib-src >+ >+LTO_CMAKE_BOOL_OFF= DISABLE_LTO >+ >+DEBUG_CMAKE_BOOL= DEBUG >+ >+post-extract: >+ @${MKDIR} ${BUILD_WRKSRC} >+ @${LN} -s ${WRKSRC}/_deps ${BUILD_WRKSRC}/_deps >+ >+post-patch: >+ @${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|' ${WRKSRC}/Source/init.cpp >+ >+do-install: >+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/devilutionx ${STAGEDIR}${PREFIX}/bin >+ ${INSTALL_DATA} ${WRKSRC}/Packaging/nix/devilutionx.desktop ${STAGEDIR}${PREFIX}/share/applications >+ ${INSTALL_DATA} ${WRKSRC}/Packaging/nix/devilutionx-hellfire.desktop ${STAGEDIR}${PREFIX}/share/applications >+ @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps >+ ${INSTALL_DATA} ${WRKSRC}/Packaging/resources/icon.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps/devilutionx.png >+ ${INSTALL_DATA} ${WRKSRC}/Packaging/resources/hellfire.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps/devilutionx-hellfire.png >+ ${INSTALL_DATA} ${WRKSRC}/Packaging/resources/icon_solid.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps/devilutionx_solid.png >+ @${MKDIR} ${STAGEDIR}${DATADIR} >+ ${INSTALL_DATA} ${DISTDIR}/devilutionx.mpq?tag=${DATA_VERSION} ${STAGEDIR}${DATADIR}/devilutionx.mpq >+ >+do-test-TEST-on: >+ @cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${LOCALBASE}/bin/ctest -V >+ >+.if make(makesum) >+GH_TUPLE+= ${TCP_GH_TUPLE} \ >+ ${ZEROTIER_GH_TUPLE} \ >+ ${SOUND_GH_TUPLE} >+.endif > > .include <bsd.port.mk> >diff --git games/devilutionX/distinfo games/devilutionX/distinfo >index 6936974b1c1a..8eade3a9e6b8 100644 >--- games/devilutionX/distinfo >+++ games/devilutionX/distinfo >@@ -1,3 +1,23 @@ >-TIMESTAMP = 1619323414 >-SHA256 (diasurgical-devilutionX-1.2.1_GH0.tar.gz) = 002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521 >-SIZE (diasurgical-devilutionX-1.2.1_GH0.tar.gz) = 3573200 >+TIMESTAMP = 1652828881 >+SHA256 (devilutionx.mpq?tag=v2) = 90467c15f5e0ac902b2b8ac916f63a1fe2dd4b554ca36ab218bcd27f5121e988 >+SIZE (devilutionx.mpq?tag=v2) = 4959860 >+SHA256 (diasurgical-devilutionX-1.4_GH0.tar.gz) = 02efcb59c0b4c9f9332a93c9d9056d828381b261f00727d10e461b5b6a052c71 >+SIZE (diasurgical-devilutionX-1.4_GH0.tar.gz) = 7559966 >+SHA256 (diasurgical-libsmackerdec-2997ee0e41e91bb723003bc09234be553b190e38_GH0.tar.gz) = 40c0dc21943de22e153d56a7992c621a42a0c56c7cd833f8b84f90e48da753ea >+SIZE (diasurgical-libsmackerdec-2997ee0e41e91bb723003bc09234be553b190e38_GH0.tar.gz) = 18556 >+SHA256 (brofield-simpleini-9b3ed7ec815997bc8c5b9edf140d6bde653e1458_GH0.tar.gz) = f7792eca9f3f7b0ee8916ffa4e124cb4b319b11d5849e15c5eef58eb910b0451 >+SIZE (brofield-simpleini-9b3ed7ec815997bc8c5b9edf140d6bde653e1458_GH0.tar.gz) = 62870 >+SHA256 (diasurgical-libmpq-0f10bd1600f406b13932bf5351ba713361262184_GH0.tar.gz) = ee173f5edb20f162482658cbc9d4bb84b640f651041d686c0ad7b2af12baf2a1 >+SIZE (diasurgical-libmpq-0f10bd1600f406b13932bf5351ba713361262184_GH0.tar.gz) = 69570 >+SHA256 (diasurgical-asio-ebeff99f539da23d27c2e8d4bdbc1ee011968644_GH0.tar.gz) = 88bb72f7bbdde7dbd050789bd73ff2abb2e9eacd8f9c889202b502f222230b6e >+SIZE (diasurgical-asio-ebeff99f539da23d27c2e8d4bdbc1ee011968644_GH0.tar.gz) = 1614738 >+SHA256 (diasurgical-libzt-a34ba7f1cc2e41b05badd25d1b01fdc5fd2f4e02_GH0.tar.gz) = 40fd669e429b477bf2463e94c730b1db26752aafe06e4337dd76a112933ae1bf >+SIZE (diasurgical-libzt-a34ba7f1cc2e41b05badd25d1b01fdc5fd2f4e02_GH0.tar.gz) = 390951 >+SHA256 (diasurgical-ZeroTierOne-b1350ac91118d1bd6bb71c0c41be5f4a30196838_GH0.tar.gz) = 39c1b7e28f9d4d92edaaa831007715358465a068019fe84a56b5366b386a1363 >+SIZE (diasurgical-ZeroTierOne-b1350ac91118d1bd6bb71c0c41be5f4a30196838_GH0.tar.gz) = 13122622 >+SHA256 (diasurgical-lwip-1bf7e011caf4e992ad139f6cb8c9818a9c1fbe1b_GH0.tar.gz) = 1477b5a427672480d0035b5af3e2cfae01c691afa9cace4500b43fcd262fa0bf >+SIZE (diasurgical-lwip-1bf7e011caf4e992ad139f6cb8c9818a9c1fbe1b_GH0.tar.gz) = 1136882 >+SHA256 (diasurgical-lwip-contrib-1f9e26e221a41542563834222c4ec8399be1908f_GH0.tar.gz) = 0fd240b20ec56da41f5072161b8d1f1ad4367f994e183579bb5de9576394dcda >+SIZE (diasurgical-lwip-contrib-1f9e26e221a41542563834222c4ec8399be1908f_GH0.tar.gz) = 395250 >+SHA256 (realnc-SDL_audiolib-1a69135313c79817b38a3a99826d4ac28d627fdf_GH0.tar.gz) = 8e013245bf8e676d4e2c61661d7cee6cb9de74f97a475c9e6b35a25d5e7a7715 >+SIZE (realnc-SDL_audiolib-1a69135313c79817b38a3a99826d4ac28d627fdf_GH0.tar.gz) = 304183 >diff --git games/devilutionX/files/patch-CMakeLists.txt games/devilutionX/files/patch-CMakeLists.txt >index 94b22747cbe4..0d51936652a8 100644 >--- games/devilutionX/files/patch-CMakeLists.txt >+++ games/devilutionX/files/patch-CMakeLists.txt >@@ -1,14 +1,10 @@ >---- CMakeLists.txt.orig 2021-04-08 06:20:26 UTC >+--- CMakeLists.txt.orig 2022-04-25 02:21:41 UTC > +++ CMakeLists.txt >-@@ -873,6 +873,11 @@ if(CPACK) >- set(CPACK_GENERATOR "DragNDrop") >- endif() >+@@ -156,7 +156,6 @@ if(NONET) >+ set(PACKET_ENCRYPTION OFF) >+ endif() > >-+install(TARGETS devilutionx DESTINATION ${CMAKE_INSTALL_BINDIR}) >-+install(FILES Packaging/fedora/devilutionx.desktop DESTINATION ${CMAKE_INSTALL_SHAREDIR}/applications) >-+install(FILES Packaging/resources/icon.png DESTINATION ${CMAKE_INSTALL_SHAREDIR}/icons/hicolor/512x512/apps RENAME devilutionx.png) >-+install(FILES Packaging/resources/icon_solid.png DESTINATION ${CMAKE_INSTALL_SHAREDIR}/icons/hicolor/512x512/apps RENAME devilutionx_solid.png) >-+ >- set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) >- set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) >- set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) >+-find_program(CCACHE_PROGRAM ccache) >+ if(CCACHE_PROGRAM) >+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") >+ endif() >diff --git games/devilutionX/files/patch-Packaging_fedora_devilutionx.desktop games/devilutionX/files/patch-Packaging_fedora_devilutionx.desktop >deleted file mode 100644 >index 46627d9440d7..000000000000 >--- games/devilutionX/files/patch-Packaging_fedora_devilutionx.desktop >+++ /dev/null >@@ -1,17 +0,0 @@ >---- Packaging/fedora/devilutionx.desktop.orig 2021-04-06 05:51:05 UTC >-+++ Packaging/fedora/devilutionx.desktop >-@@ -1,10 +1,10 @@ >- [Desktop Entry] >- Name=DevilutionX >- GenericName=DevilutionX >--Comment=Play Diablo I on Linux >--Comment[da]=Spil Diablo I på Linux >--Comment[hr]=Igrajte Diablo I na Linuxu >--Comment[it]=Gioca a Diablo I su Linux >-+Comment=Play Diablo >-+Comment[da]=Spil Diablo I >-+Comment[hr]=Igrajte Diablo I >-+Comment[it]=Gioca a Diablo I >- Exec=devilutionx --diablo >- Icon=devilutionx >- Terminal=false >diff --git games/devilutionX/files/patch-Source_engine_random.cpp games/devilutionX/files/patch-Source_engine_random.cpp >new file mode 100644 >index 000000000000..ac57d195923f >--- /dev/null >+++ games/devilutionX/files/patch-Source_engine_random.cpp >@@ -0,0 +1,14 @@ >+https://github.com/diasurgical/devilutionX/pull/4588 >+ >+--- Source/engine/random.cpp.orig 2022-04-25 02:21:41 UTC >++++ Source/engine/random.cpp >+@@ -29,7 +29,8 @@ uint32_t GetLCGEngineState() >+ >+ int32_t GetRndSeed() >+ { >+- return abs(static_cast<int32_t>(sglGameSeed)); >++ const int32_t seed = static_cast<int32_t>(sglGameSeed); >++ return seed == -2147483648 ? -2147483648 : abs(seed); >+ } >+ >+ int32_t AdvanceRndSeed() >diff --git games/devilutionX/files/patch-Source_init.cpp games/devilutionX/files/patch-Source_init.cpp >new file mode 100644 >index 000000000000..96130a70054a >--- /dev/null >+++ games/devilutionX/files/patch-Source_init.cpp >@@ -0,0 +1,11 @@ >+--- Source/init.cpp.orig 2022-04-25 02:21:41 UTC >++++ Source/init.cpp >+@@ -90,7 +90,7 @@ std::vector<std::string> GetMPQSearchPaths() >+ if (paths[0] == paths[1]) >+ paths.pop_back(); >+ >+-#if defined(__linux__) && !defined(__ANDROID__) >++#if (defined(__linux__) && !defined(__ANDROID__)) || defined(__FreeBSD__) >+ paths.emplace_back("/usr/share/diasurgical/devilutionx/"); >+ paths.emplace_back("/usr/local/share/diasurgical/devilutionx/"); >+ #elif defined(__3DS__) || defined(__SWITCH__) >diff --git games/devilutionX/files/patch-Source_sound.h games/devilutionX/files/patch-Source_sound.h >new file mode 100644 >index 000000000000..c392962bd8dc >--- /dev/null >+++ games/devilutionX/files/patch-Source_sound.h >@@ -0,0 +1,14 @@ >+--- Source/sound.h.orig 2022-05-17 15:57:06 UTC >++++ Source/sound.h >+@@ -60,7 +60,11 @@ struct TSnd { >+ }; >+ >+ extern bool gbSndInited; >++#ifndef NOSOUND >+ extern _music_id sgnMusicTrack; >++#else >++inline const _music_id sgnMusicTrack = NUM_MUSIC; >++#endif >+ >+ void ClearDuplicateSounds(); >+ void snd_stop_snd(TSnd *pSnd); >diff --git games/devilutionX/pkg-message games/devilutionX/pkg-message >index b084bb8cb89f..14e563baa00c 100644 >--- games/devilutionX/pkg-message >+++ games/devilutionX/pkg-message >@@ -4,8 +4,7 @@ > This game requires a datafile from the original Diablo(tm) CD or the GOG release. > If you don't own it yet, you can buy it at https://www.gog.com/game/diablo > >-Copy DIABDAT.MPQ to ~/.local/share/diasurgical/devilution/diabdat.mpq >-Pay attention to the case, the resulting file needs to be entirely lowercase! >+Copy DIABDAT.MPQ to ~/.local/share/diasurgical/devilution/ > > If you have any issues with this game, please file a bug report on the GitHub page: > https://github.com/diasurgical/devilutionX/issues >diff --git games/devilutionX/pkg-plist games/devilutionX/pkg-plist >new file mode 100644 >index 000000000000..b5d57077cf60 >--- /dev/null >+++ games/devilutionX/pkg-plist >@@ -0,0 +1,7 @@ >+bin/devilutionx >+share/applications/devilutionx.desktop >+share/applications/devilutionx-hellfire.desktop >+%%DATADIR%%/devilutionx.mpq >+share/icons/hicolor/512x512/apps/devilutionx-hellfire.png >+share/icons/hicolor/512x512/apps/devilutionx.png >+share/icons/hicolor/512x512/apps/devilutionx_solid.png
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
eduardo
:
maintainer-approval+
Actions:
View
|
Diff
Attachments on
bug 264064
: 234016