Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

devilutionX: update to 1.4.1. #39184

Closed

Conversation

chloris-pale-green
Copy link
Contributor

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.

@chloris-pale-green
Copy link
Contributor Author

On ARM architectures there are many Cmake errors for different targets like this:

 CMake Error in build/_deps/sdl_audiolib-src/CMakeLists.txt:
  Imported target "SDL2::SDL2" includes non-existent path

    "/usr/include/SDL2"

If anyone has any idea why the libs seem to be missing, let me know. As far as I know, SDL2-devel is a dependency and it installs stuff into /usr/include/SDL2.

@tranzystorekk
Copy link
Contributor

tranzystorekk commented Sep 10, 2022

Seems there's a problem with building SDL_audiolib from the fetched source, we could try packaging it ourselves

...or not, it's not versioned in any way :/

@chloris-pale-green
Copy link
Contributor Author

Seems there's a problem with building SDL_audiolib from the fetched source, we could try packaging it ourselves

...or not, it's not versioned in any way :/

It really does not seem to be versioned ... it's a bit like someone made a quick solution to their problem. I've also noticed that there is some overlap between contributors of devilutionX and SDL_audiolib. It's a good question if the package would be useful for anything else besides devilutionX.

However, I don't think it is a SDL_audiolib-specific issue that we're facing here. It seems to me that it simply doesn't find SDL libraries. They are detected as dynamic system libraries, but not found when things should get compiled.

@github-actions
Copy link

Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.

@github-actions github-actions bot added the Stale label Dec 10, 2022
@bugcrazy
Copy link
Contributor

bugcrazy commented Dec 22, 2022

My PR is funcional for all architectures: #34039

@github-actions github-actions bot removed the Stale label Dec 23, 2022
@ghost
Copy link

ghost commented Jan 11, 2023

@chloris-pale-green, I could make it build wth aarch64 on https://github.com/kruceter/void-packages/pull/2.

My work also includes your changes for which you have my gratitude.

I hope it will be useful to you.

@chloris-pale-green
Copy link
Contributor Author

Thank you, @kruceter. You've displayed some templating skills I'll never acquire in my life. 😁

Actually, I'm very grateful to you to make use of my incomplete work. So nice it didn't go to waste. 🙂

I'm closing this pull request. Further development should go in kruceter#2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants