Github messages for voidlinux
 help / color / mirror / Atom feed
From: kruceter <kruceter@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] devilutionX: update to 1.4.1.
Date: Sun, 15 Jan 2023 03:54:38 +0100	[thread overview]
Message-ID: <20230115025438.iBXsDAnKUs9GJ0gP0Sr3fZcQv9Hfx9scHuPX-c_UT8M@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-41658@inbox.vuxu.org>

[-- 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

  reply	other threads:[~2023-01-15  2:54 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-15  1:39 [PR PATCH] " kruceter
2023-01-15  2:54 ` kruceter [this message]
2023-01-15  3:09 ` [PR PATCH] [Updated] " 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230115025438.iBXsDAnKUs9GJ0gP0Sr3fZcQv9Hfx9scHuPX-c_UT8M@z \
    --to=kruceter@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).