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

fix(zypp): Reuse the repositories, use libzypp in "chroot" #1329

Merged
merged 1 commit into from
Jun 13, 2024

Conversation

lslezak
Copy link
Contributor

@lslezak lslezak commented Jun 13, 2024

Problem

  • When changing the product from openSUSE Tumleweed to openSUSE MicroOS the Tumbleweed repository is refreshed again
  • The code initializes the libzypp in the Live ISO system, there are some workarounds to avoid reusing the Live ISO repositories

Related cards:

Solution

  • When the changed product uses the same repositories then just reuse them, do not create the repositories again
  • Run libzypp in /run/agama/zypp repository to not mess with the package management from the Live ISO, removed the related workarounds

Notes

  • The reusing is simple all-or-nothing, i.e. the products must use the very same repositories. In the future we could improve it to allow reusing just a subset of the repositories.
  • Maybe it will need some adoption when the system is registered, but as there is no real product to register I'm leaving this for the future.
  • I put the zypp lock to /run/agama/zypp as well, that means now you can run zypper in the Live system while Agama is running, yay! 🤩
  • That workaround with switching Yast::Stage is not needed anymore, it was needed when we run the proposal using the YaST code, it is not needed with the new refactored code.

Testing

  • Tested manually (mvidner: in container, switched products 3 times, without hitting Install)

- When the changed product uses the same repositories then
  just reuse them, avoid downloading the repository again
- Run libzypp in /run/agama/zypp repository to not mess
  with the package management from the Live ISO, removed the
  related workarounds
@coveralls
Copy link

Coverage Status

coverage: 70.758% (-0.02%) from 70.773%
when pulling 8453f58 on zypp_fixes
into bc2c5d7 on master.

# cleanup the previous content (after service restart or crash)
FileUtils.rm_rf(TARGET_DIR)
FileUtils.mkdir_p(TARGET_DIR)
Yast::Pkg.TargetInitialize(TARGET_DIR)
Copy link
Contributor

@mvidner mvidner Jun 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was wondering whether this could break the actual RPM installation, but apparently it's OK as TargetInitialize will be also called with the destination directory later:

60eaee65c80e:/ # grep TargetInit /var/log/YaST2/y2log
2024-06-13 12:31:25 <1> 60eaee65c80e(2007) [Pkg] software/manager.rb:154 Pkg Builtin called: TargetInitialize
2024-06-13 12:33:59 <1> 60eaee65c80e(2007) [Pkg] software/proposal.rb:157 Pkg Builtin called: TargetInitialize
2024-06-13 12:35:06 <1> 60eaee65c80e(2007) [Pkg] software/proposal.rb:157 Pkg Builtin called: TargetInitialize
2024-06-13 12:36:07 <1> 60eaee65c80e(2007) [Pkg] software/proposal.rb:157 Pkg Builtin called: TargetInitialize

This was me selecting a product 3 times, without hitting Install.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, later the target is later moved to /mnt. We can do this only after the installation is started, after the partitioning step.

@lslezak lslezak merged commit 4c093fd into master Jun 13, 2024
6 checks passed
@lslezak lslezak deleted the zypp_fixes branch June 13, 2024 13:27
lslezak added a commit that referenced this pull request Jun 14, 2024
## Solution

- Agama does not load the repositories from the system anymore (#1329)
so we can now add the Tumbleweed and Agama Staging repositories to the
Live ISO.
- That can be useful for testing and debugging if you need to install an
additional package to the Live system or you can upgrade the Agama
packages from the Staging project.

## Testing

- Tested manually, you can install/update the packages in the Live ISO
using `zypper`.
@imobachgs imobachgs mentioned this pull request Jun 27, 2024
imobachgs added a commit that referenced this pull request Jun 27, 2024
Prepare for releasing Agama 9. It includes the following pull requests:

- #1101
- #1202
- #1228
- #1231
- #1236
- #1238
- #1239
- #1240
- #1242
- #1243
- #1244
- #1245
- #1246
- #1247
- #1248
- #1249
- #1250
- #1251
- #1252
- #1253
- #1254
- #1255
- #1256
- #1257
- #1258
- #1259
- #1260
- #1261
- #1264
- #1265
- #1267
- #1268
- #1269
- #1270
- #1271
- #1272
- #1273
- #1274
- #1279
- #1280
- #1284
- #1285
- #1286
- #1287
- #1288
- #1289
- #1290
- #1291
- #1292
- #1293
- #1294
- #1295
- #1296
- #1298
- #1299
- #1300
- #1301
- #1302
- #1303
- #1304
- #1305
- #1306
- #1307
- #1308
- #1309
- #1310
- #1311
- #1312
- #1313
- #1314
- #1315
- #1316
- #1317
- #1318
- #1319
- #1320
- #1321
- #1322
- #1323
- #1324
- #1325
- #1326
- #1328
- #1329
- #1331
- #1332
- #1334
- #1338
- #1340
- #1341
- #1342
- #1343
- #1344
- #1345
- #1348
- #1349
- #1351
- #1352
- #1353
- #1354
- #1355
- #1356
- #1357
- #1358
- #1359
- #1360
- #1361
- #1362
- #1363
- #1365
- #1366
- #1367
- #1368
- #1371
- #1372
- #1374
- #1375
- #1376
- #1379
- #1380
- #1381
- #1383
- #1384
- #1385
- #1386
- #1387
- #1388
- #1389
- #1391
- #1392
- #1394
- #1395
- #1397
- #1398
- #1399
- #1400
- #1403
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants