2 This file contains the major changes between
7 * fix rare segfault in resolve_jobrules() that could happen
8 if new rules are learnt
9 * fix a couple of memory leaks in error cases
10 * fix error handling in solv_xfopen_fd()
14 * fixed regex code on win32
15 * fixed memory leak in choice rule generation
17 * repo_add_conda: add flag to skip v2 packages
21 * repo_write: fix handling of nested flexarray
22 * improve choicerule generation a bit more to cover more cases
23 * harden testcase parser against repos being added too late
25 * check %_dbpath macro in rpmdb code
27 * handle default/visible/langonly attributes in comps parser
28 * support multiple collections in updateinfo parser
29 * add '-D' option in rpmdb2solv to set the dbpath
33 * do not ask the namespace callback for splitprovides when writing
35 * fix add_complex_recommends() selecting conflicted packages in
36 rare cases leading to crashes
37 * improve choicerule generation so that package updates are
38 prefered in more cases
39 * deal with missing repos in testcase_mangle_repo_names
43 * fix deduceq2addedmap clearing bits outside of the map
44 * conda: feature depriorization first
45 * conda: fix startswith implementation
46 * move find_update_seeds() call in cleandeps calculation
48 * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
49 * new testcase_mangle_repo_names() function
50 * new solv_fmemopen() function
53 - added support for ed25519 signatures
55 * Support blacklisted packages in solver_findproblemrule()
56 * Support rules with multiple negative literals in choice rule
58 * Also detect rpmdb.sqlite in /usr/share/rpm
61 - fix solvable swapping messing up uninternalized idarrays
64 - conda: support packages.conda repositories
65 - conda: de-priorize track features
66 - allow win32 to build shared lib
68 * fix ruleinfo of complex dependencies returning the wrong origin
71 - ENABLE_RPMDB_LIBRPM is now the default
73 * fixed solv_zchunk decoding error if large chunks are used
74 * treat retracted pathes as irrelevant
75 * made add_update_target work with multiversion installs
79 * new rpm_stat_database() function
80 * new rpm_hash_database_state() function
84 * support conda constrains dependencies
88 * support arch<->noarch package changes when creating patch
89 conflicts from the updateinfo data
90 * also support other rpm database types
92 * support for SOLVER_BLACKLIST jobs that block the installation
93 of matched packages unless they are directly selected by an
95 * libsolv now also parses the patch status in the updateinfo
97 * new solvable_matchessolvable() function
100 - selected bug fixes:
101 * fix updating of too many packages in focusbest mode
102 * fix handling of disabled installed packages in distupgrade
104 * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
107 - selected bug fixes:
108 * fix repository priority handling for multiversion packages
109 * better support of inverval deps in pool_match_dep()
110 * support src rpms that have non-empty provides
112 * bindings: add get_disabled_list() and set_disabled_list()
113 * bindings: add whatcontainsdep()
114 * bindings: make the selection filters return the self object
117 - selected bug fixes:
118 * fix favorq leaking between solver runs if the solver is reused
119 * fix SOLVER_FLAG_FOCUS_BEST updateing packages without reason
120 * be more correct with multiversion packages that obsolete their
122 * allow building with swig-4.0.0
123 * lock jobs now take precedence over dup and forcebest jobs
125 * MSVC compilation support
128 - selected bug fixes:
129 * repo_add_rpmdb: do not copy bad solvables from the old solv file
130 * fix cleandeps updates not updating all packages
132 * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
133 pool.best_solvables() and selection.matchsolvable()
134 * experimental DISTTYPE_CONDA and REL_CONDA support
137 - selected bug fixes:
138 * fixed a couple of null pointer derefs and potential memory
140 * made disfavoring recommended packages work if strong recommends
142 * no longer disable infarch rules when they don't conflict with
145 * do favor evaluation before pruning allowing to (dis)favor
146 specific package versions
150 * do not autouninstall packages because of forcebest updates
152 * support rpm's new '^' version separator
153 * support set/get_considered_list in bindings
154 * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
157 - fix nasty off-by-one error in repo_write
161 - incompatible API changes:
162 * bindings: Selection.flags is now an attribute
163 * repodata_lookup_num now works like the other lookup_num functions
165 * selection_make_matchsolvable
166 * selection_make_matchsolvablelist
167 * pool_whatmatchessolvable
168 * repodata_search_arrayelement
169 * repodata_lookup_kv_uninternalized
170 * repodata_search_uninternalized
171 * repodata_translate_dir
172 - new repowriter interface to write solv files allowing better
173 control over what gets written
174 - support for filtered file lists with a custom filter
175 - dropped support of (since a long time unused) REPOKEY_TYPE_U32
178 - new configuration options:
179 * ENABLE_ZSTD_COMPRESSION: support zstd compression
180 * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
182 * new repodata_set_kv() function
183 * new pool_solvable2id() inline function
184 * bindings: new str2dir, dir2str, add_dirstr repodata methods
186 * new repo2solv tool replacing the old shell script
190 * also look at suggests for package ordering
194 * new Selection.clone() method in the bindings
195 * new pool.parserpmrichdep() method in the bindings
198 - fixed bug that could make fileconflict detection very slow
202 - new configuration options:
203 * ENABLE_RPMDB_LIBRPM: use librpm to read the package
205 * ENABLE_RPMPKG_LIBRPM: use librpm to access information
208 * new pool_set_whatprovides function to manually change
209 the whatprovides data
210 * new selection_subtract function to remove packages of
211 one selection from another selection
212 * new selection flags SELECTION_FILTER,
213 SELECTION_WITH_DISABLED and SELECTION_WITH_BADARCH
214 * new map_invertall function to invert a bitmap
215 * new map_clr_at function to clear some bits
219 * many fixes and extenstions for cleandeps, e.g.
220 cleandeps now works for "update all packages"
221 * support debian packages with xz compressed control.tar
222 * always create dup rules for "distupgrade" jobs
223 * use recommends also for ordering packages
227 * support for REL_WITHOUT and REL_UNLESS dependencies
228 * solver_get_recommendations available in bindings
232 * new pool_best_solvables() function
236 * allow building with libxml2 instead of libexpat
237 * better handing of "forcebest with uninstall"
238 * speed improvements for "name = md5sum" dependencies
241 - export solvable_matchesdep function, as we now
242 use it in the bindings
246 * new SOLVER_FLAG_STRONG_RECOMMENDS flag
247 * new SOLVER_FLAG_INSTALL_ALSO_UPDATES flag
248 * new matchesdep() method in bindings
249 * SOLVABLE_NAME selects nevr matching for
250 pool_whatmatchesdep and solvable_matchesdep
254 * new SOLVER_FLAG_FOCUS_BEST flag
256 Version 0.6.22, 0.6.23
257 - bug fix releases, no new features
261 * SOLVER_FAVOR and SOLVER_DISFAVOR job types
263 * selection_make_matchdepid
264 * pool_whatcontainsdep
265 * pool_parserpmrichdep
269 * filter Requires(pre,post) for installed packages
273 * SOLVER_ALLOWUNINSTALL job type
274 * ordercycle introspection
276 * transaction_order_get_cycle
277 * transaction_order_get_cycleids
287 * pool_ids2whatprovides
291 * much improved package choosing code
292 * new testcase dependency format
293 * alternatives introspection
295 * pool_deb_get_autoinstalled
296 * solver_alternative2str
297 * solver_alternatives_count
298 * solver_get_alternative
299 * solver_rule2pkgrule
304 * support yum style obsolete handling
308 repodata_stringify() now returns the string
310 * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
313 - ABI change: cleaned up and reordered knownid.h
314 - added support for sha224/sha384/sha512
315 - API change in the bindings:
316 * dropped solvid arg from most Dataiterator
318 * changed Datamatch results from methods to
320 * automatically delete the pool if the owner
321 object is freed (use the disown method to
322 get the old behavior).
324 * pool_add_userinstalled_jobs
325 * solver_get_userinstalled