feat: add package scripts for Debian and Alpine #1
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.
This PR contains hardlinks to
https://edubart.github.io/linux-packages
in many places, where I am personally temporary hosting packages using GitHub pages, the idea is to change this to official cartesi URL once when have official distribution repository.Building
There is no CI workflow set up, you can build all packages locally with:
This will use Docker to build packages for amd64/arm64/riscv64 for both Alpine/Debian without any cross compilaton, this may take hours, please do not use
make -j$(nproc)
to speed up, this is not supported at the moment and may mess the package registry. Once done Debian/Ubuntu packages will be available in thecdn/apt
directory, and Alpine packages incdn/apk
directory. The idea ofcdn
directory is to copy and host it in a HTTPS web server, at the moment I am temporarily hosting in a separate repository using GitHub Pages.The first time you execute make it will automatically generate private signature keys in
alpine/key
anddebian/key
. This keys should be kept private. Debian uses GPG keys, while Alpine uses customized OpenSSL keys.Typing
make
subsequent times will only build packages if its build script is newer than the ones found in package archivecdn
.Testing locally
After all packages are build, assuming
cdn
directory is filled with the package registry, you can test installing all of them locally with:This test will also execute some of the packages to check if it's indeed working, for instance it execute
cartesi-machine
command for amd64/arm64/riscv64 to check if it can boot its guest Linux system.Testing remotely
The README of Alpine/Debian contains instructions on how to use remote repository in both host or guest environments, you can manually follow the instructions in a brand new Docker image shell to check if the remote repository is working.