Compare commits
276 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70175cd201 | ||
|
|
da65b3028d | ||
|
|
f4ff379850 | ||
|
|
38c30ad405 | ||
|
|
86e8992fe6 | ||
|
|
c0faa66bb5 | ||
|
|
b02d0b6424 | ||
|
|
ed5a1f7ceb | ||
|
|
6e6533c98e | ||
|
|
c261b95d18 | ||
|
|
cc8e9cd6b4 | ||
|
|
4258bc2afa | ||
|
|
82abcb0bd3 | ||
|
|
13d80a0ad2 | ||
|
|
906a3ce1d4 | ||
|
|
a334a08bcf | ||
|
|
92d19ca1f5 | ||
|
|
a04f9e29da | ||
|
|
810c6d033a | ||
|
|
42cbc0b6c4 | ||
|
|
ac5984c24d | ||
|
|
deebf7affe | ||
|
|
91f1961af2 | ||
|
|
a9caea84df | ||
|
|
2386f55ce5 | ||
|
|
a8d55d4446 | ||
|
|
842451e9a5 | ||
|
|
7b7d68b3b6 | ||
|
|
1630f7708e | ||
|
|
18fdc00f78 | ||
|
|
61569a7725 | ||
|
|
780b18c9e6 | ||
|
|
15bfbafec9 | ||
|
|
f0d8d681c6 | ||
|
|
a378347b0b | ||
|
|
00844989be | ||
|
|
5c01aa0dce | ||
|
|
e9754fb0ce | ||
|
|
102c6879b7 | ||
|
|
86cc761854 | ||
|
|
96b65b4481 | ||
|
|
a23e130354 | ||
|
|
92422bef7e | ||
|
|
0633dcfa38 | ||
|
|
76bd97cd02 | ||
|
|
4dfdb55314 | ||
|
|
4b11965a58 | ||
|
|
ac97176bfa | ||
|
|
4028bf7c0c | ||
|
|
8bd81bad3a | ||
|
|
65a6874566 | ||
|
|
141a8d21db | ||
|
|
629b5cce4d | ||
|
|
ae4af5b13e | ||
|
|
321d4691d6 | ||
|
|
bb9cb1cc9d | ||
|
|
c9fcb14d55 | ||
|
|
09537f4f74 | ||
|
|
17fd6a2e78 |
||
|
|
00bb6fa1b0 | ||
|
|
e284d530a9 |
||
|
|
5bdc0addd1 | ||
|
|
1f24120e9b | ||
|
|
2eeeeac267 | ||
|
|
768a433599 | ||
|
|
50e4e062a7 | ||
|
|
075be51017 | ||
|
|
92fd707d85 | ||
|
|
67dc642a0c | ||
|
|
3619795f08 | ||
|
|
4fba898ec3 | ||
|
|
83b8d31b00 | ||
|
|
4d0605ed73 | ||
|
|
26a36cddda |
||
|
|
fa5998140a | ||
|
|
0adeddb7fa | ||
|
|
3fdf739364 | ||
|
|
e152c16fd8 | ||
|
|
7aefe03f3e | ||
|
|
11fff8073b | ||
|
|
9a7d9572d2 | ||
|
|
cdd5ecff1b | ||
|
|
08fe150373 | ||
|
|
61629195b3 | ||
|
|
f81367e47c | ||
|
|
ea596d2f5c | ||
|
|
5a5fc62b2d | ||
|
|
37abaeaf27 | ||
|
|
707bd879ad | ||
|
|
826d24822e | ||
|
|
a82764003c | ||
|
|
f5d937fa63 | ||
|
|
0985fbecd3 | ||
|
|
26d8b81849 | ||
|
|
de99627b97 | ||
|
|
ebbb3c074e | ||
|
|
d9532707c1 | ||
|
|
a5e1966361 | ||
|
|
1fce4fd175 | ||
|
|
ccc95947b4 | ||
|
|
9f3f141b35 | ||
|
|
96f50f525e | ||
|
|
170d26b8b0 | ||
|
|
b2516ee2a0 |
||
|
|
b233baf707 |
||
|
|
9fbdceec6a | ||
|
|
38a1ce55ec | ||
|
|
388fb7f3c0 |
||
|
|
bcebac2520 | ||
|
|
655138fb58 | ||
|
|
fc9e334fcd | ||
|
|
9b5f17b4d6 | ||
|
|
01d5d601b9 | ||
|
|
37ac4af84c | ||
|
|
29c576a3bd | ||
|
|
1c40849d33 | ||
|
|
78d8d1a538 | ||
|
|
82102b850e | ||
|
|
682afbb400 |
||
|
|
f431b7da21 | ||
|
|
d74ddca529 | ||
|
|
449e0de37f | ||
|
|
1af350ab15 | ||
|
|
3561d33119 | ||
|
|
5e11b73af1 | ||
|
|
4b35cd81c8 | ||
|
|
50754878e5 | ||
|
|
d64f6c07a8 | ||
|
|
cbec57064b | ||
|
|
a273c3bf47 | ||
|
|
f847996140 | ||
|
|
e3c4003164 | ||
|
|
32e02bb100 | ||
|
|
b95c041e20 | ||
|
|
cfcd2b7288 | ||
|
|
1894ca2c6d | ||
|
|
56aa434615 | ||
|
|
6eda49494a | ||
|
|
4b2d8834b3 | ||
|
|
a43e91f494 | ||
|
|
80ac989c26 | ||
|
|
bd4ec4da70 | ||
|
|
fe603ac402 | ||
|
|
9f69a53a88 | ||
|
|
11dbf06034 | ||
|
|
4e5bf6df9d | ||
|
|
953e8b9c39 | ||
|
|
574b343db8 | ||
|
|
19857b475b | ||
|
|
82bbadbd9a | ||
|
|
b816c70df9 | ||
|
|
c6dd86277a | ||
|
|
ab080b3196 | ||
|
|
912ca3b32e | ||
|
|
0710536ffd | ||
|
|
0395f59e60 | ||
|
|
a159c366f0 | ||
|
|
0e96ad581e | ||
|
|
9b78ac12a1 | ||
|
|
67c634a1a6 | ||
|
|
dfe9159fee | ||
|
|
14012cbbe5 | ||
|
|
6bc5e86b65 | ||
|
|
27e0af5b63 | ||
|
|
253aed8d2f | ||
|
|
2a0997f887 | ||
|
|
cf90187dec | ||
|
|
bb83fb29e3 | ||
|
|
ef70d4513b | ||
|
|
c78011faac | ||
|
|
7513b918e2 | ||
|
|
f3d3bfbc33 | ||
|
|
2b5a69e9eb | ||
|
|
4e7ec75fcd | ||
|
|
b6e0384f9d | ||
|
|
39f62bdfaa | ||
|
|
1d546251b8 | ||
|
|
48fb060fe7 | ||
|
|
c49569d794 | ||
|
|
771269f209 | ||
|
|
c7a44b4788 | ||
|
|
4bed036553 | ||
|
|
fd3e0767c7 | ||
|
|
422a25e632 | ||
|
|
79b8c39b82 | ||
|
|
af85401b1f | ||
|
|
ba4edeb425 | ||
|
|
1bd9059843 | ||
|
|
d305fe7015 | ||
|
|
61bee882c8 | ||
|
|
7a0d930f87 | ||
|
|
36312aafff | ||
|
|
d025fb7181 | ||
|
|
f71a319e66 | ||
|
|
169457b7ba | ||
|
|
aada584b4e | ||
|
|
0661830c60 | ||
|
|
7ae819e3b1 | ||
|
|
cd2fd6f61b | ||
|
|
b069ea7f38 | ||
|
|
3842fd8647 | ||
|
|
5a7836f84c | ||
|
|
a32a8182ec | ||
|
|
f6ac2aeef6 | ||
|
|
f6b7836303 | ||
|
|
dff6241c9d | ||
|
|
8b47dc88b7 | ||
|
|
cafd900ec7 | ||
|
|
fcf5b1859b | ||
|
|
92f2aefa94 | ||
|
|
976f15c299 | ||
|
|
3c861f7b3f | ||
|
|
844b8174fa | ||
|
|
0465dfe09b | ||
|
|
11e6b7b683 | ||
|
|
a0990ad716 | ||
|
|
163e05657e | ||
|
|
718f47ce8a | ||
|
|
3931ab536d | ||
|
|
63befd5507 | ||
|
|
2d2d1e42ec | ||
|
|
41fe600989 | ||
|
|
1e3316ab2b | ||
|
|
3f4d543b61 | ||
|
|
d1404dbb26 | ||
|
|
692dbbdb92 | ||
|
|
df673383bb | ||
|
|
b2f3f8a442 | ||
|
|
ce9c06552b | ||
|
|
ad69cf3d48 | ||
|
|
e14f20f5cf | ||
|
|
11331e60f2 | ||
|
|
4ca034f88e | ||
|
|
aa367eedd0 | ||
|
|
96b4f224ce | ||
|
|
3839cb87c1 | ||
|
|
b378903483 | ||
|
|
6cfc8418fd | ||
|
|
2b6ad05860 | ||
|
|
3ad35f3eb8 | ||
|
|
9ee62dbe94 | ||
|
|
4591da2dc4 | ||
|
|
ab19eb4671 | ||
|
|
25ec9892f5 | ||
|
|
379f41be51 | ||
|
|
d819f57243 | ||
|
|
462ee504e4 | ||
|
|
37897686ef | ||
|
|
9199e20cef | ||
|
|
6d4e28d66f | ||
|
|
9a2eb10bce | ||
|
|
c3bb2419f9 | ||
|
|
f9b8368668 | ||
|
|
3d3458be50 | ||
|
|
e41a5cb413 | ||
|
|
5d7c1bc247 | ||
|
|
de8d83b315 | ||
|
|
7bf8403646 | ||
|
|
1512e05c65 | ||
|
|
62f42fa896 | ||
|
|
3a7e42467f | ||
|
|
daa0e57220 | ||
|
|
21fa0dbc75 | ||
|
|
3d3a3bd681 |
||
|
|
047524e803 | ||
|
|
66b3cb339f | ||
|
|
2020e1254f | ||
|
|
39679c31d4 | ||
|
|
ec05198ffb | ||
|
|
8728b37081 | ||
|
|
7d197c9ad9 | ||
|
|
57176b1321 | ||
|
|
31c121535e | ||
|
|
f103e6d4d7 | ||
|
|
2e88368128 | ||
|
|
e65d6c6f17 |
21 changed files with 4608 additions and 455 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
214
.gitignore
vendored
214
.gitignore
vendored
|
|
@ -273,3 +273,217 @@
|
|||
/anaconda-34.22.tar.bz2
|
||||
/anaconda-34.23.tar.bz2
|
||||
/anaconda-34.24.tar.bz2
|
||||
/anaconda-35.1.tar.bz2
|
||||
/anaconda-35.2.tar.bz2
|
||||
/anaconda-35.3.tar.bz2
|
||||
/anaconda-35.4.tar.bz2
|
||||
/anaconda-35.5.tar.bz2
|
||||
/anaconda-35.6.tar.bz2
|
||||
/anaconda-35.7.tar.bz2
|
||||
/anaconda-35.8.tar.bz2
|
||||
/anaconda-35.9.tar.bz2
|
||||
/anaconda-35.10.tar.bz2
|
||||
/anaconda-35.11.tar.bz2
|
||||
/anaconda-35.12.tar.bz2
|
||||
/anaconda-35.13.tar.bz2
|
||||
/anaconda-35.14.tar.bz2
|
||||
/anaconda-35.15.tar.bz2
|
||||
/anaconda-35.16.tar.bz2
|
||||
/anaconda-35.17.tar.bz2
|
||||
/anaconda-35.18.tar.bz2
|
||||
/anaconda-35.19.tar.bz2
|
||||
/anaconda-35.20.tar.bz2
|
||||
/anaconda-35.21.tar.bz2
|
||||
/anaconda-35.22.tar.bz2
|
||||
/anaconda-36.1.tar.bz2
|
||||
/anaconda-36.2.tar.bz2
|
||||
/anaconda-36.3.tar.bz2
|
||||
/anaconda-36.4.tar.bz2
|
||||
/anaconda-36.5.tar.bz2
|
||||
/anaconda-36.6.tar.bz2
|
||||
/anaconda-36.7.tar.bz2
|
||||
/anaconda-36.8.tar.bz2
|
||||
/anaconda-36.9.tar.bz2
|
||||
/anaconda-36.10.tar.bz2
|
||||
/anaconda-36.11.tar.bz2
|
||||
/anaconda-36.12.tar.bz2
|
||||
/anaconda-36.13.tar.bz2
|
||||
/anaconda-36.14.tar.bz2
|
||||
/anaconda-36.15.tar.bz2
|
||||
/anaconda-36.16.tar.bz2
|
||||
/anaconda-37.1.tar.bz2
|
||||
/anaconda-37.2.tar.bz2
|
||||
/anaconda-37.3.tar.bz2
|
||||
/anaconda-37.4.tar.bz2
|
||||
/anaconda-37.5.tar.bz2
|
||||
/anaconda-37.6.tar.bz2
|
||||
/anaconda-37.7.tar.bz2
|
||||
/anaconda-37.8.tar.bz2
|
||||
/anaconda-37.9.tar.bz2
|
||||
/anaconda-37.10.tar.bz2
|
||||
/anaconda-37.11.tar.bz2
|
||||
/anaconda-37.12.tar.bz2
|
||||
/anaconda-38.1.tar.bz2
|
||||
/anaconda-38.2.tar.bz2
|
||||
/anaconda-38.3.tar.bz2
|
||||
/anaconda-38.4.tar.bz2
|
||||
/anaconda-38.5.tar.bz2
|
||||
/anaconda-38.6.tar.bz2
|
||||
/anaconda-38.7.tar.bz2
|
||||
/anaconda-38.8.tar.bz2
|
||||
/anaconda-38.9.tar.bz2
|
||||
/anaconda-38.10.tar.bz2
|
||||
/anaconda-38.11.tar.bz2
|
||||
/anaconda-38.12.tar.bz2
|
||||
/anaconda-38.13.tar.bz2
|
||||
/anaconda-38.14.tar.bz2
|
||||
/anaconda-38.15.tar.bz2
|
||||
/anaconda-38.17.tar.bz2
|
||||
/anaconda-38.18.tar.bz2
|
||||
/anaconda-38.19.tar.bz2
|
||||
/anaconda-38.20.tar.bz2
|
||||
/anaconda-38.21.tar.bz2
|
||||
/anaconda-38.22.tar.bz2
|
||||
/anaconda-38.23.tar.bz2
|
||||
/anaconda-39.1.tar.bz2
|
||||
/anaconda-39.2.tar.bz2
|
||||
/anaconda-39.3.tar.bz2
|
||||
/anaconda-39.4.tar.bz2
|
||||
/anaconda-39.5.tar.bz2
|
||||
/anaconda-39.6.tar.bz2
|
||||
/anaconda-39.7.tar.bz2
|
||||
/anaconda-39.8.tar.bz2
|
||||
/anaconda-39.9.tar.bz2
|
||||
/anaconda-39.10.tar.bz2
|
||||
/anaconda-39.11.tar.bz2
|
||||
/anaconda-39.12.tar.bz2
|
||||
/anaconda-39.13.tar.bz2
|
||||
/anaconda-39.14.tar.bz2
|
||||
/anaconda-39.15.tar.bz2
|
||||
/anaconda-39.16.tar.bz2
|
||||
/anaconda-39.17.tar.bz2
|
||||
/anaconda-39.18.tar.bz2
|
||||
/anaconda-39.19.tar.bz2
|
||||
/anaconda-39.20.tar.bz2
|
||||
/anaconda-39.21.tar.bz2
|
||||
/anaconda-39.22.tar.bz2
|
||||
/anaconda-39.23.tar.bz2
|
||||
/anaconda-39.24.tar.bz2
|
||||
/anaconda-39.25.tar.bz2
|
||||
/anaconda-39.26.tar.bz2
|
||||
/anaconda-39.27.tar.bz2
|
||||
/anaconda-39.28.tar.bz2
|
||||
/anaconda-39.29.tar.bz2
|
||||
/anaconda-39.30.tar.bz2
|
||||
/anaconda-39.31.tar.bz2
|
||||
/anaconda-39.32.tar.bz2
|
||||
/anaconda-39.33.tar.bz2
|
||||
/anaconda-40.1.tar.bz2
|
||||
/anaconda-40.2.tar.bz2
|
||||
/anaconda-40.3.tar.bz2
|
||||
/anaconda-40.4.tar.bz2
|
||||
/anaconda-40.5.tar.bz2
|
||||
/anaconda-40.6.tar.bz2
|
||||
/anaconda-40.7.tar.bz2
|
||||
/anaconda-40.8.tar.bz2
|
||||
/anaconda-40.9.tar.bz2
|
||||
/anaconda-40.10.tar.bz2
|
||||
/anaconda-40.11.tar.bz2
|
||||
/anaconda-40.12.tar.bz2
|
||||
/anaconda-40.13.tar.bz2
|
||||
/anaconda-40.15.tar.bz2
|
||||
/anaconda-40.17.tar.bz2
|
||||
/anaconda-40.18.tar.bz2
|
||||
/anaconda-40.20.tar.bz2
|
||||
/anaconda-40.21.tar.bz2
|
||||
/anaconda-41.1.tar.bz2
|
||||
/anaconda-41.2.tar.bz2
|
||||
/anaconda-41.6.tar.bz2
|
||||
/anaconda-41.7.tar.bz2
|
||||
/anaconda-41.9.tar.bz2
|
||||
/anaconda-41.13.tar.bz2
|
||||
/anaconda-41.14.tar.bz2
|
||||
/anaconda-41.15.tar.bz2
|
||||
/anaconda-41.17.tar.bz2
|
||||
/anaconda-41.18.tar.bz2
|
||||
/anaconda-41.19.tar.bz2
|
||||
/anaconda-41.20.tar.bz2
|
||||
/anaconda-41.22.tar.bz2
|
||||
/anaconda-41.23.tar.bz2
|
||||
/anaconda-41.24.tar.bz2
|
||||
/anaconda-41.25.tar.bz2
|
||||
/anaconda-41.26.tar.bz2
|
||||
/anaconda-41.27.tar.bz2
|
||||
/anaconda-41.28.tar.bz2
|
||||
/anaconda-41.29.tar.bz2
|
||||
/anaconda-41.30.tar.bz2
|
||||
/anaconda-41.31.tar.bz2
|
||||
/anaconda-41.32.tar.bz2
|
||||
/anaconda-42.1.tar.bz2
|
||||
/anaconda-42.2.tar.bz2
|
||||
/anaconda-42.3.tar.bz2
|
||||
/anaconda-42.4.tar.bz2
|
||||
/anaconda-42.5.tar.bz2
|
||||
/anaconda-42.6.tar.bz2
|
||||
/anaconda-42.7.tar.bz2
|
||||
/anaconda-42.8.tar.bz2
|
||||
/anaconda-42.9.tar.bz2
|
||||
/anaconda-42.10.tar.bz2
|
||||
/anaconda-42.11.tar.bz2
|
||||
/anaconda-42.12.tar.bz2
|
||||
/anaconda-42.13.tar.bz2
|
||||
/anaconda-42.14.tar.bz2
|
||||
/anaconda-42.15.tar.bz2
|
||||
/anaconda-42.16.tar.bz2
|
||||
/anaconda-42.18.tar.bz2
|
||||
/anaconda-42.20.tar.bz2
|
||||
/anaconda-42.21.tar.bz2
|
||||
/anaconda-42.23.tar.bz2
|
||||
/anaconda-42.24.tar.bz2
|
||||
/anaconda-42.26.tar.bz2
|
||||
/anaconda-43.1.tar.bz2
|
||||
/anaconda-43.5.tar.bz2
|
||||
/anaconda-43.6.tar.bz2
|
||||
/anaconda-43.7.tar.bz2
|
||||
/anaconda-43.8.tar.bz2
|
||||
/anaconda-43.9.tar.bz2
|
||||
/anaconda-43.10.tar.bz2
|
||||
/anaconda-43.11.tar.bz2
|
||||
/anaconda-43.12.tar.bz2
|
||||
/anaconda-43.13.tar.bz2
|
||||
/anaconda-43.14.tar.bz2
|
||||
/anaconda-43.15.tar.bz2
|
||||
/anaconda-43.16.tar.bz2
|
||||
/anaconda-43.17.tar.bz2
|
||||
/anaconda-43.18.tar.bz2
|
||||
/anaconda-43.20.tar.bz2
|
||||
/anaconda-43.21.tar.bz2
|
||||
/anaconda-43.22.tar.bz2
|
||||
/anaconda-43.24.tar.bz2
|
||||
/anaconda-43.25.tar.bz2
|
||||
/anaconda-43.28.tar.bz2
|
||||
/anaconda-43.29.tar.bz2
|
||||
/anaconda-43.30.tar.bz2
|
||||
/anaconda-43.31.tar.bz2
|
||||
/anaconda-43.32.tar.bz2
|
||||
/anaconda-43.33.tar.bz2
|
||||
/anaconda-43.34.tar.bz2
|
||||
/anaconda-43.35.tar.bz2
|
||||
/anaconda-43.36.tar.bz2
|
||||
/anaconda-43.37.tar.bz2
|
||||
/anaconda-43.38.tar.bz2
|
||||
/anaconda-43.39.tar.bz2
|
||||
/anaconda-43.40.tar.bz2
|
||||
/anaconda-43.41.tar.bz2
|
||||
/anaconda-43.44.tar.bz2
|
||||
/anaconda-43.46.tar.bz2
|
||||
/anaconda-44.1.tar.bz2
|
||||
/anaconda-44.2.tar.bz2
|
||||
/anaconda-44.4.tar.bz2
|
||||
/anaconda-44.5.tar.bz2
|
||||
/anaconda-44.6.tar.bz2
|
||||
/anaconda-44.7.tar.bz2
|
||||
/anaconda-44.8.tar.bz2
|
||||
/anaconda-44.9.tar.bz2
|
||||
/anaconda-44.10.tar.bz2
|
||||
/anaconda-44.11.tar.bz2
|
||||
|
|
|
|||
115
.packit.yml
Normal file
115
.packit.yml
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# ======================================
|
||||
# WARNING!
|
||||
# THIS FILE IS GENERATED FROM A TEMPLATE
|
||||
# DO NOT EDIT THIS FILE MANUALLY!
|
||||
# ======================================
|
||||
# The template is located in: .packit.yml.j2
|
||||
|
||||
specfile_path: anaconda.spec
|
||||
upstream_package_name: anaconda
|
||||
upstream_tag_template: anaconda-{version}
|
||||
copy_upstream_release_description: true
|
||||
downstream_package_name: anaconda
|
||||
|
||||
files_to_sync:
|
||||
- rpmlint.toml
|
||||
- .packit.yml
|
||||
|
||||
srpm_build_deps:
|
||||
- automake
|
||||
- autoconf
|
||||
- autogen
|
||||
- glib2-devel
|
||||
- gettext-devel
|
||||
- python3-polib
|
||||
- gobject-introspection-devel
|
||||
- glade-devel
|
||||
- libxklavier-devel
|
||||
- libarchive-devel
|
||||
- rpm-devel
|
||||
- nss_wrapper
|
||||
- nodejs-npm
|
||||
|
||||
packages:
|
||||
anaconda-fedora:
|
||||
specfile_path: anaconda.spec
|
||||
anaconda-centos:
|
||||
specfile_path: anaconda.spec
|
||||
pkg_tool: centpkg
|
||||
|
||||
actions:
|
||||
post-upstream-clone:
|
||||
- ./autogen.sh
|
||||
- ./configure
|
||||
create-archive:
|
||||
- "make release"
|
||||
- 'bash -c "ls -1 anaconda-*.tar.bz2"'
|
||||
|
||||
jobs:
|
||||
# Propose downstream (Fedora)
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
packages: [anaconda-fedora]
|
||||
dist_git_branches:
|
||||
- main
|
||||
|
||||
# Tests on PR (Fedora)
|
||||
- job: tests
|
||||
trigger: pull_request
|
||||
packages: [anaconda-fedora]
|
||||
targets:
|
||||
- fedora-rawhide
|
||||
|
||||
# COPR builds on PR (Fedora)
|
||||
- job: copr_build
|
||||
trigger: pull_request
|
||||
packages: [anaconda-fedora]
|
||||
targets:
|
||||
- fedora-rawhide
|
||||
- fedora-eln
|
||||
|
||||
# COPR builds on commit (Fedora): single job with multiple targets (add ELN on main)
|
||||
- job: copr_build
|
||||
trigger: commit
|
||||
packages: [anaconda-fedora]
|
||||
targets:
|
||||
- fedora-rawhide
|
||||
- fedora-eln
|
||||
branch: main
|
||||
owner: "@rhinstaller"
|
||||
project: Anaconda
|
||||
preserve_project: True
|
||||
|
||||
- job: koji_build
|
||||
trigger: commit
|
||||
packages: [anaconda-fedora]
|
||||
sidetag_group: anaconda-releases
|
||||
dist_git_branches:
|
||||
- fedora-development
|
||||
allowed_committers:
|
||||
- m4rtink
|
||||
- kkoukiou
|
||||
- rvykydal
|
||||
- jkonecny
|
||||
- packit
|
||||
allowed_pr_authors:
|
||||
- m4rtink
|
||||
- kkoukiou
|
||||
- rvykydal
|
||||
- jkonecny
|
||||
- packit
|
||||
|
||||
- job: bodhi_update
|
||||
trigger: koji_build
|
||||
packages: [anaconda-fedora]
|
||||
sidetag_group: anaconda-releases
|
||||
dependencies:
|
||||
- anaconda-webui
|
||||
dist_git_branches:
|
||||
- fedora-development
|
||||
allowed_builders:
|
||||
- m4rtink
|
||||
- kkoukiou
|
||||
- rvykydal
|
||||
- jkonecny
|
||||
- packit
|
||||
31
0001-Don-t-pass-no-x11-to-gnome-kiosk.patch
Normal file
31
0001-Don-t-pass-no-x11-to-gnome-kiosk.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
From b4b09f54b39b288f326b4734c13d27aa710e69d3 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Mon, 2 Jun 2025 12:28:49 -0700
|
||||
Subject: [PATCH] Don't pass --no-x11 to gnome-kiosk
|
||||
|
||||
This is also gone when mutter is built without X11 support, as
|
||||
is now the case in Rawhide and ELN, and probably soon in EL 10.
|
||||
Don't backport this to earlier branches.
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
pyanaconda/display.py | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pyanaconda/display.py b/pyanaconda/display.py
|
||||
index 25a0e15142..20adcf58ff 100644
|
||||
--- a/pyanaconda/display.py
|
||||
+++ b/pyanaconda/display.py
|
||||
@@ -226,8 +226,7 @@ def do_startup_wl_actions(timeout, headless=False, headless_resolution=None):
|
||||
argv.extend(["--vt", "6"])
|
||||
|
||||
# add the generic GNOME Kiosk invocation
|
||||
- argv.extend(["gnome-kiosk", "--wayland", "--no-x11",
|
||||
- "--wayland-display", constants.WAYLAND_SOCKET_NAME])
|
||||
+ argv.extend(["gnome-kiosk", "--wayland", "--wayland-display", constants.WAYLAND_SOCKET_NAME])
|
||||
|
||||
# remote access needs gnome-kiosk to start in headless mode
|
||||
if headless:
|
||||
--
|
||||
2.49.0
|
||||
|
||||
66
0001-RebootData-don-t-allow-action-to-be-None.patch
Normal file
66
0001-RebootData-don-t-allow-action-to-be-None.patch
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
From c7dce0445423e7386fdc6998a6a8de50a7a39bca Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Thu, 9 Oct 2025 10:07:01 -0700
|
||||
Subject: [PATCH] RebootData: don't allow action to be None
|
||||
|
||||
Silverblue installs (and probably others where the kickstart data
|
||||
does not explicitly specify a reboot action) crash, because
|
||||
the `RebootData` instance's `action` winds up as `None`, since
|
||||
this is the default value of `self.action` in
|
||||
`pykickstart.commands.reboot.F23_Reboot`. Trying to translate
|
||||
this to a DBus structure with `RebootData.to_structure` fails,
|
||||
because DBus has no concept of `None`.
|
||||
|
||||
To avoid this, let's have the setter convert `None` to `-1`, the
|
||||
same value we use as a default when initializing the instance.
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
pyanaconda/modules/common/structures/reboot.py | 5 ++++-
|
||||
.../modules/runtime/test_module_runtime.py | 10 ++++++++++
|
||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pyanaconda/modules/common/structures/reboot.py b/pyanaconda/modules/common/structures/reboot.py
|
||||
index fd2673b169..cadbfbd01f 100644
|
||||
--- a/pyanaconda/modules/common/structures/reboot.py
|
||||
+++ b/pyanaconda/modules/common/structures/reboot.py
|
||||
@@ -46,7 +46,10 @@ class RebootData(DBusData):
|
||||
return self._action
|
||||
|
||||
@action.setter
|
||||
- def action(self, value: Int):
|
||||
+ def action(self, value: Int | None):
|
||||
+ if value is None:
|
||||
+ # dbus cannot handle None
|
||||
+ value = -1
|
||||
self._action = value
|
||||
|
||||
@property
|
||||
diff --git a/tests/unit_tests/pyanaconda_tests/modules/runtime/test_module_runtime.py b/tests/unit_tests/pyanaconda_tests/modules/runtime/test_module_runtime.py
|
||||
index 22286e59c1..83d3a123ef 100644
|
||||
--- a/tests/unit_tests/pyanaconda_tests/modules/runtime/test_module_runtime.py
|
||||
+++ b/tests/unit_tests/pyanaconda_tests/modules/runtime/test_module_runtime.py
|
||||
@@ -18,6 +18,7 @@
|
||||
import unittest
|
||||
from textwrap import dedent
|
||||
|
||||
+from pyanaconda.modules.common.structures.reboot import RebootData
|
||||
from pyanaconda.modules.runtime.runtime import RuntimeService
|
||||
from pyanaconda.modules.runtime.runtime_interface import RuntimeInterface
|
||||
from tests.unit_tests.pyanaconda_tests import check_kickstart_interface
|
||||
@@ -166,3 +167,12 @@ class RuntimeInterfaceTestCase(unittest.TestCase):
|
||||
ks_in = "halt --eject\n"
|
||||
ks_out = "# Halt after installation\nhalt --eject\n"
|
||||
self._test_kickstart(ks_in, ks_out)
|
||||
+
|
||||
+ def test_process_kickstart_with_no_payload(self):
|
||||
+ """Test all values are ints when reading empty kickstart."""
|
||||
+ self.interface.ReadKickstart("")
|
||||
+ assert isinstance(self.module.reboot.action, int)
|
||||
+ assert isinstance(self.module.reboot.eject, int)
|
||||
+ assert isinstance(self.module.reboot.kexec, int)
|
||||
+ # and check we can to_structure it
|
||||
+ RebootData.to_structure(self.module.reboot)
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,243 +0,0 @@
|
|||
From a9d2581448ddb4c9cb1904dca06512aa79145f80 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Konecny <jkonecny@redhat.com>
|
||||
Date: Mon, 8 Feb 2021 11:26:06 +0100
|
||||
Subject: [PATCH 1/3] Revert "Remove support for boot arguments without 'inst.'
|
||||
prefix from Dracut (#1912502)" (#1907566)
|
||||
|
||||
Allow to use Anaconda kernel args in Dracut without inst. prefix to not break
|
||||
beaker. Beaker needs more time for adaptation so avoid to break it for RHEL-9.
|
||||
|
||||
This reverts commit a45405de99a42e5af047f04b78d168b6d41fa513.
|
||||
Related: rhbz#1907566
|
||||
---
|
||||
dracut/anaconda-diskroot | 2 +-
|
||||
dracut/anaconda-ks-sendheaders.sh | 4 +--
|
||||
dracut/fetch-kickstart-disk | 2 +-
|
||||
dracut/kickstart-genrules.sh | 2 +-
|
||||
dracut/parse-anaconda-dd.sh | 2 +-
|
||||
dracut/parse-anaconda-kickstart.sh | 6 ++---
|
||||
dracut/parse-anaconda-net.sh | 3 ---
|
||||
dracut/parse-anaconda-options.sh | 39 ++++++++++++++----------------
|
||||
dracut/parse-anaconda-repo.sh | 6 ++---
|
||||
9 files changed, 30 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/dracut/anaconda-diskroot b/dracut/anaconda-diskroot
|
||||
index 274849fdb3..2797e67625 100755
|
||||
--- a/dracut/anaconda-diskroot
|
||||
+++ b/dracut/anaconda-diskroot
|
||||
@@ -39,7 +39,7 @@ run_checkisomd5() {
|
||||
|
||||
dev="$1"
|
||||
path="$2" # optional, could be empty
|
||||
-kickstart="$(getarg inst.ks=)"
|
||||
+kickstart="$(getarg ks= inst.ks=)"
|
||||
|
||||
# Log the device that triggered this job.
|
||||
debug_msg "Trying to find a root image on the device $dev."
|
||||
diff --git a/dracut/anaconda-ks-sendheaders.sh b/dracut/anaconda-ks-sendheaders.sh
|
||||
index a479a50667..7bc97393b8 100755
|
||||
--- a/dracut/anaconda-ks-sendheaders.sh
|
||||
+++ b/dracut/anaconda-ks-sendheaders.sh
|
||||
@@ -5,7 +5,7 @@
|
||||
command -v set_http_header >/dev/null || . /lib/url-lib.sh
|
||||
|
||||
# inst.ks.sendmac: send MAC addresses in HTTP headers
|
||||
-if getargbool 0 inst.ks.sendmac; then
|
||||
+if getargbool 0 kssendmac inst.ks.sendmac; then
|
||||
ifnum=0
|
||||
for ifname in /sys/class/net/*; do
|
||||
[ -e "$ifname/address" ] || continue
|
||||
@@ -21,7 +21,7 @@ if getargbool 0 inst.ks.sendmac; then
|
||||
fi
|
||||
|
||||
# inst.ks.sendsn: send system serial number in HTTP headers
|
||||
-if getargbool 0 inst.ks.sendsn; then
|
||||
+if getargbool 0 kssendsn inst.ks.sendsn; then
|
||||
system_serial=$(cat /sys/class/dmi/id/product_serial 2>/dev/null)
|
||||
if [ -z "$system_serial" ]; then
|
||||
warn "inst.ks.sendsn: can't find system serial number"
|
||||
diff --git a/dracut/fetch-kickstart-disk b/dracut/fetch-kickstart-disk
|
||||
index b1ee9f826c..7eb769ea5c 100755
|
||||
--- a/dracut/fetch-kickstart-disk
|
||||
+++ b/dracut/fetch-kickstart-disk
|
||||
@@ -6,7 +6,7 @@ command -v getarg >/dev/null || . /lib/dracut-lib.sh
|
||||
|
||||
dev="$1"
|
||||
path="${2:-/ks.cfg}"
|
||||
-kickstart="$(getarg inst.ks=)"
|
||||
+kickstart="$(getarg ks= inst.ks=)"
|
||||
|
||||
[ -e /tmp/ks.cfg.done ] && exit 1
|
||||
[ -b "$dev" ] || exit 1
|
||||
diff --git a/dracut/kickstart-genrules.sh b/dracut/kickstart-genrules.sh
|
||||
index 84277890dd..8e1ba22643 100755
|
||||
--- a/dracut/kickstart-genrules.sh
|
||||
+++ b/dracut/kickstart-genrules.sh
|
||||
@@ -28,7 +28,7 @@ case "${kickstart%%:*}" in
|
||||
wait_for_kickstart
|
||||
;;
|
||||
"")
|
||||
- if [ -z "$kickstart" -a -z "$(getarg inst.ks=)" ]; then
|
||||
+ if [ -z "$kickstart" -a -z "$(getarg ks= inst.ks=)" ]; then
|
||||
when_diskdev_appears $(disk_to_dev_path LABEL=OEMDRV) \
|
||||
fetch-kickstart-disk \$env{DEVNAME} "/ks.cfg"
|
||||
fi
|
||||
diff --git a/dracut/parse-anaconda-dd.sh b/dracut/parse-anaconda-dd.sh
|
||||
index 8eeceb9a49..3633d29282 100755
|
||||
--- a/dracut/parse-anaconda-dd.sh
|
||||
+++ b/dracut/parse-anaconda-dd.sh
|
||||
@@ -11,7 +11,7 @@
|
||||
rm -f /tmp/dd_interactive /tmp/dd_net /tmp/dd_disk /tmp/dd_todo
|
||||
|
||||
# parse any dd/inst.dd args found
|
||||
-for dd in $(getargs inst.dd=); do
|
||||
+for dd in $(getargs dd= inst.dd=); do
|
||||
case "$dd" in
|
||||
# plain 'dd'/'inst.dd': Engage interactive mode!
|
||||
dd|inst.dd) echo menu > /tmp/dd_interactive ;;
|
||||
diff --git a/dracut/parse-anaconda-kickstart.sh b/dracut/parse-anaconda-kickstart.sh
|
||||
index 83b319dc7d..1f4f190db9 100755
|
||||
--- a/dracut/parse-anaconda-kickstart.sh
|
||||
+++ b/dracut/parse-anaconda-kickstart.sh
|
||||
@@ -5,9 +5,9 @@
|
||||
[ -f /tmp/ks.cfg.done ] && return
|
||||
|
||||
# inst.ks: provide a "URI" for the kickstart file
|
||||
-kickstart="$(getarg inst.ks=)"
|
||||
+kickstart="$(getarg ks= inst.ks=)"
|
||||
if [ -z "$kickstart" ]; then
|
||||
- getargbool 0 inst.ks && kickstart='nfs:auto'
|
||||
+ getargbool 0 ks inst.ks && kickstart='nfs:auto'
|
||||
fi
|
||||
# no root? the kickstart will probably tell us what our root device is.
|
||||
[ "$kickstart" ] && [ -z "$root" ] && root="anaconda-kickstart"
|
||||
@@ -23,7 +23,7 @@ case "${kickstart%%:*}" in
|
||||
set_neednet
|
||||
;;
|
||||
urls) # multiple network kickstarts?
|
||||
- locations="$(getargs inst.ks=)"
|
||||
+ locations="$(getargs ks= inst.ks=)"
|
||||
get_urls "$locations" >/tmp/ks_urls
|
||||
set_neednet
|
||||
;;
|
||||
diff --git a/dracut/parse-anaconda-net.sh b/dracut/parse-anaconda-net.sh
|
||||
index f09ec8d098..5518546e5b 100755
|
||||
--- a/dracut/parse-anaconda-net.sh
|
||||
+++ b/dracut/parse-anaconda-net.sh
|
||||
@@ -16,9 +16,6 @@ mac_to_bootif() {
|
||||
|
||||
# handle ksdevice (tell us which device to use for ip= stuff later)
|
||||
export ksdevice=""
|
||||
-# TODO: Remove support for ksdevice. It's deprecated a long time already
|
||||
-# this should be inst.ksdevice however, this is deprecated a long time so we don't have
|
||||
-# any inst.ksdevice. Let's just ignore this for now.
|
||||
ksdev_val=$(getarg ksdevice=)
|
||||
if [ -n "$ksdev_val" ]; then
|
||||
case "$ksdev_val" in
|
||||
diff --git a/dracut/parse-anaconda-options.sh b/dracut/parse-anaconda-options.sh
|
||||
index debe8ac0cb..c2735b0e19 100755
|
||||
--- a/dracut/parse-anaconda-options.sh
|
||||
+++ b/dracut/parse-anaconda-options.sh
|
||||
@@ -58,12 +58,6 @@ check_removed_arg() {
|
||||
fi
|
||||
}
|
||||
|
||||
-check_removed_no_inst_arg() {
|
||||
- local removed_arg="$1" new_arg="$2"
|
||||
- check_removed_arg "$removed_arg" "All usage of Anaconda boot arguments without 'inst.' prefix \
|
||||
-was removed. Please use $new_arg instead."
|
||||
-}
|
||||
-
|
||||
check_depr_args "blacklist=" "inst.blacklist=%s"
|
||||
check_depr_arg "nofirewire" "inst.blacklist=firewire_ohci"
|
||||
|
||||
@@ -83,32 +77,35 @@ check_removed_arg askmethod "Use an appropriate 'inst.repo=' argument instead."
|
||||
check_removed_arg asknetwork "Use an appropriate 'ip=' argument instead."
|
||||
|
||||
# lang & keymap
|
||||
-check_removed_no_inst_arg "lang" "inst.lang"
|
||||
-check_removed_no_inst_arg "keymap" "inst.keymap"
|
||||
+warn_renamed_arg "lang" "inst.lang"
|
||||
+warn_renamed_arg "keymap" "inst.keymap"
|
||||
+
|
||||
+# debug
|
||||
+warn_renamed_arg "debug" "inst.debug"
|
||||
|
||||
# repo
|
||||
check_depr_arg "method=" "repo=%s"
|
||||
-check_removed_no_inst_arg "repo" "inst.repo"
|
||||
+warn_renamed_arg "repo" "inst.repo"
|
||||
|
||||
# stage2
|
||||
-check_removed_no_inst_arg "stage2" "inst.stage2"
|
||||
+warn_renamed_arg "stage2" "inst.stage2"
|
||||
|
||||
# kickstart
|
||||
-check_removed_no_inst_arg "ks" "inst.ks"
|
||||
-check_removed_no_inst_arg "ksdevice" "inst.ks.device"
|
||||
-check_removed_no_inst_arg "kssendmac" "inst.ks.sendmac"
|
||||
-check_removed_no_inst_arg "kssendsn" "inst.ks.sendsn"
|
||||
+warn_renamed_arg "ks" "inst.ks"
|
||||
+warn_renamed_arg "ksdevice" "inst.ks.device"
|
||||
+warn_renamed_arg "kssendmac" "inst.ks.sendmac"
|
||||
+warn_renamed_arg "kssendsn" "inst.ks.sendsn"
|
||||
|
||||
# Ignore self-signed SSL certs
|
||||
-check_removed_no_inst_arg "noverifyssl" "inst.noverifyssl"
|
||||
-if getargbool 0 inst.noverifyssl; then
|
||||
+warn_renamed_arg "noverifyssl" "inst.noverifyssl"
|
||||
+if getargbool 0 noverifyssl inst.noverifyssl; then
|
||||
# Tell dracut to use curl --insecure
|
||||
echo "rd.noverifyssl" >> /etc/cmdline.d/75-anaconda-options.conf
|
||||
fi
|
||||
|
||||
# updates
|
||||
-check_removed_no_inst_arg "updates" "inst.updates"
|
||||
-if updates=$(getarg inst.updates); then
|
||||
+warn_renamed_arg "updates=" "inst.updates"
|
||||
+if updates=$(getarg updates inst.updates); then
|
||||
if [ -n "$updates" ]; then
|
||||
export anac_updates=$updates
|
||||
case $updates in
|
||||
@@ -122,11 +119,11 @@ if updates=$(getarg inst.updates); then
|
||||
fi
|
||||
|
||||
# for vnc bring network up in initramfs so that cmdline configuration is used
|
||||
-check_removed_no_inst_arg "vnc" "inst.vnc"
|
||||
-getargbool 0 inst.vnc && warn "anaconda requiring network for vnc" && set_neednet
|
||||
+warn_renamed_arg "vnc" "inst.vnc"
|
||||
+getargbool 0 vnc inst.vnc && warn "anaconda requiring network for vnc" && set_neednet
|
||||
|
||||
# Driver Update Disk
|
||||
-check_removed_no_inst_arg "dd" "inst.dd"
|
||||
+warn_renamed_arg "dd" "inst.dd"
|
||||
|
||||
# re-read the commandline args
|
||||
unset CMDLINE
|
||||
diff --git a/dracut/parse-anaconda-repo.sh b/dracut/parse-anaconda-repo.sh
|
||||
index fdc937a95a..a1f96b3d98 100755
|
||||
--- a/dracut/parse-anaconda-repo.sh
|
||||
+++ b/dracut/parse-anaconda-repo.sh
|
||||
@@ -4,8 +4,8 @@
|
||||
# If there's a root= arg, we'll just use that
|
||||
getarg root= >/dev/null && return
|
||||
|
||||
-repo="$(getarg inst.repo=)"
|
||||
-stage2="$(getarg inst.stage2=)"
|
||||
+repo="$(getarg repo= inst.repo=)"
|
||||
+stage2="$(getarg stage2= inst.stage2=)"
|
||||
|
||||
arg="repo"
|
||||
# default to using repo, but if we have stage2=, use that
|
||||
@@ -26,7 +26,7 @@ if [ -n "$repo" ]; then
|
||||
;;
|
||||
urls)
|
||||
root="anaconda-net:urls"
|
||||
- locations="$(getargs inst.stage2=)"
|
||||
+ locations="$(getargs stage2= inst.stage2=)"
|
||||
get_urls "$locations" >/tmp/stage2_urls
|
||||
set_neednet
|
||||
;;
|
||||
--
|
||||
2.29.2
|
||||
|
||||
139
0001-pyanaconda-localization-Indicate-ASCII-support-in-ge.patch
Normal file
139
0001-pyanaconda-localization-Indicate-ASCII-support-in-ge.patch
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
From c6118f65fe3583e1c15c383a8a9c6f5c1989fb22 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Thu, 9 Oct 2025 16:51:15 -0700
|
||||
Subject: [PATCH] pyanaconda: localization: Indicate ASCII support in
|
||||
get_keyboard_layouts
|
||||
|
||||
It is useful to know whether a given keyboard layout supports
|
||||
ASCII input or not. Immediately, we want to use this in the
|
||||
webUI keyboard logic, but it may be useful elsewhere too in
|
||||
future, e.g. to warn the user if they use the Keyboard spoke
|
||||
to create a configuration with no layout capable of ASCII input.
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
pyanaconda/localization.py | 11 +++++++++
|
||||
.../common/structures/keyboard_layout.py | 10 ++++++++
|
||||
.../modules/localization/localization.py | 2 ++
|
||||
.../localization/test_module_localization.py | 23 +++++++++++--------
|
||||
4 files changed, 36 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/pyanaconda/localization.py b/pyanaconda/localization.py
|
||||
index 73415b2511..08a9343463 100644
|
||||
--- a/pyanaconda/localization.py
|
||||
+++ b/pyanaconda/localization.py
|
||||
@@ -489,6 +489,17 @@ def get_common_keyboard_layouts():
|
||||
return langtable.list_common_keyboards()
|
||||
|
||||
|
||||
+def layout_supports_ascii(layout):
|
||||
+ """Return a boolean indicating whether the xkb layout (given as
|
||||
+ e.g. 'en(us)' or 'fr(oss)' or 'ru') can input ASCII characters.
|
||||
+
|
||||
+ :return: True for ASCII capable, False for not
|
||||
+ :rtype: bool
|
||||
+ :param str layout: layout descriptor string
|
||||
+ """
|
||||
+ return langtable.supports_ascii(layout)
|
||||
+
|
||||
+
|
||||
def get_locale_timezones(locale):
|
||||
"""Function returning preferred timezones for the given locale.
|
||||
|
||||
diff --git a/pyanaconda/modules/common/structures/keyboard_layout.py b/pyanaconda/modules/common/structures/keyboard_layout.py
|
||||
index b5aacc764b..007e975965 100644
|
||||
--- a/pyanaconda/modules/common/structures/keyboard_layout.py
|
||||
+++ b/pyanaconda/modules/common/structures/keyboard_layout.py
|
||||
@@ -29,6 +29,7 @@ class KeyboardLayout(DBusData):
|
||||
def __init__(self):
|
||||
self._layout_id = ""
|
||||
self._description = ""
|
||||
+ self._supports_ascii = False
|
||||
self._is_common = False
|
||||
self._langs = []
|
||||
|
||||
@@ -59,6 +60,15 @@ class KeyboardLayout(DBusData):
|
||||
def is_common(self, value: bool):
|
||||
self._is_common = value
|
||||
|
||||
+ @property
|
||||
+ def supports_ascii(self) -> bool:
|
||||
+ """Return whether the layout is capable of typing ASCII characters."""
|
||||
+ return self._supports_ascii
|
||||
+
|
||||
+ @supports_ascii.setter
|
||||
+ def supports_ascii(self, value: bool):
|
||||
+ self._supports_ascii = value
|
||||
+
|
||||
@property
|
||||
def langs(self) -> List[Str]:
|
||||
"""Return the list of associated languages."""
|
||||
diff --git a/pyanaconda/modules/localization/localization.py b/pyanaconda/modules/localization/localization.py
|
||||
index 346a55a1c0..4fb7333ed7 100644
|
||||
--- a/pyanaconda/modules/localization/localization.py
|
||||
+++ b/pyanaconda/modules/localization/localization.py
|
||||
@@ -33,6 +33,7 @@ from pyanaconda.localization import (
|
||||
get_language_id,
|
||||
get_language_locales,
|
||||
get_native_name,
|
||||
+ layout_supports_ascii,
|
||||
)
|
||||
from pyanaconda.modules.common.base import KickstartService
|
||||
from pyanaconda.modules.common.constants.services import LOCALIZATION
|
||||
@@ -218,6 +219,7 @@ class LocalizationService(KickstartService):
|
||||
layout.description = self.get_layout_variant_description(name, with_lang=True, xlated=True)
|
||||
layout.is_common = name.replace(" ", "") in common_langtable_keyboards and is_common_lang
|
||||
layout.langs = info.langs
|
||||
+ layout.supports_ascii = layout_supports_ascii(name.replace(" ", ""))
|
||||
layouts.append(layout)
|
||||
|
||||
return layouts
|
||||
diff --git a/tests/unit_tests/pyanaconda_tests/modules/localization/test_module_localization.py b/tests/unit_tests/pyanaconda_tests/modules/localization/test_module_localization.py
|
||||
index 7f6449d3ea..7582df2401 100644
|
||||
--- a/tests/unit_tests/pyanaconda_tests/modules/localization/test_module_localization.py
|
||||
+++ b/tests/unit_tests/pyanaconda_tests/modules/localization/test_module_localization.py
|
||||
@@ -228,28 +228,31 @@ class LocalizationInterfaceTestCase(unittest.TestCase):
|
||||
normalized_layouts = KeyboardLayout.from_structure_list(layouts)
|
||||
|
||||
layouts_expectation = [
|
||||
- ("ara (olpc)", "Arabic (OLPC)", "Arabic", False),
|
||||
- ("cz", "Czech", "Czech", False),
|
||||
- ("de (nodeadkeys)", "German (no dead keys)", "German", True),
|
||||
- ("es", "Spanish", "Spanish; Castilian", True),
|
||||
- ("fr (oss)", "French (alt.)", "French", True),
|
||||
- ("gr", "Greek", "Greek, Modern (1453-); Greek", False),
|
||||
- ("it", "Italian", "Italian", False),
|
||||
- ("jp", "Japanese", "Japanese", True),
|
||||
- ("us", "English (US)", "English", True),
|
||||
+ ("ara (olpc)", "Arabic (OLPC)", "Arabic", False, True),
|
||||
+ ("cz", "Czech", "Czech", False, True),
|
||||
+ ("de (nodeadkeys)", "German (no dead keys)", "German", True, True),
|
||||
+ ("es", "Spanish", "Spanish; Castilian", True, True),
|
||||
+ ("fr (oss)", "French (alt.)", "French", True, True),
|
||||
+ ("gr", "Greek", "Greek, Modern (1453-); Greek", False, False),
|
||||
+ ("it", "Italian", "Italian", False, True),
|
||||
+ ("jp", "Japanese", "Japanese", True, True),
|
||||
+ ("us", "English (US)", "English", True, True),
|
||||
+ ("ru (dos)", "Russian (DOS)", "Russian", False, False),
|
||||
]
|
||||
|
||||
- for layout_id, description, lang, is_common in layouts_expectation:
|
||||
+ for layout_id, description, lang, is_common, supports_ascii in layouts_expectation:
|
||||
layout = KeyboardLayout()
|
||||
layout.layout_id = layout_id
|
||||
layout.description = description
|
||||
layout.is_common = is_common
|
||||
+ layout.supports_ascii = supports_ascii
|
||||
layout.langs = [lang]
|
||||
|
||||
gen = (normalized_layout for normalized_layout in normalized_layouts if layout.layout_id == normalized_layout.layout_id)
|
||||
for normalized_layout in gen:
|
||||
assert layout.description == normalized_layout.description
|
||||
assert layout.is_common == normalized_layout.is_common
|
||||
+ assert layout.supports_ascii == normalized_layout.supports_ascii
|
||||
assert layout.langs == normalized_layout.langs
|
||||
break
|
||||
else:
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
From 5f066c4125d7a648958b31b909934e02cf397db8 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Konecny <jkonecny@redhat.com>
|
||||
Date: Mon, 8 Feb 2021 11:27:26 +0100
|
||||
Subject: [PATCH 2/3] Revert "Do not support no inst. Anaconda boot args in
|
||||
systemd services (#1912502)" (#1907566)
|
||||
|
||||
Allow to use Anaconda kernel boot arguments systemd units to not break beaker.
|
||||
Beaker needs more time to adaptation so avoid to break it for RHEL-9.
|
||||
|
||||
This reverts commit 322e6a847d73ea17fe99aaae4129e14409488b6b.
|
||||
Related: rhbz#1907566
|
||||
---
|
||||
data/systemd/anaconda-noshell.service | 1 +
|
||||
data/systemd/anaconda-shell@.service | 1 +
|
||||
data/systemd/anaconda-sshd.service | 2 ++
|
||||
3 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/data/systemd/anaconda-noshell.service b/data/systemd/anaconda-noshell.service
|
||||
index ca4dbd328d..f378c67b0c 100644
|
||||
--- a/data/systemd/anaconda-noshell.service
|
||||
+++ b/data/systemd/anaconda-noshell.service
|
||||
@@ -3,6 +3,7 @@ Description=Restrict Anaconda Text Console
|
||||
After=anaconda.service
|
||||
Before=anaconda-tmux@.service
|
||||
ConditionKernelCommandLine=|inst.noshell
|
||||
+ConditionKernelCommandLine=|noshell
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
diff --git a/data/systemd/anaconda-shell@.service b/data/systemd/anaconda-shell@.service
|
||||
index b0dd4b7c66..bc69fd1208 100644
|
||||
--- a/data/systemd/anaconda-shell@.service
|
||||
+++ b/data/systemd/anaconda-shell@.service
|
||||
@@ -3,6 +3,7 @@
|
||||
[Unit]
|
||||
Description=Shell on %I
|
||||
After=systemd-user-sessions.service plymouth-quit-wait.service
|
||||
+ConditionKernelCommandLine=!noshell
|
||||
ConditionKernelCommandLine=!inst.noshell
|
||||
|
||||
[Service]
|
||||
diff --git a/data/systemd/anaconda-sshd.service b/data/systemd/anaconda-sshd.service
|
||||
index 8b5b16fbbe..8cba2c4bb0 100644
|
||||
--- a/data/systemd/anaconda-sshd.service
|
||||
+++ b/data/systemd/anaconda-sshd.service
|
||||
@@ -3,8 +3,10 @@ Description=OpenSSH server daemon
|
||||
Before=anaconda.target
|
||||
After=syslog.target network.target sshd-keygen.target
|
||||
Wants=sshd-keygen.target
|
||||
+ConditionKernelCommandLine=|sshd
|
||||
ConditionKernelCommandLine=|inst.sshd
|
||||
ConditionKernelCommandLine=!inst.sshd=0
|
||||
+ConditionKernelCommandLine=!sshd=0
|
||||
# TODO: use ConditionArchitecture in systemd v210 or later
|
||||
ConditionPathIsDirectory=|/sys/hypervisor/s390
|
||||
|
||||
--
|
||||
2.29.2
|
||||
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
From cf93029a69a5b7d21d9478fad0c5c619ea2008d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Konecny <jkonecny@redhat.com>
|
||||
Date: Mon, 8 Feb 2021 11:32:03 +0100
|
||||
Subject: [PATCH 3/3] Do not require inst. prefixes for Anaconda boot arguments
|
||||
(#1907566)
|
||||
|
||||
Beaker needs more time for adaptation. Create this change to not break beaker
|
||||
for RHEL-9.
|
||||
|
||||
Related: rhbz#1907566
|
||||
---
|
||||
anaconda.py | 3 ---
|
||||
pyanaconda/argument_parsing.py | 2 +-
|
||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/anaconda.py b/anaconda.py
|
||||
index edd518046a..3dc424188f 100755
|
||||
--- a/anaconda.py
|
||||
+++ b/anaconda.py
|
||||
@@ -308,9 +308,6 @@ if __name__ == "__main__":
|
||||
stdout_log.warning("Kernel boot argument '%s' detected. "
|
||||
"Did you want to use 'inst.%s' for the installer instead?",
|
||||
arg, arg)
|
||||
- if removed_no_inst_args:
|
||||
- stdout_log.warning("All Anaconda kernel boot arguments are now required to use "
|
||||
- "'inst.' prefix!")
|
||||
|
||||
from pyanaconda import isys
|
||||
|
||||
diff --git a/pyanaconda/argument_parsing.py b/pyanaconda/argument_parsing.py
|
||||
index 330a71ed64..096b1eba9e 100644
|
||||
--- a/pyanaconda/argument_parsing.py
|
||||
+++ b/pyanaconda/argument_parsing.py
|
||||
@@ -388,7 +388,7 @@ def getArgumentParser(version_string, boot_cmdline=None):
|
||||
# If require_prefix is False, it also accepts the option without the
|
||||
# bootarg_prefix ('repo').
|
||||
# See anaconda_optparse.py and KernelArguments (in flags.py) for details.
|
||||
- ap = AnacondaArgumentParser(bootarg_prefix="inst.", require_prefix=True)
|
||||
+ ap = AnacondaArgumentParser(bootarg_prefix="inst.", require_prefix=False)
|
||||
help_parser = HelpTextParser(os.path.join(datadir, "anaconda_options.txt"))
|
||||
|
||||
# NOTE: store_false options will *not* get negated when the user does
|
||||
--
|
||||
2.29.2
|
||||
|
||||
42
6447.patch
Normal file
42
6447.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
From d75de3da3648dee474ddea6639e09c071f027232 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Sat, 7 Jun 2025 13:44:25 +0200
|
||||
Subject: [PATCH] Avoid buffer overflow with TIOCGWINSZ
|
||||
|
||||
It has 4 bytes, not 2.
|
||||
|
||||
On Python 3.14+, the previous version raised SystemError:
|
||||
|
||||
>>> from pyanaconda.argument_parsing import get_help_width
|
||||
...
|
||||
>>> get_help_width()
|
||||
Traceback (most recent call last):
|
||||
File "<python-input-1>", line 1, in <module>
|
||||
get_help_width()
|
||||
~~~~~~~~~~~~~~^^
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/argument_parsing.py", line 68, in get_help_width
|
||||
data = fcntl.ioctl(sys.stdout, termios.TIOCGWINSZ, '1234')
|
||||
SystemError: buffer overflow
|
||||
|
||||
See https://github.com/python/cpython/commit/c2eaeee3dc3306ca486b0377b07b1a957584b691
|
||||
|
||||
Fixes https://bugzilla.redhat.com/2370944
|
||||
---
|
||||
pyanaconda/argument_parsing.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pyanaconda/argument_parsing.py b/pyanaconda/argument_parsing.py
|
||||
index e24f0f1b999..55cf7993625 100644
|
||||
--- a/pyanaconda/argument_parsing.py
|
||||
+++ b/pyanaconda/argument_parsing.py
|
||||
@@ -65,8 +65,8 @@ def get_help_width():
|
||||
return DEFAULT_HELP_WIDTH
|
||||
|
||||
try:
|
||||
- data = fcntl.ioctl(sys.stdout, termios.TIOCGWINSZ, '1234')
|
||||
- columns = int(struct.unpack('hh', data)[1])
|
||||
+ data = fcntl.ioctl(sys.stdout, termios.TIOCGWINSZ, '12345678')
|
||||
+ columns = int(struct.unpack('hhhh', data)[1])
|
||||
except (OSError, ValueError) as e:
|
||||
log.info("Unable to determine terminal width: %s", e)
|
||||
print("terminal size detection failed, using default width")
|
||||
70
6449.patch
Normal file
70
6449.patch
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
From 11b7e782d8de7da49f0b4e650e8fc0c60f69304f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Sun, 8 Jun 2025 17:46:29 +0200
|
||||
Subject: [PATCH] Avoid the multiprocessing forkserver method with dnf
|
||||
|
||||
Fixes:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/core/threads.py", line 281, in run
|
||||
threading.Thread.run(self)
|
||||
~~~~~~~~~~~~~~~~~~~~^^^^^^
|
||||
File "/usr/lib64/python3.14/threading.py", line 1023, in run
|
||||
self._target(*self._args, **self._kwargs)
|
||||
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/modules/common/task/task.py", line 97, in _thread_run_callback
|
||||
self._task_run_callback()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/modules/common/task/task.py", line 110, in _task_run_callback
|
||||
self._set_result(self.run())
|
||||
~~~~~~~~^^
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/modules/payloads/payload/dnf/installation.py", line 281, in run
|
||||
self._dnf_manager.install_packages(self.report_progress)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/site-packages/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py", line 664, in install_packages
|
||||
process.start()
|
||||
~~~~~~~~~~~~~^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/process.py", line 121, in start
|
||||
self._popen = self._Popen(self)
|
||||
~~~~~~~~~~~^^^^^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/context.py", line 224, in _Popen
|
||||
return _default_context.get_context().Process._Popen(process_obj)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/context.py", line 300, in _Popen
|
||||
return Popen(process_obj)
|
||||
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__
|
||||
super().__init__(process_obj)
|
||||
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/popen_fork.py", line 20, in __init__
|
||||
self._launch(process_obj)
|
||||
~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 47, in _launch
|
||||
reduction.dump(process_obj, buf)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.14/multiprocessing/reduction.py", line 60, in dump
|
||||
ForkingPickler(file, protocol).dump(obj)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
|
||||
TypeError: cannot pickle 'SwigPyObject' object
|
||||
---
|
||||
pyanaconda/modules/payloads/payload/dnf/dnf_manager.py | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py
|
||||
index 925ed73790a..e7c25369912 100644
|
||||
--- a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py
|
||||
+++ b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py
|
||||
@@ -652,9 +652,12 @@ def install_packages(self, callback, timeout=20):
|
||||
:param timeout: a time out of a failed process in seconds
|
||||
:raise PayloadInstallationError: if the installation fails
|
||||
"""
|
||||
- queue = multiprocessing.Queue()
|
||||
+ # SwigPyObjects are not picklable, so force the fork method
|
||||
+ # On Python 3.14+, forkserver is the default (and it pickles)
|
||||
+ context = multiprocessing.get_context(method="fork")
|
||||
+ queue = context.Queue()
|
||||
display = TransactionProgress(queue)
|
||||
- process = multiprocessing.Process(
|
||||
+ process = context.Process(
|
||||
target=self._run_transaction,
|
||||
args=(self._base, display)
|
||||
)
|
||||
3
README.packit
Normal file
3
README.packit
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 1.13.0.post1.dev2+g84134016c.
|
||||
3871
anaconda.spec
3871
anaconda.spec
File diff suppressed because it is too large
Load diff
12
plans/integration.fmf
Normal file
12
plans/integration.fmf
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
summary: Integration tests for anaconda
|
||||
|
||||
discover:
|
||||
how: fmf
|
||||
filter: 'tag: integration'
|
||||
|
||||
execute:
|
||||
how: tmt
|
||||
|
||||
finish:
|
||||
how: shell
|
||||
script: command -v journalctl && journalctl -a || true
|
||||
36
rpmlint.toml
Normal file
36
rpmlint.toml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# The purpose of this file is to overwrite some default config
|
||||
# of rpmlint, which may not fit our project needs / specification
|
||||
Filters = [
|
||||
# Discard no-binary error for anaconda packages which cant be a noarch type
|
||||
'anaconda.x86_64: E: no-binary',
|
||||
'anaconda-core-debuginfo.x86_64: E: no-binary',
|
||||
'anaconda-install-env-deps.x86_64: E: no-binary',
|
||||
'anaconda-install-img-deps.x86_64: E: no-binary',
|
||||
# Discard explicite library dependencies
|
||||
'explicit-lib-dependency flatpak-libs',
|
||||
'explicit-lib-dependency libblockdev-lvm-dbus',
|
||||
'explicit-lib-dependency libblockdev-tools',
|
||||
'explicit-lib-dependency librsvg2',
|
||||
# Discard warning about binary debug symbols. Those are our helper
|
||||
# binaries and it is not important for them to be stripped
|
||||
'unstripped-binary-or-object /usr/libexec/anaconda/dd_extract',
|
||||
'unstripped-binary-or-object /usr/libexec/anaconda/dd_list',
|
||||
'unstripped-binary-or-object /usr/lib64/libAnacondaWidgets*',
|
||||
'unstripped-binary-or-object /usr/lib64/glade/modules/libAnacondaWidgets*',
|
||||
# Discard symbolic link warnings.
|
||||
'dangling-symlink /usr/share/anaconda/window-manager/glib-2.0/schemas/org.gnome.*',
|
||||
'dangling-relative-symlink /usr/lib/.build-id/*',
|
||||
# Discard missing manual pages error
|
||||
'no-manual-page-for-binary liveinst',
|
||||
'no-manual-page-for-binary anaconda-cleanup',
|
||||
'no-manual-page-for-binary anaconda-disable-nm-ibft-plugin',
|
||||
'no-manual-page-for-binary anaconda-nm-disable-autocons',
|
||||
'no-manual-page-for-binary instperf',
|
||||
'no-manual-page-for-binary instperf',
|
||||
'no-manual-page-for-binary anaconda',
|
||||
'no-manual-page-for-binary handle-sshpw',
|
||||
# Discard missing README / documentation for package
|
||||
'no-documentation',
|
||||
# Discard spelling errors for project commonly used words
|
||||
'spelling-error .* en_US (metapackage|kickstarts|iso|eg|lorax) ',
|
||||
]
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (anaconda-34.24.tar.bz2) = 5a5b240debf0b45ab7471ad8639bc634741582fd4e86fd8cea8ff516ee9cf90fe35f0193c2383306ad68125569d80a7968017092b36979f240026b15eddf2276
|
||||
SHA512 (anaconda-44.11.tar.bz2) = 30e8c3bde05afefe7cb18ba17d84fc31007e9086932f47136e74e432563786cd577123f7c904bc3ddd5e5c5f6f722dae3cedbc131d5871c06f7829ba632ffaf7
|
||||
|
|
|
|||
22
tests/dirinstall/dirinstall.fmf
Normal file
22
tests/dirinstall/dirinstall.fmf
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
summary: Dirinstall test on regular os
|
||||
contact: Radek Vykydal <rvykydal@redhat.com>
|
||||
path: /tests/dirinstall
|
||||
test: ./dirinstall.sh
|
||||
duration: 1h
|
||||
tag: [integration]
|
||||
|
||||
/text:
|
||||
summary: Dirinstall test on regular os - text UI
|
||||
require:
|
||||
- anaconda
|
||||
environment:
|
||||
ANACONDA_UI_MODE: text
|
||||
|
||||
/vnc:
|
||||
summary: Dirinstall test on regular os - vnc UI
|
||||
enabled: false
|
||||
require:
|
||||
- anaconda
|
||||
- gnome-kiosk
|
||||
environment:
|
||||
ANACONDA_UI_MODE: vnc
|
||||
47
tests/dirinstall/dirinstall.sh
Executable file
47
tests/dirinstall/dirinstall.sh
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh -eux
|
||||
|
||||
# Remove webui because it does not support much anything yet
|
||||
|
||||
# Possible alternative: rpm -E --nodeps anaconda-webui
|
||||
dnf remove -y anaconda-webui
|
||||
|
||||
|
||||
# Prepare test work directory
|
||||
|
||||
WORK_DIR=$(mktemp -d /var/tmp/dirinstall.XXXXXX)
|
||||
|
||||
|
||||
# Create kickstart
|
||||
|
||||
KICKSTART_PATH=${WORK_DIR}/ks.cfg
|
||||
source ./repositories
|
||||
TEST_KICKSTART=./ks.dirinstall.cfg
|
||||
|
||||
# Dump URLs of installation repositories found in local repositories whose names are configured in 'repositories' file
|
||||
echo "url --metalink=$(dnf repoinfo $BASE_REPO | grep -e "^ *Metalink *:" | cut -d: -f2- | sed 's/^ *//')" > ${KICKSTART_PATH}
|
||||
for repo in $REPOS; do
|
||||
echo "repo --name=$repo --metalink=$(dnf repoinfo $repo | grep "^ *Metalink *:" | cut -d: -f2- | sed 's/^ *//')" >> ${KICKSTART_PATH}
|
||||
done
|
||||
|
||||
cat ${TEST_KICKSTART} >> ${KICKSTART_PATH}
|
||||
|
||||
# Log the kickstart
|
||||
cat ${KICKSTART_PATH}
|
||||
|
||||
|
||||
# Run dirinstall
|
||||
|
||||
INSTALL_DIR=${WORK_DIR}/install_dir
|
||||
mkdir ${INSTALL_DIR}
|
||||
|
||||
anaconda --dirinstall ${INSTALL_DIR} --kickstart ${KICKSTART_PATH} --${ANACONDA_UI_MODE} --noninteractive 2>&1
|
||||
|
||||
|
||||
# Remove test work directory
|
||||
|
||||
rm -rf ${WORK_DIR}
|
||||
|
||||
|
||||
# Show and remove the logs for this anaconda run
|
||||
|
||||
./show_logs.sh
|
||||
12
tests/dirinstall/ks.dirinstall.cfg
Normal file
12
tests/dirinstall/ks.dirinstall.cfg
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# The repository configuration (url, repo) needs to be added here.
|
||||
# It varies by the product and version we are running on / testing
|
||||
|
||||
lang en_US.UTF-8
|
||||
keyboard --vckeymap=us --xlayouts='us'
|
||||
rootpw --plaintext redhat
|
||||
timezone --utc Europe/Prague
|
||||
|
||||
shutdown
|
||||
|
||||
%packages
|
||||
%end
|
||||
12
tests/dirinstall/repositories
Normal file
12
tests/dirinstall/repositories
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# Names of local repositories whose urls will be used for installation
|
||||
|
||||
# Repositories for "Fedora X" needs to be dynamically resolved based on host
|
||||
if dnf repoinfo --enabled | grep -qe "Repo ID *: rawhide"; then
|
||||
BASE_REPO="rawhide"
|
||||
else
|
||||
BASE_REPO="fedora"
|
||||
fi
|
||||
|
||||
# Additional repositories
|
||||
REPOS=""
|
||||
#REPOS="fedora-modular"
|
||||
21
tests/dirinstall/show_logs.sh
Executable file
21
tests/dirinstall/show_logs.sh
Executable file
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh -x
|
||||
|
||||
ls /tmp
|
||||
|
||||
LOG_DIR=/tmp
|
||||
|
||||
cd ${LOG_DIR}
|
||||
KS_SCRIPT_LOGS=$(ls ks-script-*.log)
|
||||
cd -
|
||||
|
||||
ANACONDA_LOGS="anaconda.log storage.log packaging.log program.log dbus.log dnf.librepo.log ${KS_SCRIPT_LOGS}"
|
||||
|
||||
for log in ${ANACONDA_LOGS} ; do
|
||||
LOG_PATH=${LOG_DIR}/${log}
|
||||
if [ -f ${LOG_PATH} ]; then
|
||||
echo "----------------------- Dumping log file $LOG_PATH:"
|
||||
cat $LOG_PATH
|
||||
# clear for the following test
|
||||
rm $LOG_PATH
|
||||
fi
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue