Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] devilutionX: update to 1.4.1.
@ 2023-01-15  1:39 kruceter
  2023-01-15  2:54 ` [PR PATCH] [Updated] " kruceter
                   ` (19 more replies)
  0 siblings, 20 replies; 22+ messages in thread
From: kruceter @ 2023-01-15  1:39 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 619 bytes --]

There is a new pull request by kruceter against master on the void-packages repository

https://github.com/kruceter/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/41658

devilutionX: update to 1.4.1.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

A patch file from https://github.com/void-linux/void-packages/pull/41658.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-41658.patch --]
[-- Type: text/x-diff, Size: 4871 bytes --]

From 512af94bb00aa294cb47873822aa0a421a5d27f3 Mon Sep 17 00:00:00 2001
From: Krul Ceter <kruceter@proton.me>
Date: Wed, 11 Jan 2023 07:37:38 +0300
Subject: [PATCH] devilutionX: update to 1.4.1.

* External (3rd party) dependencies normally are fetched with git,
  which is undesirable for packaging; hence they are fetched manually
  with xbps-src. "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" prevents
  cmake's FetchContent module from attempting to download or update any
  external dependencies.

* BINARY_RELEASE option is gone.

* CharisSILB is absent with TTF_FONT_PATH from the release tarball.

* mpqtool is used for building devilutionx.mpq since smpq is not
  packaged.
---
 srcpkgs/devilutionX/patches/mpqtool.patch | 28 ++++++++++++++++++
 srcpkgs/devilutionX/template              | 36 +++++++++++++++++++----
 2 files changed, 59 insertions(+), 5 deletions(-)
 create mode 100644 srcpkgs/devilutionX/patches/mpqtool.patch

diff --git a/srcpkgs/devilutionX/patches/mpqtool.patch b/srcpkgs/devilutionX/patches/mpqtool.patch
new file mode 100644
index 000000000000..d1cc5ef75557
--- /dev/null
+++ b/srcpkgs/devilutionX/patches/mpqtool.patch
@@ -0,0 +1,28 @@
+smpq, required by the build script, is not available in void repos
+so an alternative utility mpqtool is used to create the MPQ archive.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -67,9 +67,9 @@
+ 
+ # By default, devilutionx.mpq is built only if smpq is installed.
+ if(NOT DEFINED BUILD_ASSETS_MPQ AND NOT SRC_DIST)
+-  find_program(SMPQ smpq)
++  find_program(SMPQ mpqtool)
+ elseif(BUILD_ASSETS_MPQ)
+-  find_program(SMPQ smpq REQUIRED)
++  find_program(SMPQ mpqtool REQUIRED)
+ endif()
+ if(SMPQ)
+   set(_has_smpq ON)
+--- a/CMake/Assets.cmake
++++ b/CMake/Assets.cmake
+@@ -208,7 +208,7 @@
+       COMMENT "Building devilutionx.mpq"
+       OUTPUT "${DEVILUTIONX_MPQ}"
+       COMMAND ${CMAKE_COMMAND} -E remove -f "${DEVILUTIONX_MPQ}"
+-      COMMAND ${SMPQ} -A -M 1 -C PKWARE -c "${DEVILUTIONX_MPQ}" ${DEVILUTIONX_MPQ_FILES}
++      COMMAND ${SMPQ} new "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/resources/assets" "${DEVILUTIONX_MPQ}"
+       WORKING_DIRECTORY "${DEVILUTIONX_ASSETS_OUTPUT_DIRECTORY}"
+       DEPENDS ${DEVILUTIONX_OUTPUT_ASSETS_FILES} ${devilutionx_lang_targets} ${devilutionx_lang_files}
+       VERBATIM)
diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..b41742d764b0 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,16 +1,42 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
+# git revisions can be found in the 3rdParty directory of the
+# source code.
+_audiolib_gitrev=1a69135313c79817b38a3a99826d4ac28d627fdf
+_smackerdec_gitrev=2997ee0e41e91bb723003bc09234be553b190e38
+_libmpq_gitrev=0f10bd1600f406b13932bf5351ba713361262184
+_simpleini_gitrev=56499b5af5d2195c6acfc58c4630b70e0c9c4c21
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DDISABLE_ZERO_TIER=ON"
+hostmakedepends="pkg-config mpqtool gettext"
+makedepends="SDL2-devel SDL2_image-devel libpng-devel bzip2-devel
+ libsodium-devel gtest-devel fmt-devel zlib-devel asio"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
-distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz
+ https://github.com/realnc/SDL_audiolib/archive/${_audiolib_gitrev}.tar.gz
+ https://github.com/diasurgical/libsmackerdec/archive/${_smackerdec_gitrev}.tar.gz
+ https://github.com/diasurgical/libmpq/archive/${_libmpq_gitrev}.tar.gz
+ https://github.com/brofield/simpleini/archive/${_simpleini_gitrev}.tar.gz"
+checksum="54b9fd496eba5b82d7e64891ab4de808f539c60b3b94bfa49639e0d9580fb7b8
+ 8e013245bf8e676d4e2c61661d7cee6cb9de74f97a475c9e6b35a25d5e7a7715
+ 40c0dc21943de22e153d56a7992c621a42a0c56c7cd833f8b84f90e48da753ea
+ ee173f5edb20f162482658cbc9d4bb84b640f651041d686c0ad7b2af12baf2a1
+ dbdb50a33d3edf791fc2622309d9c3d701a2fb7e7e2b403d3fa504e04f0ade0e"
+
+post_extract() {
+	mkdir -p build/_deps
+	mv ${pkgname}-${version}/* .
+	mv SDL_audiolib-${_audiolib_gitrev} build/_deps/sdl_audiolib-src
+	mv libsmackerdec-${_smackerdec_gitrev} build/_deps/libsmackerdec-src
+	mv libmpq-${_libmpq_gitrev} build/_deps/libmpq-src
+	mv simpleini-${_simpleini_gitrev} build/_deps/simpleini-src
+}
 
 post_install() {
 	vlicense LICENSE

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
@ 2023-01-15  2:54 ` kruceter
  2023-01-15  3:09 ` kruceter
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15  2:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]

There is an updated pull request by kruceter against master on the void-packages repository

https://github.com/kruceter/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/41658

devilutionX: update to 1.4.1.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

#### About mpqtool

Apparently upstream needs some tool to pack assets into one file.

If such a tool is not used within CMake, `do_install()` will not install the binary, icons, etc to `$DESTDIR`.

Pull request #39184 had encountered this behaviour and placed needed files manually as a result.

Packaging `smpq` is a little too much, hence `mpqtool` is used with little patching to make it work.

A patch file from https://github.com/void-linux/void-packages/pull/41658.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-41658.patch --]
[-- Type: text/x-diff, Size: 4502 bytes --]

From be311c89f6c2bed7efbd6b79c830c9eb9d7ec607 Mon Sep 17 00:00:00 2001
From: Krul Ceter <kruceter@proton.me>
Date: Wed, 11 Jan 2023 07:37:38 +0300
Subject: [PATCH] devilutionX: update to 1.4.1.

* External (3rd party) dependencies normally are fetched with git,
  which is undesirable for packaging; hence they are fetched manually
  with xbps-src. "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" prevents
  cmake's FetchContent module from attempting to download or update any
  external dependencies.

* BINARY_RELEASE option is gone.

* CharisSILB is absent with TTF_FONT_PATH from the release tarball.

* mpqtool is used for building devilutionx.mpq since smpq is not
  packaged.
---
 srcpkgs/devilutionX/patches/smpq.patch | 19 ++++++++++++
 srcpkgs/devilutionX/template           | 41 ++++++++++++++++++++++----
 2 files changed, 55 insertions(+), 5 deletions(-)
 create mode 100644 srcpkgs/devilutionX/patches/smpq.patch

diff --git a/srcpkgs/devilutionX/patches/smpq.patch b/srcpkgs/devilutionX/patches/smpq.patch
new file mode 100644
index 000000000000..f14ddf7ea474
--- /dev/null
+++ b/srcpkgs/devilutionX/patches/smpq.patch
@@ -0,0 +1,19 @@
+If smpq is not present (in our case not packaged for void at all),
+cmake --install will not install anything to DESTDIR.
+
+DEVILUTIONX_MPQ is used during the installation to DESTDIR, but
+undefined if smpq is not found (see CMake/Assets.cmake),
+thus it is also set in this patch.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -405,7 +405,8 @@
+   target_compile_definitions(libdevilutionx PRIVATE __UWP__=1)
+ endif()
+ 
+-if(CPACK AND (APPLE OR BUILD_ASSETS_MPQ OR SRC_DIST))
++if(CPACK)
++  set(DEVILUTIONX_MPQ "${CMAKE_CURRENT_BINARY_DIR}/devilutionx.mpq")
+   if(WIN32)
+     if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+       set(SDL2_WIN32_DLLS_DIR "${CMAKE_BINARY_DIR}")
diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..721da3240446 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,16 +1,47 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
+# git revisions can be found in the 3rdParty directory of the
+# source code.
+_audiolib_gitrev=1a69135313c79817b38a3a99826d4ac28d627fdf
+_smackerdec_gitrev=2997ee0e41e91bb723003bc09234be553b190e38
+_libmpq_gitrev=0f10bd1600f406b13932bf5351ba713361262184
+_simpleini_gitrev=56499b5af5d2195c6acfc58c4630b70e0c9c4c21
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DDISABLE_ZERO_TIER=ON"
+hostmakedepends="pkg-config mpqtool gettext"
+makedepends="SDL2-devel SDL2_image-devel libpng-devel bzip2-devel
+ libsodium-devel gtest-devel fmt-devel zlib-devel asio"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
-distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz
+ https://github.com/realnc/SDL_audiolib/archive/${_audiolib_gitrev}.tar.gz
+ https://github.com/diasurgical/libsmackerdec/archive/${_smackerdec_gitrev}.tar.gz
+ https://github.com/diasurgical/libmpq/archive/${_libmpq_gitrev}.tar.gz
+ https://github.com/brofield/simpleini/archive/${_simpleini_gitrev}.tar.gz"
+checksum="54b9fd496eba5b82d7e64891ab4de808f539c60b3b94bfa49639e0d9580fb7b8
+ 8e013245bf8e676d4e2c61661d7cee6cb9de74f97a475c9e6b35a25d5e7a7715
+ 40c0dc21943de22e153d56a7992c621a42a0c56c7cd833f8b84f90e48da753ea
+ ee173f5edb20f162482658cbc9d4bb84b640f651041d686c0ad7b2af12baf2a1
+ dbdb50a33d3edf791fc2622309d9c3d701a2fb7e7e2b403d3fa504e04f0ade0e"
+
+post_extract() {
+	mkdir -p build/_deps
+	mv ${pkgname}-${version}/* .
+	mv SDL_audiolib-${_audiolib_gitrev} build/_deps/sdl_audiolib-src
+	mv libsmackerdec-${_smackerdec_gitrev} build/_deps/libsmackerdec-src
+	mv libmpq-${_libmpq_gitrev} build/_deps/libmpq-src
+	mv simpleini-${_simpleini_gitrev} build/_deps/simpleini-src
+}
+
+post_build() {
+	# use mpqtool instead of unpackaged smpq
+	mpqtool new "build/assets" "build/devilutionx.mpq"
+}
 
 post_install() {
 	vlicense LICENSE

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
  2023-01-15  2:54 ` [PR PATCH] [Updated] " kruceter
@ 2023-01-15  3:09 ` kruceter
  2023-01-15  3:22 ` kruceter
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15  3:09 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]

There is an updated pull request by kruceter against master on the void-packages repository

https://github.com/kruceter/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/41658

devilutionX: update to 1.4.1.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

#### About mpqtool

Apparently upstream needs some tool to pack assets into one file.

If such a tool is not used within CMake, `do_install()` will not install the binary, icons, etc to `$DESTDIR`.

Pull request #39184 had encountered this behaviour and placed needed files manually as a result.

Packaging `smpq` is a little too much, hence `mpqtool` is used with little patching to address all issues listed above.

A patch file from https://github.com/void-linux/void-packages/pull/41658.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-41658.patch --]
[-- Type: text/x-diff, Size: 4498 bytes --]

From a68f59bcc89d6a0205b72d80d275be6762638778 Mon Sep 17 00:00:00 2001
From: Krul Ceter <kruceter@proton.me>
Date: Wed, 11 Jan 2023 07:37:38 +0300
Subject: [PATCH] devilutionX: update to 1.4.1.

* External (3rd party) dependencies normally are fetched with git,
  which is undesirable for packaging; hence they are fetched manually
  with xbps-src. "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" prevents
  cmake's FetchContent module from attempting to download or update any
  external dependencies.

* BINARY_RELEASE option is gone.

* CharisSILB is absent with TTF_FONT_PATH from the release tarball.

* mpqtool is used for building devilutionx.mpq since smpq is not
  packaged.
---
 srcpkgs/devilutionX/patches/smpq.patch | 19 ++++++++++++
 srcpkgs/devilutionX/template           | 41 ++++++++++++++++++++++----
 2 files changed, 55 insertions(+), 5 deletions(-)
 create mode 100644 srcpkgs/devilutionX/patches/smpq.patch

diff --git a/srcpkgs/devilutionX/patches/smpq.patch b/srcpkgs/devilutionX/patches/smpq.patch
new file mode 100644
index 000000000000..f14ddf7ea474
--- /dev/null
+++ b/srcpkgs/devilutionX/patches/smpq.patch
@@ -0,0 +1,19 @@
+If smpq is not present (in our case not packaged for void at all),
+cmake --install will not install anything to DESTDIR.
+
+DEVILUTIONX_MPQ is used during the installation to DESTDIR, but
+undefined if smpq is not found (see CMake/Assets.cmake),
+thus it is also set in this patch.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -405,7 +405,8 @@
+   target_compile_definitions(libdevilutionx PRIVATE __UWP__=1)
+ endif()
+ 
+-if(CPACK AND (APPLE OR BUILD_ASSETS_MPQ OR SRC_DIST))
++if(CPACK)
++  set(DEVILUTIONX_MPQ "${CMAKE_CURRENT_BINARY_DIR}/devilutionx.mpq")
+   if(WIN32)
+     if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+       set(SDL2_WIN32_DLLS_DIR "${CMAKE_BINARY_DIR}")
diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..96c5e2bddea0 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,16 +1,47 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
+# git revisions can be found in the 3rdParty directory of the
+# source code.
+_audiolib_gitrev=1a69135313c79817b38a3a99826d4ac28d627fdf
+_smackerdec_gitrev=2997ee0e41e91bb723003bc09234be553b190e38
+_libmpq_gitrev=0f10bd1600f406b13932bf5351ba713361262184
+_simpleini_gitrev=56499b5af5d2195c6acfc58c4630b70e0c9c4c21
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DDISABLE_ZERO_TIER=ON"
+hostmakedepends="pkg-config mpqtool gettext"
+makedepends="SDL2-devel SDL2_image-devel libpng-devel bzip2-devel
+ libsodium-devel gtest-devel fmt-devel zlib-devel asio"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
-distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz
+ https://github.com/realnc/SDL_audiolib/archive/${_audiolib_gitrev}.tar.gz
+ https://github.com/diasurgical/libsmackerdec/archive/${_smackerdec_gitrev}.tar.gz
+ https://github.com/diasurgical/libmpq/archive/${_libmpq_gitrev}.tar.gz
+ https://github.com/brofield/simpleini/archive/${_simpleini_gitrev}.tar.gz"
+checksum="54b9fd496eba5b82d7e64891ab4de808f539c60b3b94bfa49639e0d9580fb7b8
+ 8e013245bf8e676d4e2c61661d7cee6cb9de74f97a475c9e6b35a25d5e7a7715
+ 40c0dc21943de22e153d56a7992c621a42a0c56c7cd833f8b84f90e48da753ea
+ ee173f5edb20f162482658cbc9d4bb84b640f651041d686c0ad7b2af12baf2a1
+ dbdb50a33d3edf791fc2622309d9c3d701a2fb7e7e2b403d3fa504e04f0ade0e"
+
+post_extract() {
+	mkdir -p build/_deps
+	mv ${pkgname}-${version}/* .
+	mv SDL_audiolib-${_audiolib_gitrev} build/_deps/sdl_audiolib-src
+	mv libsmackerdec-${_smackerdec_gitrev} build/_deps/libsmackerdec-src
+	mv libmpq-${_libmpq_gitrev} build/_deps/libmpq-src
+	mv simpleini-${_simpleini_gitrev} build/_deps/simpleini-src
+}
+
+post_build() {
+	# use mpqtool instead of unpackaged smpq
+	mpqtool new build/assets build/devilutionx.mpq
+}
 
 post_install() {
 	vlicense LICENSE

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
  2023-01-15  2:54 ` [PR PATCH] [Updated] " kruceter
  2023-01-15  3:09 ` kruceter
@ 2023-01-15  3:22 ` kruceter
  2023-01-15 16:00 ` [PR REVIEW] " Vaelatern
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15  3:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]

There is an updated pull request by kruceter against master on the void-packages repository

https://github.com/kruceter/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/41658

devilutionX: update to 1.4.1.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

#### About mpqtool

Apparently upstream needs some tool to pack assets into one file.

If such a tool is not used within CMake, `do_install()` will not install the binary, icons, etc to `$DESTDIR`.

Pull request #39184 had encountered this behaviour and placed needed files manually as a result.

Packaging `smpq` is a little too much, hence `mpqtool` is used with little patching to address all issues listed above.

A patch file from https://github.com/void-linux/void-packages/pull/41658.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-41658.patch --]
[-- Type: text/x-diff, Size: 4594 bytes --]

From 0e8e54a24bcbc0b8c80e2294f4122ebcf419af13 Mon Sep 17 00:00:00 2001
From: Krul Ceter <kruceter@proton.me>
Date: Wed, 11 Jan 2023 07:37:38 +0300
Subject: [PATCH] devilutionX: update to 1.4.1.

* External (3rd party) dependencies normally are fetched with git,
  which is undesirable for packaging; hence they are fetched manually
  with xbps-src. "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" prevents
  cmake's FetchContent module from attempting to download or update any
  external dependencies.

* BINARY_RELEASE option is gone.

* CharisSILB is absent with TTF_FONT_PATH from the release tarball.

* mpqtool is used for building devilutionx.mpq since smpq is not
  packaged.
---
 srcpkgs/devilutionX/patches/smpq.patch | 19 ++++++++++++
 srcpkgs/devilutionX/template           | 42 +++++++++++++++++++++++---
 2 files changed, 56 insertions(+), 5 deletions(-)
 create mode 100644 srcpkgs/devilutionX/patches/smpq.patch

diff --git a/srcpkgs/devilutionX/patches/smpq.patch b/srcpkgs/devilutionX/patches/smpq.patch
new file mode 100644
index 000000000000..f14ddf7ea474
--- /dev/null
+++ b/srcpkgs/devilutionX/patches/smpq.patch
@@ -0,0 +1,19 @@
+If smpq is not present (in our case not packaged for void at all),
+cmake --install will not install anything to DESTDIR.
+
+DEVILUTIONX_MPQ is used during the installation to DESTDIR, but
+undefined if smpq is not found (see CMake/Assets.cmake),
+thus it is also set in this patch.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -405,7 +405,8 @@
+   target_compile_definitions(libdevilutionx PRIVATE __UWP__=1)
+ endif()
+ 
+-if(CPACK AND (APPLE OR BUILD_ASSETS_MPQ OR SRC_DIST))
++if(CPACK)
++  set(DEVILUTIONX_MPQ "${CMAKE_CURRENT_BINARY_DIR}/devilutionx.mpq")
+   if(WIN32)
+     if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+       set(SDL2_WIN32_DLLS_DIR "${CMAKE_BINARY_DIR}")
diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..5e5ee93d4baf 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,16 +1,48 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
+# git revisions can be found in the 3rdParty directory of the
+# source code.
+_audiolib_gitrev=1a69135313c79817b38a3a99826d4ac28d627fdf
+_smackerdec_gitrev=2997ee0e41e91bb723003bc09234be553b190e38
+_libmpq_gitrev=0f10bd1600f406b13932bf5351ba713361262184
+_simpleini_gitrev=56499b5af5d2195c6acfc58c4630b70e0c9c4c21
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DDISABLE_ZERO_TIER=ON"
+hostmakedepends="pkg-config mpqtool gettext"
+makedepends="SDL2-devel SDL2_image-devel libpng-devel bzip2-devel
+ libsodium-devel gtest-devel fmt-devel zlib-devel asio"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
-distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+changelog="https://raw.githubusercontent.com/diasurgical/devilutionX/master/docs/CHANGELOG.md"
+distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz
+ https://github.com/realnc/SDL_audiolib/archive/${_audiolib_gitrev}.tar.gz
+ https://github.com/diasurgical/libsmackerdec/archive/${_smackerdec_gitrev}.tar.gz
+ https://github.com/diasurgical/libmpq/archive/${_libmpq_gitrev}.tar.gz
+ https://github.com/brofield/simpleini/archive/${_simpleini_gitrev}.tar.gz"
+checksum="54b9fd496eba5b82d7e64891ab4de808f539c60b3b94bfa49639e0d9580fb7b8
+ 8e013245bf8e676d4e2c61661d7cee6cb9de74f97a475c9e6b35a25d5e7a7715
+ 40c0dc21943de22e153d56a7992c621a42a0c56c7cd833f8b84f90e48da753ea
+ ee173f5edb20f162482658cbc9d4bb84b640f651041d686c0ad7b2af12baf2a1
+ dbdb50a33d3edf791fc2622309d9c3d701a2fb7e7e2b403d3fa504e04f0ade0e"
+
+post_extract() {
+	mkdir -p build/_deps
+	mv ${pkgname}-${version}/* .
+	mv SDL_audiolib-${_audiolib_gitrev} build/_deps/sdl_audiolib-src
+	mv libsmackerdec-${_smackerdec_gitrev} build/_deps/libsmackerdec-src
+	mv libmpq-${_libmpq_gitrev} build/_deps/libmpq-src
+	mv simpleini-${_simpleini_gitrev} build/_deps/simpleini-src
+}
+
+post_build() {
+	# use mpqtool instead of unpackaged smpq
+	mpqtool new build/assets build/devilutionx.mpq
+}
 
 post_install() {
 	vlicense LICENSE

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (3 preceding siblings ...)
  2023-01-15 16:00 ` [PR REVIEW] " Vaelatern
@ 2023-01-15 16:00 ` Vaelatern
  2023-01-15 16:00 ` Vaelatern
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 208 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070628909

Comment:
hrm, can mpqtool be an alias for smpq to remove the patch?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (5 preceding siblings ...)
  2023-01-15 16:00 ` Vaelatern
@ 2023-01-15 16:00 ` Vaelatern
  2023-01-15 16:00 ` Vaelatern
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 152 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070628721

Comment:
OK

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (4 preceding siblings ...)
  2023-01-15 16:00 ` Vaelatern
@ 2023-01-15 16:00 ` Vaelatern
  2023-01-15 16:00 ` Vaelatern
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 274 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070628320

Comment:
Hrm, this is a custom patch... what's the chance of either upstreaming this or fixing the underlying problem (missing smpq?)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (6 preceding siblings ...)
  2023-01-15 16:00 ` Vaelatern
@ 2023-01-15 16:00 ` Vaelatern
  2023-01-15 16:01 ` Vaelatern
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070628832

Comment:
OK

How will these checksums or origin gitrevs be maintained, is there a link to easily see what hashes are present?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (2 preceding siblings ...)
  2023-01-15  3:22 ` kruceter
@ 2023-01-15 16:00 ` Vaelatern
  2023-01-15 16:00 ` Vaelatern
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070628446

Comment:
I assume `BINARY_RELEASE` went away? And the font flag too?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (7 preceding siblings ...)
  2023-01-15 16:00 ` Vaelatern
@ 2023-01-15 16:01 ` Vaelatern
  2023-01-15 16:05 ` [PR REVIEW] " kruceter
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 182 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#issuecomment-1383187373

Comment:
Is there a source for `smpq` upstream?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (8 preceding siblings ...)
  2023-01-15 16:01 ` Vaelatern
@ 2023-01-15 16:05 ` kruceter
  2023-01-15 16:06 ` kruceter
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 333 bytes --]

New review comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070629862

Comment:
Yes, `BINARY_RELEASE` is removed upstream. The font is not shipped in the tarball anymore.

I checked the engine myself in action due to that, no garbled fonts or anything like that.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (9 preceding siblings ...)
  2023-01-15 16:05 ` [PR REVIEW] " kruceter
@ 2023-01-15 16:06 ` kruceter
  2023-01-15 16:12 ` kruceter
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 344 bytes --]

New review comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070629862

Comment:
Yes, `BINARY_RELEASE` is removed upstream. The font is not shipped in the tarball anymore.

I checked the engine myself in action due to that, no garbled fonts or any artifacts have been found.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (10 preceding siblings ...)
  2023-01-15 16:06 ` kruceter
@ 2023-01-15 16:12 ` kruceter
  2023-01-15 16:13 ` kruceter
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 516 bytes --]

New review comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070632417

Comment:
> gitrevs be maintained, is there a link to easily see what hashes are present?

Of course! Upstream specifies urls and revisions in 3rdParty/*/CMakeLists.txt, so they are easy to find with every release. The appropriate commentary in the template already summarizes this:

```sh
# git revisions can be found in the 3rdParty directory of the
# source code.
```

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (11 preceding siblings ...)
  2023-01-15 16:12 ` kruceter
@ 2023-01-15 16:13 ` kruceter
  2023-01-15 16:14 ` kruceter
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

New review comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070632501

Comment:
I am afraid not. They have different command line syntax.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (12 preceding siblings ...)
  2023-01-15 16:13 ` kruceter
@ 2023-01-15 16:14 ` kruceter
  2023-01-15 16:18 ` [PR REVIEW] " kruceter
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 341 bytes --]

New comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#issuecomment-1383190462

Comment:
> Is there a source for `smpq` upstream?

There is, but my main concern is that its last release was in 2016, last change to the code in 2018. If it is alright, I will package it for you properly.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (13 preceding siblings ...)
  2023-01-15 16:14 ` kruceter
@ 2023-01-15 16:18 ` kruceter
  2023-01-15 16:32 ` Vaelatern
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 16:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 328 bytes --]

New review comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070633404

Comment:
This patch is a dirty hack. However, I definitely consider this a problem: if smpq is not found, `cmake --install` will not install anything, although I think it should by design.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (14 preceding siblings ...)
  2023-01-15 16:18 ` [PR REVIEW] " kruceter
@ 2023-01-15 16:32 ` Vaelatern
  2023-01-15 16:33 ` [PR REVIEW] " Vaelatern
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 240 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#issuecomment-1383194203

Comment:
As discussed on IRC, @kruceter will try to ask upstream to change tools from `smpq` to `mpqtool`

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR REVIEW] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (15 preceding siblings ...)
  2023-01-15 16:32 ` Vaelatern
@ 2023-01-15 16:33 ` Vaelatern
  2023-01-15 18:04 ` [PR PATCH] [Updated] " kruceter
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 16:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 184 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#discussion_r1070635906

Comment:
Can we put a link in that comment?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (16 preceding siblings ...)
  2023-01-15 16:33 ` [PR REVIEW] " Vaelatern
