2 This file contains the major changes between libsolv versions:
6 * reworked choice rule generation to cover more usecases
7 * support SOLVABLE_PREREQ_IGNOREINST in the ordering code
9 * support parsing of Debian's Multi-Arch indicator
13 * fix segfault on conflict resolution when using bindings
14 * fix split provides not working if the update includes a forbidden
17 * support strict repository priorities
18 new solver flag: SOLVER_FLAG_STRICT_REPO_PRIORITY
19 * support zstd compressed control files in debian packages
20 * add an ifdef allowing to rename Solvable dependency members
21 ("requires" is a keyword in C++20)
22 * support setting/reading userdata in solv files
23 new functions: repowriter_set_userdata, solv_read_userdata
24 * support queying of the custom vendor check function
25 new function: pool_get_custom_vendorcheck
26 * support solv files with an idarray block
27 * allow accessing the toolversion at runtime
31 * fix misparsing of '&' in attributes with libxml2
32 * choice rules: treat orphaned packages as newest
33 * fix compatibility with Python 3.10
35 * new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
36 * support for environments in comps parser
40 * fix rare segfault in resolve_jobrules() that could happen
41 if new rules are learnt
42 * fix a couple of memory leaks in error cases
43 * fix error handling in solv_xfopen_fd()
47 * fixed regex code on win32
48 * fixed memory leak in choice rule generation
50 * repo_add_conda: add flag to skip v2 packages
54 * repo_write: fix handling of nested flexarray
55 * improve choicerule generation a bit more to cover more cases
56 * harden testcase parser against repos being added too late
58 * check %_dbpath macro in rpmdb code
60 * handle default/visible/langonly attributes in comps parser
61 * support multiple collections in updateinfo parser
62 * add '-D' option in rpmdb2solv to set the dbpath
66 * do not ask the namespace callback for splitprovides when writing
68 * fix add_complex_recommends() selecting conflicted packages in
69 rare cases leading to crashes
70 * improve choicerule generation so that package updates are
71 prefered in more cases
72 * deal with missing repos in testcase_mangle_repo_names
76 * fix deduceq2addedmap clearing bits outside of the map
77 * conda: feature depriorization first
78 * conda: fix startswith implementation
79 * move find_update_seeds() call in cleandeps calculation
81 * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
82 * new testcase_mangle_repo_names() function
83 * new solv_fmemopen() function
86 - added support for ed25519 signatures
88 * Support blacklisted packages in solver_findproblemrule()
89 * Support rules with multiple negative literals in choice rule
91 * Also detect rpmdb.sqlite in /usr/share/rpm
94 - fix solvable swapping messing up uninternalized idarrays
97 - conda: support packages.conda repositories
98 - conda: de-priorize track features
99 - allow win32 to build shared lib
100 - selected bug fixes:
101 * fix ruleinfo of complex dependencies returning the wrong origin
104 - ENABLE_RPMDB_LIBRPM is now the default
105 - selected bug fixes:
106 * fixed solv_zchunk decoding error if large chunks are used
107 * treat retracted pathes as irrelevant
108 * made add_update_target work with multiversion installs
112 * new rpm_stat_database() function
113 * new rpm_hash_database_state() function
117 * support conda constrains dependencies
120 - selected bug fixes:
121 * support arch<->noarch package changes when creating patch
122 conflicts from the updateinfo data
123 * also support other rpm database types
125 * support for SOLVER_BLACKLIST jobs that block the installation
126 of matched packages unless they are directly selected by an
128 * libsolv now also parses the patch status in the updateinfo
130 * new solvable_matchessolvable() function
133 - selected bug fixes:
134 * fix updating of too many packages in focusbest mode
135 * fix handling of disabled installed packages in distupgrade
137 * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
140 - selected bug fixes:
141 * fix repository priority handling for multiversion packages
142 * better support of inverval deps in pool_match_dep()
143 * support src rpms that have non-empty provides
145 * bindings: add get_disabled_list() and set_disabled_list()
146 * bindings: add whatcontainsdep()
147 * bindings: make the selection filters return the self object
150 - selected bug fixes:
151 * fix favorq leaking between solver runs if the solver is reused
152 * fix SOLVER_FLAG_FOCUS_BEST updateing packages without reason
153 * be more correct with multiversion packages that obsolete their
155 * allow building with swig-4.0.0
156 * lock jobs now take precedence over dup and forcebest jobs
158 * MSVC compilation support
161 - selected bug fixes:
162 * repo_add_rpmdb: do not copy bad solvables from the old solv file
163 * fix cleandeps updates not updating all packages
165 * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
166 pool.best_solvables() and selection.matchsolvable()
167 * experimental DISTTYPE_CONDA and REL_CONDA support
170 - selected bug fixes:
171 * fixed a couple of null pointer derefs and potential memory
173 * made disfavoring recommended packages work if strong recommends
175 * no longer disable infarch rules when they don't conflict with
178 * do favor evaluation before pruning allowing to (dis)favor
179 specific package versions
183 * do not autouninstall packages because of forcebest updates
185 * support rpm's new '^' version separator
186 * support set/get_considered_list in bindings
187 * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
190 - fix nasty off-by-one error in repo_write
194 - incompatible API changes:
195 * bindings: Selection.flags is now an attribute
196 * repodata_lookup_num now works like the other lookup_num functions
198 * selection_make_matchsolvable
199 * selection_make_matchsolvablelist
200 * pool_whatmatchessolvable
201 * repodata_search_arrayelement
202 * repodata_lookup_kv_uninternalized
203 * repodata_search_uninternalized
204 * repodata_translate_dir
205 - new repowriter interface to write solv files allowing better
206 control over what gets written
207 - support for filtered file lists with a custom filter
208 - dropped support of (since a long time unused) REPOKEY_TYPE_U32
211 - new configuration options:
212 * ENABLE_ZSTD_COMPRESSION: support zstd compression
213 * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
215 * new repodata_set_kv() function
216 * new pool_solvable2id() inline function
217 * bindings: new str2dir, dir2str, add_dirstr repodata methods
219 * new repo2solv tool replacing the old shell script
223 * also look at suggests for package ordering
227 * new Selection.clone() method in the bindings
228 * new pool.parserpmrichdep() method in the bindings
231 - fixed bug that could make fileconflict detection very slow
235 - new configuration options:
236 * ENABLE_RPMDB_LIBRPM: use librpm to read the package
238 * ENABLE_RPMPKG_LIBRPM: use librpm to access information
241 * new pool_set_whatprovides function to manually change
242 the whatprovides data
243 * new selection_subtract function to remove packages of
244 one selection from another selection
245 * new selection flags SELECTION_FILTER,
246 SELECTION_WITH_DISABLED and SELECTION_WITH_BADARCH
247 * new map_invertall function to invert a bitmap
248 * new map_clr_at function to clear some bits
252 * many fixes and extenstions for cleandeps, e.g.
253 cleandeps now works for "update all packages"
254 * support debian packages with xz compressed control.tar
255 * always create dup rules for "distupgrade" jobs
256 * use recommends also for ordering packages
260 * support for REL_WITHOUT and REL_UNLESS dependencies
261 * solver_get_recommendations available in bindings
265 * new pool_best_solvables() function
269 * allow building with libxml2 instead of libexpat
270 * better handing of "forcebest with uninstall"
271 * speed improvements for "name = md5sum" dependencies
274 - export solvable_matchesdep function, as we now
275 use it in the bindings
279 * new SOLVER_FLAG_STRONG_RECOMMENDS flag
280 * new SOLVER_FLAG_INSTALL_ALSO_UPDATES flag
281 * new matchesdep() method in bindings
282 * SOLVABLE_NAME selects nevr matching for
283 pool_whatmatchesdep and solvable_matchesdep
287 * new SOLVER_FLAG_FOCUS_BEST flag
289 Version 0.6.22, 0.6.23
290 - bug fix releases, no new features
294 * SOLVER_FAVOR and SOLVER_DISFAVOR job types
296 * selection_make_matchdepid
297 * pool_whatcontainsdep
298 * pool_parserpmrichdep
302 * filter Requires(pre,post) for installed packages
306 * SOLVER_ALLOWUNINSTALL job type
307 * ordercycle introspection
309 * transaction_order_get_cycle
310 * transaction_order_get_cycleids
320 * pool_ids2whatprovides
324 * much improved package choosing code
325 * new testcase dependency format
326 * alternatives introspection
328 * pool_deb_get_autoinstalled
329 * solver_alternative2str
330 * solver_alternatives_count
331 * solver_get_alternative
332 * solver_rule2pkgrule
337 * support yum style obsolete handling
341 repodata_stringify() now returns the string
343 * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
346 - ABI change: cleaned up and reordered knownid.h
347 - added support for sha224/sha384/sha512
348 - API change in the bindings:
349 * dropped solvid arg from most Dataiterator
351 * changed Datamatch results from methods to
353 * automatically delete the pool if the owner
354 object is freed (use the disown method to
355 get the old behavior).
357 * pool_add_userinstalled_jobs
358 * solver_get_userinstalled