aboutsummaryrefslogtreecommitdiff
path: root/scripts/archive-source.sh
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-05-18 16:50:00 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-06-06 16:30:01 +0200
commit2019cabfee08dd49c28359b6fd0bac63fb12df9b (patch)
tree97d332166364fecde526bf2729119dd4e7b3781b /scripts/archive-source.sh
parentd120116b5d6e81831332f807028a29c5e5815a6a (diff)
meson: subprojects: replace submodules with wrap files
Compared to submodules, .wrap files have several advantages: * option parsing and downloading is delegated to meson * the commit is stored in a text file instead of a magic entry in the git tree object * we could stop shipping external dependencies that are only used as a fallback, but not break compilation on platforms that lack them. For example it may make sense to download dtc at build time, controlled by --enable-download, even when building from a tarball. Right now, this patch does the opposite: make-release treats dtc like libvfio-user (which is not stable API and therefore hasn't found its way into any distros) and keycodemap (which is a copylib, for better or worse). dependency() can fall back to a wrap automatically. However, this is only possible for libraries that come with a .pc file, and this is not very common for libfdt even though the upstream project in principle provides it; it also removes the control that we provide with --enable-fdt={system,internal}. Therefore, the logic to pick system vs. internal libfdt is left untouched. --enable-fdt=git is removed; it was already a synonym for --enable-fdt=internal. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'scripts/archive-source.sh')
-rwxr-xr-xscripts/archive-source.sh11
1 files changed, 9 insertions, 2 deletions
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index dba5ae05b6..b99cb66e41 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -26,8 +26,8 @@ sub_file="${sub_tdir}/submodule.tar"
# independent of what the developer currently has initialized
# in their checkout, because the build environment is completely
# different to the host OS.
-submodules="subprojects/dtc subprojects/keycodemapdb"
-submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
+subprojects="dtc keycodemapdb libvfio-user"
+submodules="tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
sub_deinit=""
function cleanup() {
@@ -70,4 +70,11 @@ for sm in $submodules; do
tar --concatenate --file "$tar_file" "$sub_file"
test $? -ne 0 && error "failed append submodule $sm to $tar_file"
done
+
+for sp in $subprojects; do
+ meson subprojects download $sp
+ test $? -ne 0 && error "failed to download subproject $sp"
+ tar --append --file "$tar_file" --exclude=.git subprojects/$sp
+ test $? -ne 0 && error "failed to append subproject $sp to $tar_file"
+done
exit 0