Skip to content

feat: add package scripts for Debian and Alpine #1

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
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

edubart
Copy link

@edubart edubart commented Jan 17, 2025

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:

make -C alpine
make -C debian

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 the cdn/apt directory, and Alpine packages in cdn/apk directory. The idea of cdn 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 and debian/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 archive cdn.

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:

make -C alpine test
make -C debian test

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.

@edubart edubart added the enhancement New feature or request label Jan 17, 2025
@edubart edubart self-assigned this Jan 17, 2025
@edubart edubart linked an issue Jan 17, 2025 that may be closed by this pull request
@edubart edubart force-pushed the feature/debian-alpine branch 2 times, most recently from 5f752a8 to ca08870 Compare January 21, 2025 15:32
@edubart edubart requested review from vfusco and tuler January 21, 2025 15:40
@edubart edubart force-pushed the feature/debian-alpine branch from ca08870 to c234d33 Compare January 21, 2025 16:06
@edubart edubart force-pushed the feature/debian-alpine branch from c234d33 to b50d94f Compare January 23, 2025 14:39
tuler

This comment was marked as resolved.

@edubart edubart requested a review from tuler January 28, 2025 19:32
@edubart edubart force-pushed the feature/debian-alpine branch from b6a524a to c4c076b Compare May 28, 2025 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Waiting Review
Development

Successfully merging this pull request may close these issues.

Create cartesi-machine debian source packages
2 participants