[pure maps] packaging of recursive git submodules

I would like to continue in the discussion at

I was trying to package it from tarballs, but it seems to be very complicated task in case of maplibre-gl-native since it is using submodules initialized using following command:

git submodule update --init --recursive

The alpine linux does that with snapshot function, which creates an tarball which is used later for compilation.
https://git.alpinelinux.org/aports/tree/community/maplibre-gl-native/APKBUILD

It is possible to refer to each sub module separately in sources, but it ~20 modules. It brings an extra work to extract sub module in right path. Additionally, it recursive so it takes all tarballs locations must be extracted in two iterations. Updating of this to new version needs roughly same effort like updating of 20 independent packages and it is likely to make some copy paste errors.

Currently, I am using explicitly defined commit hash which should point to fixed commits hashes in su modules.

Do you have some recommendation for that?

Maybe @philm or @oberon can look into this and advice what would be the right approach to package it.

We package osmin, which is also using submodules.

You can see how it’s done here:

It seems that my packaging of maplibre-gl-native is more less the same as osmin. I need to update yet other packages. After that I can commit it into nemo-ux · GitLab