2 This file contains the major changes between libsolv versions:
6 * add zstd support for the installcheck tool
7 * add putinowndirpool cache to make file list handling in
12 * fix evr roundtrip in testcases
13 * do not use deprecated headerUnload with newer rpm versions
17 * support complex deps in SOLVABLE_PREREQ_IGNOREINST
18 * fix minimization not prefering installed packages in some cases
19 * reduce memory usage in repo_updateinfoxml
20 * fix lock-step interfering with architecture selection
21 * fix choice rule handing for package downgrades
22 * fix complex dependencies with an "else" part sometimes leading
23 to unsolved dependencies
27 * handle learnt rules in solver_alternativeinfo()
29 * support x86_64_v[234] architecture levels
30 * implement decision sorting for package decisionlists
34 * fix "keep installed" jobs not disabling "best update" rules
35 * do not autouninstall suse ptf packages
36 * ensure duplinvolvedmap_all is reset when a solver is reused
37 * special case file dependencies in the testcase writer
39 * support stringification of multiple solvables
40 new function: pool_solvidset2str
41 * new weakdep introspection interface similar to ruleinfos
42 new functions: solver_weakdepinfo, solver_allweakdepinfos
43 * support decision reason queries
44 new functions: solver_get_decisionlist, solver_get_decisionlist_multiple,
46 * support merging of related decissions
47 new functions: solver_decisionlist_solvables, solver_decisionlist_merged,
48 solver_calc_decisioninfo_bits, solver_merge_decisioninfo_bits
49 * support stringification of ruleinfo, decisioninfo and decision reasons
50 new functions: solver_ruleinfo2str, solver_decisioninfo2str,
51 solver_decisionreason2str, solver_reason2str
52 * support better info about alternatives
53 new function: solver_alternativeinfo()
54 * new '-P' and '-W' options for testsolv to show proofs and
59 * reworked choice rule generation to cover more usecases
60 * support SOLVABLE_PREREQ_IGNOREINST in the ordering code
62 * support parsing of Debian's Multi-Arch indicator
66 * fix segfault on conflict resolution when using bindings
67 * fix split provides not working if the update includes a forbidden
70 * support strict repository priorities
71 new solver flag: SOLVER_FLAG_STRICT_REPO_PRIORITY
72 * support zstd compressed control files in debian packages
73 * add an ifdef allowing to rename Solvable dependency members
74 ("requires" is a keyword in C++20)
75 * support setting/reading userdata in solv files
76 new functions: repowriter_set_userdata, solv_read_userdata
77 * support queying of the custom vendor check function
78 new function: pool_get_custom_vendorcheck
79 * support solv files with an idarray block
80 * allow accessing the toolversion at runtime
84 * fix misparsing of '&' in attributes with libxml2
85 * choice rules: treat orphaned packages as newest
86 * fix compatibility with Python 3.10
88 * new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
89 * support for environments in comps parser
93 * fix rare segfault in resolve_jobrules() that could happen
94 if new rules are learnt
95 * fix a couple of memory leaks in error cases
96 * fix error handling in solv_xfopen_fd()
100 * fixed regex code on win32
101 * fixed memory leak in choice rule generation
103 * repo_add_conda: add flag to skip v2 packages
106 - selected bug fixes:
107 * repo_write: fix handling of nested flexarray
108 * improve choicerule generation a bit more to cover more cases
109 * harden testcase parser against repos being added too late
110 * support python-3.10
111 * check %_dbpath macro in rpmdb code
113 * handle default/visible/langonly attributes in comps parser
114 * support multiple collections in updateinfo parser
115 * add '-D' option in rpmdb2solv to set the dbpath
118 - selected bug fixes:
119 * do not ask the namespace callback for splitprovides when writing
121 * fix add_complex_recommends() selecting conflicted packages in
122 rare cases leading to crashes
123 * improve choicerule generation so that package updates are
124 prefered in more cases
125 * deal with missing repos in testcase_mangle_repo_names
128 - selected bug fixes:
129 * fix deduceq2addedmap clearing bits outside of the map
130 * conda: feature depriorization first
131 * conda: fix startswith implementation
132 * move find_update_seeds() call in cleandeps calculation
134 * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
135 * new testcase_mangle_repo_names() function
136 * new solv_fmemopen() function
139 - added support for ed25519 signatures
140 - selected bug fixes:
141 * Support blacklisted packages in solver_findproblemrule()
142 * Support rules with multiple negative literals in choice rule
144 * Also detect rpmdb.sqlite in /usr/share/rpm
147 - fix solvable swapping messing up uninternalized idarrays
150 - conda: support packages.conda repositories
151 - conda: de-priorize track features
152 - allow win32 to build shared lib
153 - selected bug fixes:
154 * fix ruleinfo of complex dependencies returning the wrong origin
157 - ENABLE_RPMDB_LIBRPM is now the default
158 - selected bug fixes:
159 * fixed solv_zchunk decoding error if large chunks are used
160 * treat retracted pathes as irrelevant
161 * made add_update_target work with multiversion installs
165 * new rpm_stat_database() function
166 * new rpm_hash_database_state() function
170 * support conda constrains dependencies
173 - selected bug fixes:
174 * support arch<->noarch package changes when creating patch
175 conflicts from the updateinfo data
176 * also support other rpm database types
178 * support for SOLVER_BLACKLIST jobs that block the installation
179 of matched packages unless they are directly selected by an
181 * libsolv now also parses the patch status in the updateinfo
183 * new solvable_matchessolvable() function
186 - selected bug fixes:
187 * fix updating of too many packages in focusbest mode
188 * fix handling of disabled installed packages in distupgrade
190 * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
193 - selected bug fixes:
194 * fix repository priority handling for multiversion packages
195 * better support of inverval deps in pool_match_dep()
196 * support src rpms that have non-empty provides
198 * bindings: add get_disabled_list() and set_disabled_list()
199 * bindings: add whatcontainsdep()
200 * bindings: make the selection filters return the self object
203 - selected bug fixes:
204 * fix favorq leaking between solver runs if the solver is reused
205 * fix SOLVER_FLAG_FOCUS_BEST updateing packages without reason
206 * be more correct with multiversion packages that obsolete their
208 * allow building with swig-4.0.0
209 * lock jobs now take precedence over dup and forcebest jobs
211 * MSVC compilation support
214 - selected bug fixes:
215 * repo_add_rpmdb: do not copy bad solvables from the old solv file
216 * fix cleandeps updates not updating all packages
218 * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
219 pool.best_solvables() and selection.matchsolvable()
220 * experimental DISTTYPE_CONDA and REL_CONDA support
223 - selected bug fixes:
224 * fixed a couple of null pointer derefs and potential memory
226 * made disfavoring recommended packages work if strong recommends
228 * no longer disable infarch rules when they don't conflict with
231 * do favor evaluation before pruning allowing to (dis)favor
232 specific package versions
236 * do not autouninstall packages because of forcebest updates
238 * support rpm's new '^' version separator
239 * support set/get_considered_list in bindings
240 * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
243 - fix nasty off-by-one error in repo_write
247 - incompatible API changes:
248 * bindings: Selection.flags is now an attribute
249 * repodata_lookup_num now works like the other lookup_num functions
251 * selection_make_matchsolvable
252 * selection_make_matchsolvablelist
253 * pool_whatmatchessolvable
254 * repodata_search_arrayelement
255 * repodata_lookup_kv_uninternalized
256 * repodata_search_uninternalized
257 * repodata_translate_dir
258 - new repowriter interface to write solv files allowing better
259 control over what gets written
260 - support for filtered file lists with a custom filter
261 - dropped support of (since a long time unused) REPOKEY_TYPE_U32
264 - new configuration options:
265 * ENABLE_ZSTD_COMPRESSION: support zstd compression
266 * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
268 * new repodata_set_kv() function
269 * new pool_solvable2id() inline function
270 * bindings: new str2dir, dir2str, add_dirstr repodata methods
272 * new repo2solv tool replacing the old shell script
276 * also look at suggests for package ordering
280 * new Selection.clone() method in the bindings
281 * new pool.parserpmrichdep() method in the bindings
284 - fixed bug that could make fileconflict detection very slow
288 - new configuration options:
289 * ENABLE_RPMDB_LIBRPM: use librpm to read the package
291 * ENABLE_RPMPKG_LIBRPM: use librpm to access information
294 * new pool_set_whatprovides function to manually change
295 the whatprovides data
296 * new selection_subtract function to remove packages of
297 one selection from another selection
298 * new selection flags SELECTION_FILTER,
299 SELECTION_WITH_DISABLED and SELECTION_WITH_BADARCH
300 * new map_invertall function to invert a bitmap
301 * new map_clr_at function to clear some bits
305 * many fixes and extenstions for cleandeps, e.g.
306 cleandeps now works for "update all packages"
307 * support debian packages with xz compressed control.tar
308 * always create dup rules for "distupgrade" jobs
309 * use recommends also for ordering packages
313 * support for REL_WITHOUT and REL_UNLESS dependencies
314 * solver_get_recommendations available in bindings
318 * new pool_best_solvables() function
322 * allow building with libxml2 instead of libexpat
323 * better handing of "forcebest with uninstall"
324 * speed improvements for "name = md5sum" dependencies
327 - export solvable_matchesdep function, as we now
328 use it in the bindings
332 * new SOLVER_FLAG_STRONG_RECOMMENDS flag
333 * new SOLVER_FLAG_INSTALL_ALSO_UPDATES flag
334 * new matchesdep() method in bindings
335 * SOLVABLE_NAME selects nevr matching for
336 pool_whatmatchesdep and solvable_matchesdep
340 * new SOLVER_FLAG_FOCUS_BEST flag
342 Version 0.6.22, 0.6.23
343 - bug fix releases, no new features
347 * SOLVER_FAVOR and SOLVER_DISFAVOR job types
349 * selection_make_matchdepid
350 * pool_whatcontainsdep
351 * pool_parserpmrichdep
355 * filter Requires(pre,post) for installed packages
359 * SOLVER_ALLOWUNINSTALL job type
360 * ordercycle introspection
362 * transaction_order_get_cycle
363 * transaction_order_get_cycleids
373 * pool_ids2whatprovides
377 * much improved package choosing code
378 * new testcase dependency format
379 * alternatives introspection
381 * pool_deb_get_autoinstalled
382 * solver_alternative2str
383 * solver_alternatives_count
384 * solver_get_alternative
385 * solver_rule2pkgrule
390 * support yum style obsolete handling
394 repodata_stringify() now returns the string
396 * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
399 - ABI change: cleaned up and reordered knownid.h
400 - added support for sha224/sha384/sha512
401 - API change in the bindings:
402 * dropped solvid arg from most Dataiterator
404 * changed Datamatch results from methods to
406 * automatically delete the pool if the owner
407 object is freed (use the disown method to
408 get the old behavior).
410 * pool_add_userinstalled_jobs
411 * solver_get_userinstalled