-
Notifications
You must be signed in to change notification settings - Fork 51
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
Package availability #1004
Package availability #1004
Conversation
6a40917
to
d27684d
Compare
d9762b1
to
993b30e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
# @return [Boolean] | ||
def package_available?(name) | ||
# Beware: apart from true and false, Available can return nil if things go wrong. | ||
on_local { !!Yast::Package.Available(name) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Be careful that Yast::Package.Available
checks for the RPM Provides. That means the package name
might not be available, but if there is some other package providing it then it will return true
.
So it depends what we actually expect from the API. Maybe have two separate calls? One for package name and the other for provides?
This could cause some unexpected problems later...
Prepare for releasing Agama 8. It includes the following pull requests: * #884 * #886 * #914 * #918 * #956 * #957 * #958 * #959 * #960 * #961 * #962 * #963 * #964 * #965 * #966 * #969 * #970 * #976 * #977 * #978 * #979 * #980 * #981 * #983 * #984 * #985 * #986 * #988 * #991 * #992 * #995 * #996 * #997 * #999 * #1003 * #1004 * #1006 * #1007 * #1008 * #1009 * #1010 * #1011 * #1012 * #1014 * #1015 * #1016 * #1017 * #1020 * #1022 * #1023 * #1024 * #1025 * #1027 * #1028 * #1029 * #1030 * #1031 * #1032 * #1033 * #1034 * #1035 * #1036 * #1038 * #1039 * #1041 * #1042 * #1043 * #1045 * #1046 * #1047 * #1048 * #1052 * #1054 * #1056 * #1057 * #1060 * #1061 * #1062 * #1063 * #1064 * #1066 * #1067 * #1068 * #1069 * #1071 * #1072 * #1073 * #1074 * #1075 * #1079 * #1080 * #1081 * #1082 * #1085 * #1086 * #1087 * #1088 * #1089 * #1090 * #1091 * #1092 * #1093 * #1094 * #1095 * #1096 * #1097 * #1098 * #1099 * #1100 * #1102 * #1103 * #1104 * #1105 * #1106 * #1109 * #1110 * #1111 * #1112 * #1114 * #1116 * #1117 * #1118 * #1119 * #1120 * #1121 * #1122 * #1123 * #1125 * #1126 * #1127 * #1128 * #1129 * #1130 * #1131 * #1132 * #1133 * #1134 * #1135 * #1136 * #1138 * #1139 * #1140 * #1141 * #1142 * #1143 * #1144 * #1145 * #1146 * #1147 * #1148 * #1149 * #1151 * #1152 * #1153 * #1154 * #1155 * #1156 * #1157 * #1158 * #1160 * #1161 * #1162 * #1163 * #1164 * #1165 * #1166 * #1167 * #1168 * #1169 * #1170 * #1171 * #1172 * #1173 * #1174 * #1175 * #1177 * #1178 * #1180 * #1181 * #1182 * #1183 * #1184 * #1185 * #1187 * #1188 * #1189 * #1190 * #1191 * #1192 * #1193 * #1194 * #1195 * #1196 * #1198 * #1199 * #1200 * #1201 * #1203 * #1204 * #1205 * #1206 * #1207 * #1208 * #1209 * #1210 * #1211 * #1212 * #1213 * #1214 * #1215 * #1216 * #1217 * #1219 * #1220 * #1221 * #1222 * #1223 * #1224 * #1225 * #1226 * #1227 * #1229
### Problem The value of the D-Bus properties *ProductMountPoints* and *EncryptionMethods* from the interface *org.opensuse.Agama.Storage1.Proposal.Calculator* depend on the selected product. Nevertheless, the *PropertiesChanged* signal is not emitted when the product changes. Therefore, proxies clients never update such values. This implies that the option for FDE (Full Disk Encryption) might not be shown. See #1004. ### Solution * For the *ProductMountPoints* property: emit a *PropertiesChanged* signal when the product changes. * For the *EncryptionMethods* property: emit a *PropertiesChaged* signal when software is probed. Note that the availability of certain packages is checked in order to know whether FDE is a possible encryption method.
Problem
The call to the sotware service to check for the availability of a package is mocked and always returns true, assuming the package is always available. Of course, the availability of a package depends of the currently selected product.
Solution
Perform a D-Bus call to the software service in order to know if a package is available.
Note: This change exposes a problem in our services. Asking for the product availability should be done once the software proposal is done, otherwise the result is not reliable at all, see #1005. For example, the TPM option in the storage settings could not appear until the software service has finished, see #995.
Testing