pushd ${destination}
git checkout "v${version}"
git submodule update --init
-rm -rf .git roms/*/.git
+(cd roms/seabios && git describe --tags --long --dirty > .version)
+(cd roms/skiboot && ./make_version.sh > .version)
+# Fetch edk2 submodule's submodules, since it won't have access to them via
+# the tarball later.
+#
+# A more uniform way to handle this sort of situation would be nice, but we
+# don't necessarily have much control over how a submodule handles its
+# submodule dependencies, so we continue to handle these on a case-by-case
+# basis for now.
+(cd roms/edk2 && \
+ git submodule update --init -- \
+ ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 \
+ BaseTools/Source/C/BrotliCompress/brotli \
+ CryptoPkg/Library/OpensslLib/openssl \
+ MdeModulePkg/Library/BrotliCustomDecompressLib/brotli)
popd
-tar cfj ${destination}.tar.bz2 ${destination}
+tar --exclude=.git -cjf ${destination}.tar.bz2 ${destination}
rm -rf ${destination}