Skip to content
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

Packaging issues #87

Open
10 tasks done
edubart opened this issue Jan 11, 2025 · 3 comments · May be fixed by #88
Open
10 tasks done

Packaging issues #87

edubart opened this issue Jan 11, 2025 · 3 comments · May be fixed by #88
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@edubart
Copy link
Contributor

edubart commented Jan 11, 2025

While creating a tools package inside an Alpine riscv64 environment I've hit the following issues that increased packaging complexity, which we could simplify:

  • make should just compile all tools (without Docker!)
    1. compile libcmt
    2. compile sys-utils
    3. compile rollup-http tools
  • compiling sys-utils should not require installing libcmt-dev first, if it's already built in the working tree
  • make install should exist and install everything
  • make install-tools (all bins)
  • make install-libcmt (*.so)
  • make install-libcmt-dev (*.h, *.a and pkgconfig)
  • there is the need to set TOOLCHAIN_PREFIX= for all make commands even when in riscv64 environment, this should be removed
  • DESTDIR is not working, probably rename TARGET_DESTDIR to it
  • make install should never strip by default, stripping binaries is a task done by packager builder, so the packager can create debug symbols packages from it
  • add ways to pass extra CFLAGS, CXXFLAGS and LDFLAGS. In this case I may want to package statically linked to libgcc, so my package can have less dependencies leading to smaller rootfs image.
@mpolitzer
Copy link
Collaborator

mpolitzer commented Jan 14, 2025

libcmt supports cross compilation, the issue is that it requires custom linux headers, ones with CMIO available.
They would have to be made available for this to work.

@edubart
Copy link
Contributor Author

edubart commented Jan 14, 2025

They would have to be made available for this to work.

I'm starting to generate the package cartesi-machine-guest-linux-headers which installs /usr/include/linux in a riscv64 environment. Then to build cartesi-machine-guest-tools, its makedepends will include cartesi-machine-guest-linux-headers.

@edubart edubart linked a pull request Jan 14, 2025 that will close this issue
@edubart
Copy link
Contributor Author

edubart commented Jan 14, 2025

I am working on some of these issues on #88

@edubart edubart moved this from Todo to PR Available in Machine Emulator SDK Jan 16, 2025
@edubart edubart added the enhancement New feature or request label Jan 16, 2025
@edubart edubart self-assigned this Jan 16, 2025
@edubart edubart added this to the v0.17.0 milestone Jan 16, 2025
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: PR Available
Development

Successfully merging a pull request may close this issue.

2 participants