@ 2023-01-15 18:04 ` kruceter
  2023-01-15 18:08 ` kruceter
  2023-01-15 18:46 ` [PR PATCH] [Merged]: " Vaelatern
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 18:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]

There is an updated pull request by kruceter against master on the void-packages repository

https://github.com/kruceter/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/41658

devilutionX: update to 1.4.1.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

#### About mpqtool

Apparently upstream needs some tool to pack assets into one file.

If such a tool is not used within CMake, `do_install()` will not install the binary, icons, etc to `$DESTDIR`.

Pull request #39184 had encountered this behaviour and placed needed files manually as a result.

Packaging `smpq` is a little too much, hence `mpqtool` is used with little patching to address all issues listed above.

A patch file from https://github.com/void-linux/void-packages/pull/41658.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-41658.patch --]
[-- Type: text/x-diff, Size: 2340 bytes --]

From 34b01b296609785efccee4c939ced7fb6798324f Mon Sep 17 00:00:00 2001
From: Krul Ceter <kruceter@proton.me>
Date: Wed, 11 Jan 2023 07:37:38 +0300
Subject: [PATCH] devilutionX: update to 1.4.1.

* External (3rd party) dependencies normally are fetched with git,
  which is undesirable for packaging; hence they are fetched manually
  with xbps-src. "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" prevents
  cmake's FetchContent module from attempting to download or update any
  external dependencies.

* BINARY_RELEASE option is gone.

* CharisSILB is absent with TTF_FONT_PATH from the release tarball.
---
 srcpkgs/devilutionX/template | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..7e46cd95a68e 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,16 +1,23 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DDISABLE_ZERO_TIER=ON -DDEVILUTIONX_SYSTEM_GOOGLETEST=ON
+ -DDEVILUTIONX_SYSTEM_SDL2=ON -DDEVILUTIONX_SYSTEM_SDL_IMAGE=ON
+ -DDEVILUTIONX_SYSTEM_LIBFMT=ON -DDEVILUTIONX_SYSTEM_BZIP2=ON
+ -DDEVILUTIONX_SYSTEM_LIBSODIUM=ON"
+hostmakedepends="pkg-config gettext"
+makedepends="SDL2-devel SDL2_image-devel bzip2-devel libsodium-devel
+ gtest-devel fmt-devel zlib-devel"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
-distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+changelog="https://raw.githubusercontent.com/diasurgical/devilutionX/master/docs/CHANGELOG.md"
+distfiles="https://github.com/diasurgical/devilutionX/releases/download/${version}/devilutionx-src-fully-vendored.tar.xz"
+checksum=80527c29cd1d369ce905be426b671350b400c9468b73ef8cfbe6a09a563aeac0
 
 post_install() {
 	vlicense LICENSE

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (17 preceding siblings ...)
  2023-01-15 18:04 ` [PR PATCH] [Updated] " kruceter
@ 2023-01-15 18:08 ` kruceter
  2023-01-15 18:46 ` [PR PATCH] [Merged]: " Vaelatern
  19 siblings, 0 replies; 22+ messages in thread
From: kruceter @ 2023-01-15 18:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 398 bytes --]

New comment by kruceter on void-packages repository

https://github.com/void-linux/void-packages/pull/41658#issuecomment-1383215167

Comment:
Apparently upstream ships tarball with all external dependencies bundled. Not only that, they also have pre-archived `devilutionx.mpq` which relieves packagers from using smpq/mpqtool to make it.

@Vaelatern has my sincere gratitude for pointing it out.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Merged]: devilutionX: update to 1.4.1.
  2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
                   ` (18 preceding siblings ...)
  2023-01-15 18:08 ` kruceter
@ 2023-01-15 18:46 ` Vaelatern
  19 siblings, 0 replies; 22+ messages in thread
From: Vaelatern @ 2023-01-15 18:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 890 bytes --]

There's a merged pull request on the void-packages repository

devilutionX: update to 1.4.1.
https://github.com/void-linux/void-packages/pull/41658

Description:
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-musl
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl (cross)
  - armv6l-musl (cross)

#### About mpqtool

Apparently upstream needs some tool to pack assets into one file.

If such a tool is not used within CMake, `do_install()` will not install the binary, icons, etc to `$DESTDIR`.

Pull request #39184 had encountered this behaviour and placed needed files manually as a result.

Packaging `smpq` is a little too much, hence `mpqtool` is used with little patching to address all issues listed above.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
  2022-09-09 13:47 [PR PATCH] " chloris-pale-green
@ 2022-09-09 13:50 ` chloris-pale-green
  0 siblings, 0 replies; 22+ messages in thread
From: chloris-pale-green @ 2022-09-09 13:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2171 bytes --]

There is an updated pull request by chloris-pale-green against master on the void-packages repository

https://github.com/chloris-pale-green/void-packages devilutionx
https://github.com/void-linux/void-packages/pull/39184

devilutionX: update to 1.4.1.
Updated the package since the packaged version was released more than a year ago. For the most recent release, the template had to be changed for the build to succeed. See notes below.

**Cross builds seem to fail.** See notes below. Help is welcome.

#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, (x86_64)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64 (cross, **failed**)
  - armv6l (cross, **failed**),
  - x86_64-musl (masterdir)

#### Template changes
- Add devel dependencies so that more libs from the repos get dynamically linked instead of built and linked statically.
- Add host dependencies needed for the build process by trial and error.
- Upstream uses `smpq` to create a MPQ archive with game assets. Manually use `mpqtool` from Void repos. If the assets are not in a MPQ archive, the game expects them in something like `/usr/bin/assets`, which is not acceptable.
- Install process did nothing, even when manually calling `cmake --install`. The installation is not complicated so I've created an alternative install script.

#### Failing cross builds
Both `aarch64` and `armv6l` crossbuilds fail with the same error:
```
=> devilutionX-1.4.1_1: running do_build ...
ninja: error: '/usr/lib64/libSDL2main.a', needed by 'devilutionx', missing and no known rule to make it
```

Additionally, when I've tried to move `devel` deps to `hostmakedepends`, the build failed because the binary could not be stripped. I suspect that the build process does not cross-compile, but builds for the host arch instead (looking for libraries in `/usr/lib64` on `armv6l` is suspicious enough). Perhaps some additional arguments for Cmake are required.

A patch file from https://github.com/void-linux/void-packages/pull/39184.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-devilutionx-39184.patch --]
[-- Type: text/x-diff, Size: 2654 bytes --]

From bd34d6756f84fd570dcbc0c84beb85f663ac0dae Mon Sep 17 00:00:00 2001
From: Chloris <chloris@freedommail.ch>
Date: Mon, 5 Sep 2022 09:07:01 +0200
Subject: [PATCH] devilutionX: update to 1.4.1.

---
 srcpkgs/devilutionX/template | 39 ++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/devilutionX/template b/srcpkgs/devilutionX/template
index 829ff248926b..6bf190178769 100644
--- a/srcpkgs/devilutionX/template
+++ b/srcpkgs/devilutionX/template
@@ -1,17 +1,44 @@
 # Template file for 'devilutionX'
 pkgname=devilutionX
-version=1.2.1
+version=1.4.1
 revision=1
 build_style=cmake
-configure_args="-DVERSION_NUM=$version -DBINARY_RELEASE=ON -DTTF_FONT_PATH=\"/usr/share/fonts/truetype/CharisSILB.ttf\""
-makedepends="SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel"
+configure_args="-DVERSION_NUM=$version -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF"
+hostmakedepends="gettext git mpqtool pkgconf"
+makedepends="bzip2-devel fmt-devel libsodium-devel SDL2-devel SDL2_image-devel SDL2_mixer-devel zlib-devel"
 short_desc="Diablo I engine for modern operating systems"
 maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
 license="Unlicense"
 homepage="https://github.com/diasurgical/devilutionX"
 distfiles="https://github.com/diasurgical/devilutionX/archive/${version}.tar.gz"
