Skip to content

Add option to replace internal libraries with external sources #819

Description

@craciunoiuc

Feature request summary

This feature depends on functionality in the core, but can be discussed in the meantime

Thanks @skuenzer for describing this:

Use case: We have a pre-compiled & binary version of ramfs ukcpio and ukvmem. These libs are also in-tree but we want to replace them with the binary versions.
Because potentially the libname in the path could be the same, we should handover the whole paths
So basically, for the build system the idea is the following (example, we replace ramfs):
make L=$( readlink -f ../path/to/replacing/ramfs ) H=${UK_ROOT}/lib/ramfs
H= (for Hide) works like L=, a colon-separated list

specification: '0.5'
name: example
unikraft:
  version: cloud
  kconfig:
    - CONFIG_LIBPOSIX_SYSINFO=y
    - CONFIG_LIBUKSIGNAL=y
targets:
  - name: kraftcloud-x86_64
    architecture: x86_64
    platform: firecracker
libraries:
  ramfs: # <-- a matching name automatically replaces it?
    source: https://github.com/unikraft-io/lib-superhero-version-of-ramfs-bin
    version: stable
    replaces: ramfs # <-- or should we add another attribute in case the name does not match? could this even happen? background: a lib that replaces something internally in unikraft has to match the name and API?
  ukp-bin:
    source: https://github.com/unikraft-io/lib-ukp-bin
    version: stable

Describe alternatives

No response

Related architectures

None

Related platforms

None

Additional context

No response

Metadata

Metadata

Assignees

Labels

kind/enhancementNew feature or requestpriority/mediumIssue which is important, but KraftKit is usable without it also.

Type

No type

Projects

Status
🧊 Icebox
Status
Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions