Bug 264064 - games/devilutionX: update to 1.4
Summary: games/devilutionX: update to 1.4
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Nuno Teixeira
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-05-18 10:41 UTC by Dmitry Marakasov
Modified: 2022-05-19 17:41 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (eduardo)


Attachments
Patch (14.58 KB, patch)
2022-05-18 10:41 UTC, Dmitry Marakasov
eduardo: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Marakasov freebsd_committer freebsd_triage 2022-05-18 10:41:51 UTC
Created attachment 234016 [details]
Patch

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

QA: reprise
SUCCESS games/devilutionX on 13-amd64
SUCCESS games/devilutionX on 13-amd64 (+DEBUG)
SUCCESS games/devilutionX on 13-amd64 (-LTO)
SUCCESS games/devilutionX on 13-amd64 (-SOUND)
SUCCESS games/devilutionX on 13-amd64 (+TEST)
SUCCESS games/devilutionX on 13-amd64 (-ENCRYPTION)
SUCCESS games/devilutionX on 13-amd64 (-NETWORK)
SUCCESS games/devilutionX on 13-amd64 (-TCP)
SKIPPED games/devilutionX on 13-amd64 (+ZEROTIER)
        * is marked as broken: does not build: fatal error: 'sys/appleapiopts.h' file not found
SUCCESS games/devilutionX on 13-amd64 (-NETWORK -TCP -ENCRYPTION)

Poudriere:
SUCCESS on 12-i386
SUCCESS on 12-amd64
SUCCESS on 13-i386
SUCCESS on 13-amd64
SUCCESS on 13-amd64:noport
Comment 1 Nuno Teixeira freebsd_committer freebsd_triage 2022-05-18 12:23:07 UTC
Hi!

Nice work you have done, I was having some troubles upgrading to 1.4 because I can build it and run it from work/.build/devilutionx but cmake don't install anything.

Author told me to fix zerotier: "It's failing to build ZeroTier, try disabeling it with this CMake argument: -DDISABLE_ZERO_TIER=ON" and it works. [1]

For some reason I used 'git apply devilutionx.patch'but no error shows up but nothing change, git status doesn't show any changes, strange.

[1] https://github.com/diasurgical/devilutionX/issues/4554#issuecomment-1120900811
Comment 2 Nuno Teixeira freebsd_committer freebsd_triage 2022-05-18 12:37:42 UTC
Your patch shows very good port skills and I'm not prepared for that.
Do you accept maintain this port?

Thats a very important port to me because I still play Diablo :)

Yours,

Nuno Teixeira
Comment 3 Nuno Teixeira freebsd_committer freebsd_triage 2022-05-18 12:39:12 UTC
Feel free to commit this update.

Thanks
Comment 4 Dmitry Marakasov freebsd_committer freebsd_triage 2022-05-18 18:57:03 UTC
> Your patch shows very good port skills and I'm not prepared for that.
> Do you accept maintain this port?

Only if that doesn't take the fun away from you. I can explain how the each change was made if you wish.

> Thats a very important port to me because I still play Diablo :)

Same here, finally having F/OSS diablo is beyond my dreams. Last time I've played with wine and in the end it ruined my savegame, and now it can run natively.

> Feel free to commit this update.

Committed, thanks! With an small additional change of removing dependency on the font which is no longer needed as suggested by one of the devilution devs.
Comment 5 commit-hook freebsd_committer freebsd_triage 2022-05-18 18:57:10 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=973414029d3442683b314739d3b4df5153b04394

commit 973414029d3442683b314739d3b4df5153b04394
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2022-05-17 14:43:57 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2022-05-18 18:54:10 +0000

    games/devilutionX: update to 1.4

    - Update to 1.4
    - Drop dependency on font, no longer needed
    - Drop unnecessary .desktop file patches (also upstream PR exists)
    - Install from the port (instead of patching CMakeLists.txt), to be
      more explicit and flexible
    - Convert to pkg-plist as there are 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 position and will 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
    - Update pkg-message (Diablo data file doesn't have to be lowercase,
      works either way)

    PR:             264064
    Approved by:    eduardo@FreeBSD.org (maintainer)

 games/devilutionX/Makefile                         | 101 ++++++++++++++++-----
 games/devilutionX/distinfo                         |  26 +++++-
 games/devilutionX/files/patch-CMakeLists.txt       |  20 ++--
 ...tch-Packaging_fedora_devilutionx.desktop (gone) |  17 ----
 .../files/patch-Source_engine_random.cpp (new)     |  14 +++
 .../devilutionX/files/patch-Source_init.cpp (new)  |  11 +++
 games/devilutionX/files/patch-Source_sound.h (new) |  14 +++
 games/devilutionX/pkg-message                      |   3 +-
 games/devilutionX/pkg-plist (new)                  |   6 ++
 9 files changed, 156 insertions(+), 56 deletions(-)
Comment 6 Nuno Teixeira freebsd_committer freebsd_triage 2022-05-19 09:56:52 UTC
Hello Dmitry!

1. History:

I was the "fire starter" of this port. In 2019 I was looking for a new Unix engine to run Diablo and I found this project.
I have tried to build it from source without success and I've started to talk with dev asking for help.
One day a cool guy called Malavon see some of the issues I published and he start to create a port, 0.4.0.

One day he stops updating port and I send some patches to next versions until the day he said that he don't have too much time left to maintain it so I take mainatinership.

3 or 4 files/patches were included upstream with me as maintainer.

2. Maintainership:

You maintain 394 ports :) Please maintain this one as well because it is a big step for me that I'm not prepared to.
I'm still a newbie commiter that learns every day with small steps.

Please open a PR for taking maintainership or use this one.

Cheers,

Nuno Teixeira
Comment 7 Dmitry Marakasov freebsd_committer freebsd_triage 2022-05-19 17:40:47 UTC
> Please maintain this one as well because it is a big step for me that I'm not prepared to.
> I'm still a newbie commiter that learns every day with small steps.

Okay, feel free to take it back someday.

> You maintain 394 ports :)

That is why I'd be happy to share my knowledge and responsibility.
Comment 8 commit-hook freebsd_committer freebsd_triage 2022-05-19 17:41:07 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=903d341a2f2ac349671f00fcba1440c1aa71b624

commit 903d341a2f2ac349671f00fcba1440c1aa71b624
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2022-05-19 17:36:15 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2022-05-19 17:36:17 +0000

    games/devilutionX: take maintainership

    As proposed by maintainer.

    While here, update pkg-message with instructions on copying files
    for Diablo: Hellfire expansion.

    PR:             264064
    Approved by:    maintainer

 games/devilutionX/Makefile    | 2 +-
 games/devilutionX/pkg-message | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)