Imported Upstream version 0.7.27
[platform/upstream/libsolv.git] / NEWS
1
2 This file contains the major changes between libsolv versions:
3
4 Version 0.7.27
5 - selected bug fixes:
6   * add zstd support for the installcheck tool
7   * add putinowndirpool cache to make file list handling in
8     repo_write much faster
9
10 Version 0.7.26
11 - selected bug fixes:
12   * fix evr roundtrip in testcases
13   * do not use deprecated headerUnload with newer rpm versions
14
15 Version 0.7.25
16 - selected bug fixes:
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
24
25 Version 0.7.24
26 - selected bug fixes:
27   * handle learnt rules in solver_alternativeinfo()
28 - new features:
29   * support x86_64_v[234] architecture levels
30   * implement decision sorting for package decisionlists
31
32 Version 0.7.23
33 - selected bug fixes:
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
38 - new features:
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,
45                    solver_get_learnt
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
55     decision reasons
56     
57 Version 0.7.22
58 - selected bug fixes:
59   * reworked choice rule generation to cover more usecases
60   * support SOLVABLE_PREREQ_IGNOREINST in the ordering code
61 - new features:
62   * support parsing of Debian's Multi-Arch indicator
63
64 Version 0.7.21
65 - selected bug fixes:
66   * fix segfault on conflict resolution when using bindings
67   * fix split provides not working if the update includes a forbidden
68     vendor change
69 - new features:
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
81
82 Version 0.7.20
83 - selected bug fixes:
84   * fix misparsing of '&' in attributes with libxml2
85   * choice rules: treat orphaned packages as newest
86   * fix compatibility with Python 3.10
87 - new features:
88   * new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
89   * support for environments in comps parser
90
91 Version 0.7.19
92 - selected bug fixes:
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()
97
98 Version 0.7.18
99 - selected bug fixes:
100   * fixed regex code on win32
101   * fixed memory leak in choice rule generation
102 - new features:
103   * repo_add_conda: add flag to skip v2 packages
104
105 Version 0.7.17
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
112 - new features:
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
116
117 Version 0.7.16
118 - selected bug fixes:
119   * do not ask the namespace callback for splitprovides when writing
120     a testcase
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
126
127 Version 0.7.15
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
133 - new features:
134   * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
135   * new testcase_mangle_repo_names() function
136   * new solv_fmemopen() function
137
138 Version 0.7.14
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
143     generation
144   * Also detect rpmdb.sqlite in /usr/share/rpm
145
146 Version 0.7.13
147 - fix solvable swapping messing up uninternalized idarrays
148
149 Version 0.7.12
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
155
156 Version 0.7.11
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
162
163 Version 0.7.10
164 - new features:
165   * new rpm_stat_database() function
166   * new rpm_hash_database_state() function
167
168 Version 0.7.9
169 - new features:
170   * support conda constrains dependencies
171
172 Version 0.7.8
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
177 - new features:
178   * support for SOLVER_BLACKLIST jobs that block the installation
179     of matched packages unless they are directly selected by an
180     SOLVER_INSTALL job
181   * libsolv now also parses the patch status in the updateinfo
182     parser
183   * new solvable_matchessolvable() function
184
185 Version 0.7.7
186 - selected bug fixes:
187   * fix updating of too many packages in focusbest mode
188   * fix handling of disabled installed packages in distupgrade
189 - new features
190   * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
191
192 Version 0.7.6
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
197 - new features
198   * bindings: add get_disabled_list() and set_disabled_list()
199   * bindings: add whatcontainsdep()
200   * bindings: make the selection filters return the self object
201
202 Version 0.7.5
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
207     own name
208   * allow building with swig-4.0.0
209   * lock jobs now take precedence over dup and forcebest jobs
210 - new features
211   * MSVC compilation support
212
213 Version 0.7.4
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
217 - new features:
218   * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
219     pool.best_solvables() and selection.matchsolvable()
220   * experimental DISTTYPE_CONDA and REL_CONDA support
221
222 Version 0.7.3
223 - selected bug fixes:
224   * fixed a couple of null pointer derefs and potential memory
225     leaks
226   * made disfavoring recommended packages work if strong recommends
227     is enabled
228   * no longer disable infarch rules when they don't conflict with
229     the job
230 - new features:
231   * do favor evaluation before pruning allowing to (dis)favor
232     specific package versions
233
234 Version 0.7.2
235 - bug fixes:
236   * do not autouninstall packages because of forcebest updates
237 - new features:
238   * support rpm's new '^' version separator
239   * support set/get_considered_list in bindings
240   * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
241
242 Version 0.7.1
243 - fix nasty off-by-one error in repo_write
244
245 Version 0.7.0
246 - soname bump to "1"
247 - incompatible API changes:
248   * bindings: Selection.flags is now an attribute
249   * repodata_lookup_num now works like the other lookup_num functions
250 - new 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
262
263 Version 0.6.35
264 - new configuration options:
265   * ENABLE_ZSTD_COMPRESSION: support zstd compression
266   * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
267 - new features:
268   * new repodata_set_kv() function
269   * new pool_solvable2id() inline function
270   * bindings: new str2dir, dir2str, add_dirstr repodata methods
271 - other changes
272   * new repo2solv tool replacing the old shell script
273
274 Version 0.6.34
275 - new features:
276   * also look at suggests for package ordering
277
278 Version 0.6.33
279 - new features:
280   * new Selection.clone() method in the bindings
281   * new pool.parserpmrichdep() method in the bindings
282
283 Version 0.6.32
284 - fixed bug that could make fileconflict detection very slow
285   in some cases
286
287 Version 0.6.31
288 - new configuration options:
289   * ENABLE_RPMDB_LIBRPM: use librpm to read the package
290     database
291   * ENABLE_RPMPKG_LIBRPM: use librpm to access information
292     from package headers
293 - new features:
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
302
303 Version 0.6.30
304 - new features:
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
310
311 Version 0.6.29
312 - new features:
313   * support for REL_WITHOUT and REL_UNLESS dependencies
314   * solver_get_recommendations available in bindings
315
316 Version 0.6.28
317 - new features:
318   * new pool_best_solvables() function
319
320 Version 0.6.27
321 - new features:
322   * allow building with libxml2 instead of libexpat
323   * better handing of "forcebest with uninstall"
324   * speed improvements for "name = md5sum" dependencies
325
326 Version 0.6.26
327 - export solvable_matchesdep function, as we now
328   use it in the bindings
329
330 Version 0.6.25
331 - new features:
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
337  
338 Version 0.6.24
339 - new features:
340   * new SOLVER_FLAG_FOCUS_BEST flag
341
342 Version 0.6.22, 0.6.23
343 - bug fix releases, no new features
344
345 Version 0.6.21
346 - new features:
347   * SOLVER_FAVOR and SOLVER_DISFAVOR job types
348 - new functions:
349   * selection_make_matchdepid
350   * pool_whatcontainsdep
351   * pool_parserpmrichdep
352
353 Version 0.6.20
354 - new features:
355   * filter Requires(pre,post) for installed packages
356
357 Version 0.6.13:
358 - new features:
359   * SOLVER_ALLOWUNINSTALL job type
360   * ordercycle introspection
361 - new functions:
362   * transaction_order_get_cycle
363   * transaction_order_get_cycleids
364
365 Version 0.6.12:
366 - new features:
367   * tcl bindings
368 - new functions:
369   * solv_chksum_cmp
370
371 Version 0.6.11:
372 - new functions:
373   * pool_ids2whatprovides
374
375 Version 0.6.9:
376 - new features:
377   * much improved package choosing code
378   * new testcase dependency format
379   * alternatives introspection
380 - new functions:
381   * pool_deb_get_autoinstalled
382   * solver_alternative2str
383   * solver_alternatives_count
384   * solver_get_alternative
385   * solver_rule2pkgrule
386   * testcase_dep2str
387
388 Version 0.6.5:
389 - new features:
390   * support yum style obsolete handling
391
392 Version 0.6.1:
393 - API change:
394   repodata_stringify() now returns the string
395 - new features:
396   * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
397
398 Version 0.6.0:
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
403     constructors
404   * changed Datamatch results from methods to
405     attributes
406   * automatically delete the pool if the owner
407     object is freed (use the disown method to
408     get the old behavior).
409 - new functions:
410   * pool_add_userinstalled_jobs
411   * solver_get_userinstalled
412