Skip to content

Installation script with option for legacy source code. - #650

Open
Isak-JO wants to merge 7 commits into
jvde-github:mainfrom
Isak-JO:build-installation-options
Open

Isak-JO wants to merge 7 commits into
jvde-github:mainfrom
Isak-JO:build-installation-options

Conversation

@Isak-JO

@Isak-JO Isak-JO commented Sep 20, 2026 •

Copy link
Copy Markdown

The aiscatcher-install bash script is av very useful resource allowing users to smothly install AIS-catcher along with all necessary depencies and peripherals. However this script always uses the source code from the latest commit to the "edge" realese. And for the purpouse of troubleshooting, development, stability and consistency it may sometimes be desirable to revert to an older version of AIS-catcher.

Discussions of this feature were raised in: #533 and mentioned in: #641

I therfore decided to add a new functionality into the installation-script that allows building ais-catcher using older (legacy) source code from the reposetory. The argument -L (--Legacy) was added and allows users to install an older version of AIS-Catcher. The version is then determined by the specifying a commit ID (the SHA/hash generated by GitHub for each commit) as a timestamp for the chosen version of source code to be used when building. Adding -L followed by the commit id as arguments to the install-script will result in a legacy installation.

E.g. sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/Isak-JO/AIS-catcher/build-installation-options/scripts/aiscatcher-install) -L c489c59"

Reverting to an older version of AIS-catcher is useful for development, trobleshooting, stability and validation. Definging a specific version is also useful for consistency between installation. Since development to AIS-catcher Edge is done contnuesly (and enthusiastically) it can be beneficial to install a known stable version without wating for the next official realese (0.71?), and thereby utilize the many added features and improvements. (staying up-to date on features while maintaing consistency/stability when installing from "Edge")

Note: outdated versions may not be possible to install due to incompability between the installer-script and very old source-code.

The -L argument clones the entire git reposetory of ais-catcher and allows the user to choose an older version by specifying the commit-id as a timestamp for the reposetory. (-L must therefore be followed by the SHA/hash identifier for a chosen commit)

I also added the -L and -M arguments in the install-script as options in the interactive feature selection. Thereby -M (Managed Mode) and -L (Legacy) may also be configured by toggling the options with YES/NO answers when using the interactive feature selection prompts (-i).

E.g. sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/Isak-JO/AIS-catcher/build-installation-options/scripts/aiscatcher-install) -i -L c489c59"

Isak-JO and others added 7 commits September 20, 2026 11:22
Implementing the -L (--legacy) argument to the install-script. This option utilizes source code from a previous commit when building from source. The -L argument must be followed by a commit ID (SHA/hash given to each commit by GitHub) that allows users to define from what occasion in history the source code should be cloned.
…selection.

-M (Managed Mode) and -L (Legacy) may now be configured either as arguments to the script or by toggling the options with YES/NO answers in the interactive feature selection prompts.
Validates user inputs to avoid installing AIS-catcher in managed mode if the the necessary vebviewer feature is disabled.
Adressing incompability that may occur when alternating between a pre-packaged and source-built installations. Removing a potential ais-catcher package after installing a source build ensures apt install does not have any ais-catcher package when the installation has been replaced by an source-build (-which may be either a newer or older version) and thereby ensures furure package installation is not disrupted by seeing a preexisting package.
Oversight in the previous commit caused new build to be uninstalled (apt remove) immediatly after installation. The script now removes previous a package installation before installing a new, To ensure compatiblity when switching between pre-packaged installation and source builds. (+ updated the path in makefile, this is an issue only if the user has builds from souce manually with the makefile)
Informing users that any previous pre-packaged installation will be removed when building from source (to avoid duplicate installations).

This branch has not been deployed

No deployments
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