You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the design for caching our container root between subsequent builds on the same package. The container root will be reused as long as system.base, system.devel, and the package's dependencies remain the same. This will eliminate most if not all the time needed for fetching and installing dependencies.
To do this, we will need to have three overlays that are mounted and unmounted one after another. Relative paths are relative to /var/cache/solbuild/<profile>/<package>/.
Overlay 1: for ensuring system.base, system.devel, and other packages needed by solbuild to function are at their latest version.
lower: img
upper: base
merged: unionb
other mounts:
eopkg package cache: /var/cache/eopkg/packages
<hash-of-dependencies> is generated inside this overlay after everything is up-to-date.
Overlay 2: for installing the dependencies of the package to build. This overlay is only mounted if the layer doesn't exist already.
lower: img:base
upper: /var/cache/solbuild/<layers>/<hash-of-dependencies>. This is the layer that will be cached and reused.
I'm concerned about file conflicts between different packages. If we install packages one by one, we would need extra measure to make sure file conflicts are reported to us, while if we let eopkg install everything eopkg will handle that.
I used to mention running triggers is also an issue, but I guess we could force run triggers before running ypkg-build, so now my main concern is if packages have file conflicts.
This is the design for caching our container root between subsequent builds on the same package. The container root will be reused as long as
system.base
,system.devel
, and the package's dependencies remain the same. This will eliminate most if not all the time needed for fetching and installing dependencies.To do this, we will need to have three overlays that are mounted and unmounted one after another. Relative paths are relative to
/var/cache/solbuild/<profile>/<package>/
.system.base
,system.devel
, and other packages needed bysolbuild
to function are at their latest version.img
base
unionb
/var/cache/eopkg/packages
<hash-of-dependencies>
is generated inside this overlay after everything is up-to-date.img:base
/var/cache/solbuild/<layers>/<hash-of-dependencies>
. This is the layer that will be cached and reused.uniond
/var/cache/eopkg/packages
img:base:/var/cache/solbuild/<layers>/<hash-of-dependencies>
tmp
union
<hash-of-dependencies>
is generated byypkg-install-deps --dry-run --json
(getsolus/ypkg#57).The text was updated successfully, but these errors were encountered: