Haikuports SHA256 validating fails

Hi, I wanted to test the newest version of GemRB project on Haiku. The one available on Haikuports was outdated and built using SDL1.2 rather then 2, so I changed https://github.com/haikuports/haikuports/blob/master/games-engines/gemrb/gemrb-0.8.6.recipe in the local tree to gemrb-0.8.7. I changed SOURCE_URI to https://github.com/gemrb/gemrb/archive/refs/heads/master.zip and I generated SHA256SUM for it “f450fbc292930e9d08d1debaa14699f4199f63bc50074b12d2c808228440db8e”

when I run the command ‘haikuporter -S gemrb-0.8.7’ it ends with Error on “Validating checksum of gemrb-0.8.7.tar.gz
Error: Expected SHA-256: f450fbc292930e9d08d1debaa14699f4199f63bc50074b12d2c808228440db8e
Error: Found SHA-256 f450fbc292930e9d08d1debaa14699f4199f63bc50074b12d2c808228440db8e”

but both checksums are the same, so I don’t know why it fails. I can build the git-master with cmake and without haikuporter, and install it to /boot/system/non-packaged but I wanted to learn somethings about haikuports and recipes.

Are you sure that the quotes around the checksum are correct?

2 Likes

Yeah, a blank space before the ending quotes snuck in. I had to change the name of recipe to gemrb-master.recipe and within source_filename for it to work, but now it builds. Thanks.

EDIT: Now when I try to install the generated .hpkg I get the message “nothing provides lib:libsdl2” …

It should be

lib:libSDL2_2.0$secondaryArchSuffix

and

devel:libSDL2$secondaryArchSuffix

check and fix your recipe.

As a hint: if you have cloned the haikuports repo, you got a tons of hints in the recipes, grep them.

1 Like

Best would be to use a “srcGitRev” checkout (commit checkout) rather then using “master” branch, as those tend to change rather quickly and the checksums won’t match then, lot’s of examples around at haikuports that use a “srcGitRev” checkout :slight_smile:
EDIT latest release seems to be 0.8.7, if you do a srcGitRev checkout (current as of writing) commit is “0f383aad6ef51f2d0695ebadd4b73d5bb19fc706”

1 Like

Thanks for all the replies. It works now. I had to add

-DSDL2_INCLUDE_DIR=/boot/system/develop/headers/SDL2/
-DSDL2_MIXER_INCLUDE_DIR=/boot/system/develop/headers/SDL2

in BUILD() too

1 Like

Didn’t check this out, but if SDL2 is available it should be cherry picked over SDL from source? Or maybe there is an option to set this from commandline? SDL2 should be available for sources to find it I guess

SDL 1.2.x is incompatible with SDL 2.x so yes, it should be cherry-picked.