Skip to content

Commit

Permalink
build ion-core using symbolic links
Browse files Browse the repository at this point in the history
  • Loading branch information
iondev33 committed Oct 14, 2024
1 parent 9099f28 commit 78ab448
Show file tree
Hide file tree
Showing 3 changed files with 209 additions and 81 deletions.
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# ION-Core for Linux (and WSL)

- [ION-Core for Linux (and WSL)](#ion-core-for-linux-and-wsl)
- [Preliminary Notes](#preliminary-notes)
- [Build \& Install](#build--install)
- [Alternative: Automated download of ION Open Source Code _without commit history_](#alternative-automated-download-of-ion-open-source-code-without-commit-history)
- [Selecting ION-core Features to Build](#selecting-ion-core-features-to-build)
Expand All @@ -21,6 +22,16 @@
- [Tag: `4.1.2a`](#tag-412a)
- [Tag: `4.1.2`](#tag-412)

## Preliminary Notes

Ion-core assumes the typical Linux OS installation location for `make` and `gcc`. It has not been tested for FreeBSD and MacOS. Future releases will update and test on these platforms.

Each ion-core version is designed to work with the corresponding version of ION Open Source release, e.g., ion-core 4.1.2 uses the ION open-source release version 4.1.2 as its sources.

Ion-core creates absolute path symbolic links to source files from the ION-DTN repo specified by the user. If you move the ION-DTN repo or the ion-core repo, you will need to update the symbolic links by re-running the `extract.sh` script and point to the new location.

As part of the build process, the extract script will modify two ION source files (`bpsec_policy_rule.c`,`bpextension.c`) and place copies inside the `src` folder in ion-core. The original source files in the ION open source repo will not be modified. The modifications are very minor and only to the extend needed to allow ion-core build to turn-on/off selected extension blocks; they do not alter the behavior of extension block handling.

## Build & Install

Be sure you have the tools installed:
Expand All @@ -44,18 +55,18 @@ git checkout tags/4.1.3
make clean
sudo make uninstall
# build
./scripts/extract.sh <your-ion-source-code-folder>/ion-open-source-4.1.3
./scripts/extract.sh <your-ion-source-code-folder>/ion-dtn
make
sudo make install
```

### Alternative: Automated download of ION Open Source Code _without commit history_

You can run `./scripts/extract.sh` without supplying the path to an existing ION source code repo. In that case, the script will automatically download the appropriate ION open source code into a `tmp` directory.
You can run `./scripts/extract.sh` without supplying the path to an existing ION source code repo. In that case, the script will automatically download the appropriate ION open source code version the `tmp` folder under the ion-core directory.

Then you can run `make` and `sudo make install` to install the code.

The disadvantage of this approach is that you will not have the commit history of the ION open source code and not way to submit pull requests to the original ION open source code. This is provided as a convenience for conducting quick testing.
The disadvantage of this approach is that you will not have the commit history of the ION open source code and not able to submit pull requests. This is provided as a convenience for conducting quick testing.

## Selecting ION-core Features to Build

Expand Down
2 changes: 2 additions & 0 deletions developer-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

* Ion-core assumes the typical Linux OS installation location for `make` and `gcc`. It has not been tested for FreeBSD and MacOS. Future releases will update and test on these platforms.
* Each ion-core version is designed to work with the corresponding version of ION Open Source release, e.g., ion-core 4.1.2 uses the ION open-source release version 4.1.2 as its sources.
* Ion-core creates absolute path symbolic links to source files from the ION-DTN repo specified by the user. If you move the ION-DTN repo or the ion-core repo, you will need to update the symbolic links by re-running the `extract.sh` script and point to the new location.
* As part of the build process, the extract script will modify two ION source files (`bpsec_policy_rule.c`,`bpextension.c`) and place copies inside the `src` folder in ion-core. The original source files in the ION open source repo will not be modified. The modifications are very minor and only to the extend needed to allow ion-core build to turn-on/off selected extension blocks; they do not alter the behavior of extension block handling.
* The mainline of the ion-core is the `current` branch. Each release will be tagged by the release number in the format of <x.y.z>.
* The `nasa-jpl/ion-core` repo is a mirror of an internal repo used by NASA team for development and testing. You may submit pull requests through Github and it will reviewed by ION development team for inclusion into the baseline. If incorporated, your changes will be mirrored back out on the next official release of ion-core.
* Development and testing should be done in separate branches with the naming convention: "update-<x.y.z>-<contributor-name-and-description>" where x.y.z is the version number of the target ion-core release. If the latest ion-core release is 4.1.2, the next release is either 4.1.3 or 4.2.
Expand Down
Loading

0 comments on commit 78ab448

Please sign in to comment.