canonical / chisel

GNU Affero General Public License v3.0
270 stars 42 forks source link

Chisel can build on top of already chiseled output #25

Closed rebornplusplus closed 2 years ago

rebornplusplus commented 2 years ago

Resolves #10

Chisel records installed slices and checks before installing again

Fix: Symlink overwrite

rebornplusplus commented 2 years ago

First run: Install libc6_libs and libc6_config.

./chisel cut --release ../chisel-releases --root output/ libc6_libs libc6_config
2022/09/08 14:58:21 Processing ../chisel-releases release...
2022/09/08 14:58:21 Selecting slices...
2022/09/08 14:58:21 Fetching ubuntu 22.04 jammy suite details...
...
2022/09/08 14:58:25 Fetching index for ubuntu 22.04 jammy-updates universe component...
2022/09/08 14:58:25 Fetching pool/main/g/glibc/libc6_2.35-0ubuntu3.1_amd64.deb...
2022/09/08 14:58:25 Extracting files from package "libc6"...

Second run: Install openssl_bins and openssl_config over the previous file system. The installed slices should be skipped in installation.

./chisel cut --release ../chisel-releases --root output/ openssl_bins openssl_config
2022/09/08 14:58:37 Processing ../chisel-releases release...
2022/09/08 14:58:37 Selecting slices...
2022/09/08 14:58:37 Slice "libc6_config" is already installed, skipping...
2022/09/08 14:58:37 Slice "libc6_libs" is already installed, skipping...
2022/09/08 14:58:37 Fetching ubuntu 22.04 jammy suite details...
...
2022/09/08 14:58:39 Fetching index for ubuntu 22.04 jammy-updates universe component...
2022/09/08 14:58:39 Fetching pool/main/o/openssl/libssl3_3.0.2-0ubuntu1.6_amd64.deb...
2022/09/08 14:58:39 Fetching pool/main/o/openssl/openssl_3.0.2-0ubuntu1.6_amd64.deb...
2022/09/08 14:58:39 Extracting files from package "libssl3"...
2022/09/08 14:58:39 Extracting files from package "openssl"...
rebornplusplus commented 2 years ago

@woky, Thanks for your suggestions! I modified the source that way and added a simple test. Can you please take a look again?

woky commented 2 years ago

added a simple test

-       selection, err := setup.Select(release, test.slices)
+       selection, err := setup.Select(release, test.slices, &setup.ChiselDB{})

This is very simple test. ;-) I don't think this is going to fly. Try to make a new tests with temporary directory and some existing slices installed.

rebornplusplus commented 2 years ago

Update:

cjdcordeiro commented 2 years ago

@rebornplusplus I think we can close this PR, since the underlying feature will be split into multiple feature requests