Skip to content

Conversation

@Skyb0rg007
Copy link
Contributor

Description

This PR creates a tarball smlnj.tgz, which contains the contents of all other .tgz files.

Additionally, there are many improvements to the administration scripts.
The unused svn-based scripts were removed.
Some of the scripts have a /bin/sh shebang, but required bash. These "Bash-isms" were removed.
The scripts will error out when a cd fails. This has been the source of many errors when building the system on my machine.
Shell variables are now properly quoted.
The git clone operation now uses the current checkout instead of hard-coding github.com/smlnj/legacy, which now allows for testing in a different branch than main and 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 .tgz files -- an assumption that is not true for most Linux package distributions for good reason.
By including a single .tgz this 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.sh script, since it does not build the boot files before creating the archive.
Perhaps the best option is to build smlnj/smlnj.tar, then later tar -uf smlnj/smlnj.tar boot.$arch-unix once those bootfiles are created. That is why this is left as a draft for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant