2 This file contains the major changes between libsolv versions:
6 * fix segfault on conflict resolution when using bindings
7 * fix split provides not working if the update includes a forbidden
10 * support strict repository priorities
11 new solver flag: SOLVER_FLAG_STRICT_REPO_PRIORITY
12 * support zstd compressed control files in debian packages
13 * add an ifdef allowing to rename Solvable dependency members
14 ("requires" is a keyword in C++20)
15 * support setting/reading userdata in solv files
16 new functions: repowriter_set_userdata, solv_read_userdata
17 * support queying of the custom vendor check function
18 new function: pool_get_custom_vendorcheck
19 * support solv files with an idarray block
20 * allow accessing the toolversion at runtime
24 * fix misparsing of '&' in attributes with libxml2
25 * choice rules: treat orphaned packages as newest
26 * fix compatibility with Python 3.10
28 * new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
29 * support for environments in comps parser
33 * fix rare segfault in resolve_jobrules() that could happen
34 if new rules are learnt
35 * fix a couple of memory leaks in error cases
36 * fix error handling in solv_xfopen_fd()
40 * fixed regex code on win32
41 * fixed memory leak in choice rule generation
43 * repo_add_conda: add flag to skip v2 packages
47 * repo_write: fix handling of nested flexarray
48 * improve choicerule generation a bit more to cover more cases
49 * harden testcase parser against repos being added too late
51 * check %_dbpath macro in rpmdb code
53 * handle default/visible/langonly attributes in comps parser
54 * support multiple collections in updateinfo parser
55 * add '-D' option in rpmdb2solv to set the dbpath
59 * do not ask the namespace callback for splitprovides when writing
61 * fix add_complex_recommends() selecting conflicted packages in
62 rare cases leading to crashes
63 * improve choicerule generation so that package updates are
64 prefered in more cases
65 * deal with missing repos in testcase_mangle_repo_names
69 * fix deduceq2addedmap clearing bits outside of the map
70 * conda: feature depriorization first
71 * conda: fix startswith implementation
72 * move find_update_seeds() call in cleandeps calculation
74 * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
75 * new testcase_mangle_repo_names() function
76 * new solv_fmemopen() function
79 - added support for ed25519 signatures
81 * Support blacklisted packages in solver_findproblemrule()
82 * Support rules with multiple negative literals in choice rule
84 * Also detect rpmdb.sqlite in /usr/share/rpm
87 - fix solvable swapping messing up uninternalized idarrays
90 - conda: support packages.conda repositories
91 - conda: de-priorize track features
92 - allow win32 to build shared lib
94 * fix ruleinfo of complex dependencies returning the wrong origin
97 - ENABLE_RPMDB_LIBRPM is now the default
99 * fixed solv_zchunk decoding error if large chunks are used
100 * treat retracted pathes as irrelevant
101 * made add_update_target work with multiversion installs
105 * new rpm_stat_database() function
106 * new rpm_hash_database_state() function
110 * support conda constrains dependencies
113 - selected bug fixes:
114 * support arch<->noarch package changes when creating patch
115 conflicts from the updateinfo data
116 * also support other rpm database types
118 * support for SOLVER_BLACKLIST jobs that block the installation
119 of matched packages unless they are directly selected by an
121 * libsolv now also parses the patch status in the updateinfo
123 * new solvable_matchessolvable() function
126 - selected bug fixes:
127 * fix updating of too many packages in focusbest mode
128 * fix handling of disabled installed packages in distupgrade
130 * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
133 - selected bug fixes:
134 * fix repository priority handling for multiversion packages
135 * better support of inverval deps in pool_match_dep()
136 * support src rpms that have non-empty provides
138 * bindings: add get_disabled_list() and set_disabled_list()
139 * bindings: add whatcontainsdep()
140 * bindings: make the selection filters return the self object
143 - selected bug fixes:
144 * fix favorq leaking between solver runs if the solver is reused
145 * fix SOLVER_FLAG_FOCUS_BEST updateing packages without reason
146 * be more correct with multiversion packages that obsolete their
148 * allow building with swig-4.0.0
149 * lock jobs now take precedence over dup and forcebest jobs
151 * MSVC compilation support
154 - selected bug fixes:
155 * repo_add_rpmdb: do not copy bad solvables from the old solv file
156 * fix cleandeps updates not updating all packages
158 * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
159 pool.best_solvables() and selection.matchsolvable()
160 * experimental DISTTYPE_CONDA and REL_CONDA support
163 - selected bug fixes:
164 * fixed a couple of null pointer derefs and potential memory
166 * made disfavoring recommended packages work if strong recommends
168 * no longer disable infarch rules when they don't conflict with
171 * do favor evaluation before pruning allowing to (dis)favor
172 specific package versions
176 * do not autouninstall packages because of forcebest updates
178 * support rpm's new '^' version separator
179 * support set/get_considered_list in bindings
180 * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
183 - fix nasty off-by-one error in repo_write
187 - incompatible API changes:
188 * bindings: Selection.flags is now an attribute
189 * repodata_lookup_num now works like the other lookup_num functions
191 * selection_make_matchsolvable
192 * selection_make_matchsolvablelist
193 * pool_whatmatchessolvable
194 * repodata_search_arrayelement
195 * repodata_lookup_kv_uninternalized
196 * repodata_search_uninternalized
197 * repodata_translate_dir
198 - new repowriter interface to write solv files allowing better
199 control over what gets written
200 - support for filtered file lists with a custom filter
201 - dropped support of (since a long time unused) REPOKEY_TYPE_U32
204 - new configuration options:
205 * ENABLE_ZSTD_COMPRESSION: support zstd compression
206 * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
208 * new repodata_set_kv() function
209 * new pool_solvable2id() inline function
210 * bindings: new str2dir, dir2str, add_dirstr repodata methods
212 * new repo2solv tool replacing the old shell script
216 * also look at suggests for package ordering
220 * new Selection.clone() method in the bindings
221 * new pool.parserpmrichdep() method in the bindings
224 - fixed bug that could make fileconflict detection very slow
228 - new configuration options:
229 * ENABLE_RPMDB_LIBRPM: use librpm to read the package
231 * ENABLE_RPMPKG_LIBRPM: use librpm to access information
234 * new pool_set_whatprovides function to manually change
235 the whatprovides data
236 * new selection_subtract function to remove packages of
237 one selection from another selection
238 * new selection flags SELECTION_FILTER,
239 SELECTION_WITH_DISABLED and SELECTION_WITH_BADARCH
240 * new map_invertall function to invert a bitmap
241 * new map_clr_at function to clear some bits
245 * many fixes and extenstions for cleandeps, e.g.
246 cleandeps now works for "update all packages"
247 * support debian packages with xz compressed control.tar
248 * always create dup rules for "distupgrade" jobs
249 * use recommends also for ordering packages
253 * support for REL_WITHOUT and REL_UNLESS dependencies
254 * solver_get_recommendations available in bindings
258 * new pool_best_solvables() function
262 * allow building with libxml2 instead of libexpat
263 * better handing of "forcebest with uninstall"
264 * speed improvements for "name = md5sum" dependencies
267 - export solvable_matchesdep function, as we now
268 use it in the bindings
272 * new SOLVER_FLAG_STRONG_RECOMMENDS flag
273 * new SOLVER_FLAG_INSTALL_ALSO_UPDATES flag
274 * new matchesdep() method in bindings
275 * SOLVABLE_NAME selects nevr matching for
276 pool_whatmatchesdep and solvable_matchesdep
280 * new SOLVER_FLAG_FOCUS_BEST flag
282 Version 0.6.22, 0.6.23
283 - bug fix releases, no new features
287 * SOLVER_FAVOR and SOLVER_DISFAVOR job types
289 * selection_make_matchdepid
290 * pool_whatcontainsdep
291 * pool_parserpmrichdep
295 * filter Requires(pre,post) for installed packages
299 * SOLVER_ALLOWUNINSTALL job type
300 * ordercycle introspection
302 * transaction_order_get_cycle
303 * transaction_order_get_cycleids
313 * pool_ids2whatprovides
317 * much improved package choosing code
318 * new testcase dependency format
319 * alternatives introspection
321 * pool_deb_get_autoinstalled
322 * solver_alternative2str
323 * solver_alternatives_count
324 * solver_get_alternative
325 * solver_rule2pkgrule
330 * support yum style obsolete handling
334 repodata_stringify() now returns the string
336 * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
339 - ABI change: cleaned up and reordered knownid.h
340 - added support for sha224/sha384/sha512
341 - API change in the bindings:
342 * dropped solvid arg from most Dataiterator
344 * changed Datamatch results from methods to
346 * automatically delete the pool if the owner
347 object is freed (use the disown method to
348 get the old behavior).
350 * pool_add_userinstalled_jobs
351 * solver_get_userinstalled