Skip to content

cartesi-machine-emulator 0.20.0#7

Open
tuler wants to merge 4 commits intomainfrom
feature/emulator-0.20.0
Open

cartesi-machine-emulator 0.20.0#7
tuler wants to merge 4 commits intomainfrom
feature/emulator-0.20.0

Conversation

@tuler
Copy link
Copy Markdown
Member

@tuler tuler commented Apr 10, 2026

  • Bump cartesi-machine-emulator to v0.20.0, switching dependencies to boost@1.90, lua@5.4, and adding libomp
  • Patch cartesi-machine and cartesi-machine-stored-hash wrapper scripts to use absolute Lua bin path installed by lua@5.4, as it is now a keg-only dependency and as such not installed in the global bin folder.
  • Add new cartesi-machine-guest-tools formula (v0.17.2) and wire it into the cartesi-machine metapackage in place of cartesi-machine-rootfs-image
  • CI: switch test matrix to macos-26 only, so it uses clang 20, and drop old intel macs support
  • CI: remove ubuntu-22 from test matrix
  • CI: pin actions/cache and actions/upload-artifact to commit SHAs for more safety
  • Reorder formula DSL in cartesi-machine-linux-image and cartesi-machine-rootfs-image so url/sha256/license precede the bottle block (auditing rule fix)

Test plan

  • brew test-bot passes on macos-26
  • brew install cartesi-machine pulls in emulator 0.20.0, guest-tools, and linux-image
  • Bottles upload artifact on PR runs

@tuler tuler force-pushed the feature/emulator-0.20.0 branch 3 times, most recently from 2ca1fd0 to 98b3299 Compare April 10, 2026 20:11
@tuler tuler force-pushed the feature/emulator-0.20.0 branch 2 times, most recently from de9d847 to a85c99d Compare April 10, 2026 21:25
@tuler tuler force-pushed the feature/emulator-0.20.0 branch from a85c99d to a365670 Compare April 10, 2026 22:00
Comment thread Formula/cartesi-machine-rootfs-image.rb
end

depends_on "cartesi-machine-emulator"
depends_on "cartesi-machine-guest-tools"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would name it cartesi-machine-guest-tools-rootfs-image because it is not really guest tools.

Copy link
Copy Markdown
Member Author

@tuler tuler Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if we decide that the formula should install more things from the machine-guest-tools, like put the riscv64 guest tools somewhere so developers can use it in builds.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The name cartesi-machine-guest-tools is reserved for the package that installs guest-tools inside riscv64 guests (see cartesi/linux-packages#1), so the naming here is conflicting, because cartesi-machine-guest-tools is exactly the name used in Debian/Ubuntu/Alpine riscv64 to install libcmt, etc.

like put the riscv64 guest tools somewhere so developers can use it in builds.

Then that would be something like cartesi-machine-guest-tools-images, or cartesi-machine-guest-tools-packages or whatever depending on what it provides.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main initial issue was actually the package version, which cannon go backwards.
I don't mind much about the package name, as long as it makes sense.
We could even have a single package named cartesi-machine-images that includes the linux image and the rootfs image, but then what version number we use.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Way back when, when we discussed what to name these packages, we had decided on

cartesi-machine-emulator: the emulator binaries etc
cartesi-machine-rootfs-image: roofs.ext2
cartesi-machine-linux-image: linux.bin
cartesi-machine: meta package that installs all three

cartesi-machine-guest-tools should really only be the source for the guest package that is installed inside rootfs.ext2. It only produces a rootfs.ext2 so it can test stuff in CI, right? The fact we are using the rootfs.ext2 for other purposes is a historical mistake. We should really be getting the rootfs.ext2 from a different repo, the cartesi-machine-rootfs-image repo. Indeed, there is a tag there that we could use, currently at v0.20.0-test1 that I wanted to promote to "real life".

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand better the issue now. The 0.20.0-test1 is a rootfs package produced with manually signed packages produced by @edubart

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the same way Diego did on MacPorts at https://github.com/cartesi/macports-ports/blob/main/ports/emulators/cartesi-machine-rootfs-image/Portfile

That is, use cartesi-machine-rootfs-image with version 0.17.2 pointing to rootfs-tools.ext2 from machine-guest-tools.

This is also the same way currently on linux-packages PR cartesi/linux-packages#1

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can’t do the same way he did, because brew does not allow to go to version 0.17.2.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can’t we all go back to how it was and release a proper machine-rootfs-image repo?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@edubart I already upgraded it to simply create the rootfs.ext2 from a Dockerfile. But we need to fix the guest tools package signature situation.

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.

3 participants