Code Monkey home page Code Monkey logo

bext's People

Contributors

bketelsen avatar dependabot[bot] avatar tulilirockz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bext's Issues

complicated packages need more work

I added "go" to a sysext and mounted it

I expected the "go" binary to be available after refreshing, but it wasn't because go is installed in /usr/share/go/bin and I don't think bext knows what to do about that

Plugin architecture

That will make Bext be able to support a lot of ways of building new images!

Stuff like a "script" plugin will allow people to use scripts for building those.

A homebrew plugin, whatever else, really

feat(nix-based): better mounting UX

Its mostly just a usability issue, like mounting requires you to mount each part separately, running bext mount extensions, then bext mount store, then bext mount path. It would be pretty sweet to include a command like bext mount all to mount everything at once.

Pre-Commit requirements

This may help out as linting and making sure the code actually runs before commiting is very helpful :)

feat(nix-based): Rootless usage

We could add a tag for user-only operations, requiring only FUSE support to work. Cache directories can be rewired to be on specific user paths, so that is not an issue, but the mounting requires rootful access, because we use syscall.Mount, and syscall.Unmount to make it work, but we can require the target machite to have fuse-overlayfs and maybe bindfs to completely make the mounting rootless

proposal: Do not depend on systemd-sysext

Since systemd-sysext is just glorified overlayfs, we could not depend on it by using overlayFS to mount everything up on the target system (the best idea would be to have a tag for enabling/disabling systemd-sysext). This would increase compatibility to quite literally any system that has OverlayFS support, even stuff like the BSD family could have support for this

feat(nix-based): Better portability for sysexts

Portability could be increased in this project in both of these cases:

Runtime

We could, instead of mounting /usr/store onto /nix/store, which requires root (currently, see #17), use nix-user-chroot or bubblewrap to wrap all the /usr/extension.d/$EXTENSION/bin symlinks to them and include /usr/store as /nix, making it think /nix/store exists when it doesnt, that would also remove the requirement for root for mounting /nix

Building

We could also build stuff with nix-portable or nix-user-chroot instead of spinning up a docker/podman container so that people may use bext layer build inside a distrobox or something like that

feat: Flakehub entry

This project contains both Bext and BextStatic packages, would be awesome to have them in FlakeHub

cosign binary

add signature to binaries with ublue's cosign key

feat: Sysext Signing

We could do something like we already do with signed containers with [cosign] but with our images! Even if that means just making a tarball with the image inside, it would be great to have proper signing. That would also require BEXT to support that signing and check if it is valid through some program like bext sign or something like that

This is a clone of #6 but worded in a different way, I literally didnt see this issue before, sorry

Intention and purpose

Might want to write some explanations in the README about what the intention and purpose of this repo is to attract more collaborators.

๐Ÿ‘

feat(nix-based): YAML config

Would be sweet since YAML is so easy to edit. Shouldnt be too much of a hassle to implement either, since the "YAMLtoJSON" function exists in the pkg/ directory

feat(nix-based): Bext Check

A command for checking if a provided system extension is valid, and explaining why it isn't if not.

The user would do something like

bext layer check [FILE]

And the command would open up the layer and check out what is right or wrong, like LAYER/usr/lib/extensions.d/LAYER.sysext has the same name as the target layer, or if there is a LAYER/etc directory, for example.

Github metadata

Well, would be sweet to have stuff like CODEOWNERS, ISSUE_TEMPLATE, and everything else :>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.