-checksum=002dcbd4d4a5bdf8db1a3ec01139e5bfbed46d6a1caa32b17c9f2df161ad3521
+checksum=54b9fd496eba5b82d7e64891ab4de808f539c60b3b94bfa49639e0d9580fb7b8
 
-post_install() {
-	vlicense LICENSE
+post_build() {
+	# Create devilutionx.mpq asset archive
+	# (smpq, required by the build script, is not available in Void repos
+	# so an alternative program mpqtool is used to create the MPQ archive)
+	mpqtool new 'build/assets' 'build/devilutionx.mpq'
+}
+
+do_install() {
+	vbin 'build/devilutionx'
+	# Install assets to the directory that is recognized by the binary
+	vinstall 'build/devilutionx.mpq' 644 'usr/share/diasurgical/devilutionx'
+
+	vdoc 'README.md'
+	vlicense 'LICENSE'
+
+	cd 'Packaging'
+	# Install desktop entries
+	vinstall 'nix/devilutionx.desktop' 644 'usr/share/applications'
+	vinstall 'nix/devilutionx-hellfire.desktop' 644 'usr/share/applications'
+	# Install icons
+	vinstall 'resources/icon.png' 644 \
+		'usr/share/icons/hicolor/512x512/apps' 'devilutionx.png'
+	vinstall 'resources/hellfire.png' 644 \
+		'usr/share/icons/hicolor/512x512/apps' 'devilutionx-hellfire.png'
+	vinstall 'resources/icon_32.png' 644 \
+		'usr/share/icons/hicolor/32x32/apps' 'devilutionx.png'
+	vinstall 'resources/hellfire_32.png' 644 \
+		'usr/share/icons/hicolor/32x32/apps' 'devilutionx-hellfire.png'
 }

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-01-15 18:46 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-15  1:39 [PR PATCH] devilutionX: update to 1.4.1 kruceter
2023-01-15  2:54 ` [PR PATCH] [Updated] " kruceter
2023-01-15  3:09 ` kruceter
2023-01-15  3:22 ` kruceter
2023-01-15 16:00 ` [PR REVIEW] " Vaelatern
2023-01-15 16:00 ` Vaelatern
2023-01-15 16:00 ` Vaelatern
2023-01-15 16:00 ` Vaelatern
2023-01-15 16:00 ` Vaelatern
2023-01-15 16:01 ` Vaelatern
2023-01-15 16:05 ` [PR REVIEW] " kruceter
2023-01-15 16:06 ` kruceter
2023-01-15 16:12 ` kruceter
2023-01-15 16:13 ` kruceter
2023-01-15 16:14 ` kruceter
2023-01-15 16:18 ` [PR REVIEW] " kruceter
2023-01-15 16:32 ` Vaelatern
2023-01-15 16:33 ` [PR REVIEW] " Vaelatern
2023-01-15 18:04 ` [PR PATCH] [Updated] " kruceter
2023-01-15 18:08 ` kruceter
2023-01-15 18:46 ` [PR PATCH] [Merged]: " Vaelatern
  -- strict thread matches above, loose matches on Subject: below --
2022-09-09 13:47 [PR PATCH] " chloris-pale-green
2022-09-09 13:50 ` [PR PATCH] [Updated] " chloris-pale-green

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).