Create a complete source-code tarball #369
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR creates a tarball
smlnj.tgz, which contains the contents of all other.tgzfiles.Additionally, there are many improvements to the administration scripts.
The unused
svn-based scripts were removed.Some of the scripts have a
/bin/shshebang, but requiredbash. These "Bash-isms" were removed.The scripts will error out when a
cdfails. This has been the source of many errors when building the system on my machine.Shell variables are now properly quoted.
The
git cloneoperation now uses the current checkout instead of hard-codinggithub.com/smlnj/legacy, which now allows for testing in a different branch thanmainand doing so without needing to push the code to the upstream repo.Motivation and Context
When packaging SML/NJ for other systems, obtaining the source code has always been a tedious issue.
The current build process expects the ability to download
.tgzfiles -- an assumption that is not true for most Linux package distributions for good reason.By including a single
.tgzthis makes it easy for downstream packaging to update SML/NJ.What still needs to be done?
The boot files are not included in the created archive.
This seems to be a limitation of the
admin/build-tar-files.shscript, since it does not build the boot files before creating the archive.Perhaps the best option is to build
smlnj/smlnj.tar, then latertar -uf smlnj/smlnj.tar boot.$arch-unixonce those bootfiles are created. That is why this is left as a draft for now.