Ship the deduplicated package store, not both forms of it

The first complete build produced a 4.3 GB tarball. Modules/ alone was 7 GB
staged, because it contained the same packages twice:

  Modules/binary_pkgs      4.5 GB  content-addressed, deduplicated, placed
                                   there by ninja install
  Modules/*.JASPModule     2.5 GB  the same packages again, as per-module
                                   compressed archives, copied by this script

binary_pkgs is the installed form and holds 677 package directories, with
Rcpp, ggplot2 and the rest of the shared base appearing once rather than
once per module. The .JASPModule files are the distribution form used for
on-demand downloads and are redundant next to it.

Dropping them, and the build toolchain removed in the previous commit, takes
the tarball from 4.3 GB to 1.86 GB - the same order as the Flatpak's 1.4 GB
rather than three times over.

Still unverified: that JASP runs from binary_pkgs alone. It is upstream's own
install output, so it should, but nothing has been executed yet.
This commit is contained in:
agw
2026-09-03 20:55:00 +02:00
parent 9ae157c97a
commit d95597e945
+7 -2
View File
@@ -386,8 +386,13 @@ cp -a "$R_HOME_DIR" "$STAGE_DIR$PREFIX/"
# checkouts that would bloat the tarball without being usable at runtime.
install -d "$STAGE_DIR$PREFIX/Modules"
log "staging module bundles from ${MODULE_BUNDLES}"
cp -a "$MODULE_BUNDLES/." "$STAGE_DIR$PREFIX/Modules/"
# Deliberately do NOT copy Modules/local/*.JASPModule here. `ninja install`
# has already placed the same packages in Modules/binary_pkgs as a
# deduplicated, content-addressed store — 677 package directories, in which
# Rcpp, ggplot2 and the rest of the shared base appear once rather than once
# per module. The .JASPModule files are the *distribution* form used for
# on-demand downloads; shipping them alongside the installed form sends the
# same content twice and took the tarball from 1.86 GB to 4.3 GB.
install -Dm644 /work/packaging/org.jaspstats.JASP.desktop \