-
Notifications
You must be signed in to change notification settings - Fork 34
Add scripts for bincompat-c-hello #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
sculamacaz
wants to merge
42
commits into
unikraft:scripts
Choose a base branch
from
sculamacaz:bincompat-poc-scripts
base: scripts
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Reword sentence on updating repositories for custom build. Previous wording was confusing. Signed-off-by: Razvan Deaconescu <[email protected]>
- `Config.uk`: application configuration - `server.c`: the source code file - `Makefile.uk`: defining source code files used - `Makefile`: for building the application - `fc.x86_64.json` / `fc.arm64.json`: Firecracker configuration - `xen.x86_64.cfg` / `xen.arm64.cfg`: Xen configuration - `README.md`: instructions Signed-off-by: Razvan Deaconescu <[email protected]>
Signed-off-by: Razvan Deaconescu <[email protected]>
Signed-off-by: Razvan Deaconescu <[email protected]>
A missing `arch` variable resulted in a wrong link and a failed command. Use a proper call to `uname` for the link. Signed-off-by: Razvan Deaconescu <[email protected]>
Add `elfloader-basic/` directory (no networking): - `Config.uk`: ELF Loader configuration - `rootfs/`: setup for building Linux ELFs - `Makefile`: for building the ELF Loader - `fc.x86_64.json`: Firecracker configuration - `README.md`: instructions Signed-off-by: Razvan Deaconescu <[email protected]>
Add `c-fs/` directory: - `Config.uk`: application configuration - `cat.c`: the source code file - `rootfs/`: directory storing the (root) filesystem - `Makefile.uk`: defining source code files used - `Makefile`: for building the application - `fc.x86_64.json` / `fc.arm64.json`: Firecracker configuration - `xen.x86_64.cfg` / `xen.arm64.cfg`: Xen configuration - `README.md`: instructions Signed-off-by: Razvan Deaconescu <[email protected]>
Add `cpp-hello` directory: - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: empty placeholder file required by build s ystem - `fc.x86_64.json` / `fc.arm64.json`: Firecracker configura tion - `xen.x86_64.cfg` / `xen.arm64.cfg`: Xen configuration - `README.md`: instructions - `.gitignore`: ignore generated files Signed-off-by: Radu Onutu <[email protected]>
Update "C Hello" to "C HTTP" in the `Customize` section of the C HTTP application README. Signed-off-by: Maria Pana <[email protected]>
Add `python3-hello` directory: - `hello.py`: the Python3 Hello program - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: empty placeholder file required by build system - `Dockerfile`: for creating the application filesystem - `fc.x86_64.json` / `fc.arm64.json`: Firecracker configuration - `xen.x86_64.cfg` / `xen.arm64.cfg`: Xen configuration - `README.md`: instructions - `.gitignore`: ignore generated files Signed-off-by: Razvan Deaconescu <[email protected]>
The Firecracker command line requires at lease an argument in order to properly parse the arguments. For C HTTP, add `placeholder` as an argument to the Firecracker command line. Signed-off-by: Razvan Deaconescu <[email protected]>
Python requires randomness support. Update `Config.uk` accordingly. Signed-off-by: Razvan Deaconescu <[email protected]>
`Makefile.uk` is always required by the build system, even if is an empty file. Add it to the `elfloader-basic` application. Signed-off-by: Razvan Deaconescu <[email protected]>
Ignore test output files: * `log.build.*`: the output of build phases * `log.run.*`: the output of run phases Signed-off-by: Razvan Deaconescu <[email protected]>
Update `README.md` to also clone the `app-elfloader` repository into the `repos/apps` directory if absent. Signed-off-by: Maria Pana <[email protected]>
Add `elfloader-net/` directory (with networking support) - `Config.uk`: ELF Loader configuration - `rootfs/`: setup for building Linux ELFs, with simple C HTTP server - `Makefile`: for building the ELF Loader - `Makefile.uk`: empty placeholder file required by build system - `fc.x86_64.json`: Firecracker configuration - `README.md`: instructions Signed-off-by: Razvan Deaconescu <[email protected]>
For each application directory, user `workdir/` as the application working directory. Add the top-level `setup.sh` script to clone repositories in top-level `repos/` directory. Then use the per-application `setup.sh` to set up the `workdir/` directory accordingly. Update per-application `Makefile` and `README.md` files to use `workdir/` and to instruct the use of the `setup.sh` script. Update per-application `.gitignore` file to ignore `workdir/`. Signed-off-by: Razvan Deaconescu <[email protected]>
Use `workdir/build/` instead of `out/` as the output directory for build artifacts. This is cleaner as it stores all repository clones (in the set up phase) and output files (in the build phase) in the `workdir/` directory. Signed-off-by: Razvan Deaconescu <[email protected]>
Move "Clean Up" section after "Run" section. Previously, it was placed right after the "Build" section (and before the "Run" section). This caused a "natural workflow" to use the clean up actions before the run actions, effectively removing the necessary build artifacts. Signed-off-by: Razvan Deaconescu <[email protected]>
Add information about the build, run and test scripts in the `script` and `test` branches. Signed-off-by: Razvan Deaconescu <[email protected]>
Use "Unikraft applications" instead of just "applications", to clearly state the repository is targeted towards Unikraft development. Signed-off-by: Razvan Deaconescu <[email protected]>
Signed-off-by: Razvan Deaconescu <[email protected]>
Add links to instructions to install and configure Docker. Docker is required for certain application build and / or application filesystem builds. Signed-off-by: Razvan Deaconescu <[email protected]>
Instructions in the `README.md` file for the `c-fs` application for AArch64 were, mistakenly, for Firecracker x86_64. Update them to correctly refer the instructions for QEMU AArch64. Signed-off-by: Razvan Deaconescu <[email protected]>
Replace instructions to manually construct the `defconfig` file with instructions to directly download the corresponding `defconfig` file from the GitHub repository, from the `scripts` branch. Signed-off-by: Razvan Deaconescu <[email protected]>
Add instructions to install `bsdcpio`, required for creating initial ramdisk files. On Debian / Ubuntu, this means installing the `libarchive-tools` package. Signed-off-by: Razvan Deaconescu <[email protected]>
Use `apt update` to refresh local package information. This is generally a required step before installing via `apt install`. Signed-off-by: Razvan Deaconescu <[email protected]>
Creating the `/etc/qemu/bridge.conf` file (for QEMU bridged networking) will fail if the `/etc/qemu/` directory does not exist. Add command to create directory if it does not exist. Signed-off-by: Razvan Deaconescu <[email protected]>
Add `g++` and `g++-aarch64-linux-gnu` as install dependencies. They are required for C++ builds. Signed-off-by: Razvan Deaconescu <[email protected]>
Application testing involves using `curl` (for network applications). Add `curl` to package install list. Signed-off-by: Razvan Deaconescu <[email protected]>
Add missing option (`-machine virt`) to ARM64 TLDR run command. Signed-off-by: Razvan Deaconescu <[email protected]>
Use correct URL to download `defconfig` file in TLDR guides, i.e. use a "raw" download URL: `https://raw.githubusercontent.com` Signed-off-by: Razvan Deaconescu <[email protected]>
Add `cpp-http/` directory: - `server.cpp`: HTTP server code - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: source file configuration - `fc.x86_64.json / fc.arm64.json`: Firecracker configuration - `xen.x86_64.cfg / xen.arm64.cfg`: Xen configuration - `README.md`: instructions Signed-off-by: Srinidhi Krishna <[email protected]>
Add `redis/` directory:
- `rootfs/redis.conf`: Redis server configuration file
- `Config.uk`: application configuration
- `Makefile`: for building the application
- `fc.{arm64,x86_64}.json`: Firecracker configuration
- `xen.{arm64,x86_64}.cfg`: Xen configuration
- `README.md`: instructions
- `setup.sh`: set up symlinks
Update the top-level `setup.sh` to clone `lib-redis`.
Signed-off-by: Luca Mazilescu <[email protected]>
Introduce GitHub workflow to allow periodic testing. The workflow does a periodic run of the `test.overall.sh` script (the script is on the `test` branch). Signed-off-by: Rares-Stefan Goidescu <[email protected]>
Signed-off-by: GHEORGHISOR Mario-Alin <[email protected]>
Add python3.10 HTTP-Server support on QEMU, Xen and Firecracker.
Add python3.10/ directory:
- http-server.py: HTTP server implementation
- Config.uk: Unikraft application configuration
- Makefile: build script
- fc.{arm64,x86_64}.json: Firecracker config
- xen.{arm64,x86_64}.cfg: Xen config
- README.md: usage instructions
Signed-off-by: Ionut Mantu <[email protected]>
Add wamr/ directory: - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: empty placeholder file required by build system - `README.md`: instructions - `fc-x86_64-initrd.json`: configuration for runing firecracker - `NOTES.md`: notes on issues or caveats - `setup.sh`: script for configuring libraries Signed-off-by: Dragos Coscodan <[email protected]>
Add bincompat-java-hello/ directory: - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: empty placeholder file required by build system - `README.md`: instructions - `NOTES.md`: notes on issues or caveats - `setup.sh`: script for configuring libraries - `Dockerfile`: required to build the java root filesystem Signed-off-by: Alexandru Raduta <[email protected]>
Add click/ directory: - `Config.uk`: application configuration - `Makefile`: for building the application - `Makefile.uk`: empty placeholder file required by build system - `README.md`: instructions - `setup.sh`: script for configuring libraries - `helloworld.click`: click application file Signed-off-by: Stefan Marasescu <[email protected]>
Add `bincompat-c-hello/` directory: - `rootfs/*`: C Hello program - `fc.x86_64.json`: Firecracker config - `README.md`: usage instructions Signed-off-by: Luca Mazilescu <[email protected]>
Add `scripts/` directory: - `build/kernel.<plat>.<arch>`: scripts for building the base ELF Loader image - `build/rootfs.<arch>`: scripts for building the rootfs - `build/<plat>.<arch>`: scripts that build both the base image and the rootfs - `run/<plat>.<arch>`: scripts for running Unikraft images - `common.sh`: common configuration code for scripts - `README.md`: accompanying document with instructions Signed-off-by: Luca Mazilescu <[email protected]>
6786f65 to
9adbc27
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part of #65