656032019cfa5cf7d5c0847e341cc6031ff68976
[platform/upstream/libsolv.git] / NEWS
1
2 This file contains the major changes between libsolv versions:
3
4 Version 0.7.21
5 - selected bug fixes:
6   * fix segfault on conflict resolution when using bindings
7   * fix split provides not working if the update includes a forbidden
8     vendor change
9 - new features:
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
21
22 Version 0.7.20
23 - selected bug fixes:
24   * fix misparsing of '&' in attributes with libxml2
25   * choice rules: treat orphaned packages as newest
26   * fix compatibility with Python 3.10
27 - new features:
28   * new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
29   * support for environments in comps parser
30
31 Version 0.7.19
32 - selected bug fixes:
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()
37
38 Version 0.7.18
39 - selected bug fixes:
40   * fixed regex code on win32
41   * fixed memory leak in choice rule generation
42 - new features:
43   * repo_add_conda: add flag to skip v2 packages
44
45 Version 0.7.17
46 - selected bug fixes:
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
50   * support python-3.10
51   * check %_dbpath macro in rpmdb code
52 - new features:
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
56
57 Version 0.7.16
58 - selected bug fixes:
59   * do not ask the namespace callback for splitprovides when writing
60     a testcase
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
66
67 Version 0.7.15
68 - selected bug fixes:
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
73 - new features:
74   * set SOLVABLE_BUILDHOST in rpm and rpmmd parsers
75   * new testcase_mangle_repo_names() function
76   * new solv_fmemopen() function
77
78 Version 0.7.14
79 - added support for ed25519 signatures
80 - selected bug fixes:
81   * Support blacklisted packages in solver_findproblemrule()
82   * Support rules with multiple negative literals in choice rule
83     generation
84   * Also detect rpmdb.sqlite in /usr/share/rpm
85
86 Version 0.7.13
87 - fix solvable swapping messing up uninternalized idarrays
88
89 Version 0.7.12
90 - conda: support packages.conda repositories
91 - conda: de-priorize track features
92 - allow win32 to build shared lib
93 - selected bug fixes:
94   * fix ruleinfo of complex dependencies returning the wrong origin
95
96 Version 0.7.11
97 - ENABLE_RPMDB_LIBRPM is now the default
98 - selected bug fixes:
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
102
103 Version 0.7.10
104 - new features:
105   * new rpm_stat_database() function
106   * new rpm_hash_database_state() function
107
108 Version 0.7.9
109 - new features:
110   * support conda constrains dependencies
111
112 Version 0.7.8
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
117 - new features:
118   * support for SOLVER_BLACKLIST jobs that block the installation
119     of matched packages unless they are directly selected by an
120     SOLVER_INSTALL job
121   * libsolv now also parses the patch status in the updateinfo
122     parser
123   * new solvable_matchessolvable() function
124
125 Version 0.7.7
126 - selected bug fixes:
127   * fix updating of too many packages in focusbest mode
128   * fix handling of disabled installed packages in distupgrade
129 - new features
130   * new POOL_FLAG_WHATPROVIDESWITHDISABLED pool flag
131
132 Version 0.7.6
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
137 - new features
138   * bindings: add get_disabled_list() and set_disabled_list()
139   * bindings: add whatcontainsdep()
140   * bindings: make the selection filters return the self object
141
142 Version 0.7.5
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
147     own name
148   * allow building with swig-4.0.0
149   * lock jobs now take precedence over dup and forcebest jobs
150 - new features
151   * MSVC compilation support
152
153 Version 0.7.4
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
157 - new features:
158   * bindings: support pool.matchsolvable(), pool.whatmatchessolvable()
159     pool.best_solvables() and selection.matchsolvable()
160   * experimental DISTTYPE_CONDA and REL_CONDA support
161
162 Version 0.7.3
163 - selected bug fixes:
164   * fixed a couple of null pointer derefs and potential memory
165     leaks
166   * made disfavoring recommended packages work if strong recommends
167     is enabled
168   * no longer disable infarch rules when they don't conflict with
169     the job
170 - new features:
171   * do favor evaluation before pruning allowing to (dis)favor
172     specific package versions
173
174 Version 0.7.2
175 - bug fixes:
176   * do not autouninstall packages because of forcebest updates
177 - new features:
178   * support rpm's new '^' version separator
179   * support set/get_considered_list in bindings
180   * new experimental SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED flag
181
182 Version 0.7.1
183 - fix nasty off-by-one error in repo_write
184
185 Version 0.7.0
186 - soname bump to "1"
187 - incompatible API changes:
188   * bindings: Selection.flags is now an attribute
189   * repodata_lookup_num now works like the other lookup_num functions
190 - new 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
202
203 Version 0.6.35
204 - new configuration options:
205   * ENABLE_ZSTD_COMPRESSION: support zstd compression
206   * ENABLE_ZCHUNK_COMPRESSION: support zchunk compression
207 - new features:
208   * new repodata_set_kv() function
209   * new pool_solvable2id() inline function
210   * bindings: new str2dir, dir2str, add_dirstr repodata methods
211 - other changes
212   * new repo2solv tool replacing the old shell script
213
214 Version 0.6.34
215 - new features:
216   * also look at suggests for package ordering
217
218 Version 0.6.33
219 - new features:
220   * new Selection.clone() method in the bindings
221   * new pool.parserpmrichdep() method in the bindings
222
223 Version 0.6.32
224 - fixed bug that could make fileconflict detection very slow
225   in some cases
226
227 Version 0.6.31
228 - new configuration options:
229   * ENABLE_RPMDB_LIBRPM: use librpm to read the package
230     database
231   * ENABLE_RPMPKG_LIBRPM: use librpm to access information
232     from package headers
233 - new features:
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
242
243 Version 0.6.30
244 - new features:
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
250
251 Version 0.6.29
252 - new features:
253   * support for REL_WITHOUT and REL_UNLESS dependencies
254   * solver_get_recommendations available in bindings
255
256 Version 0.6.28
257 - new features:
258   * new pool_best_solvables() function
259
260 Version 0.6.27
261 - new features:
262   * allow building with libxml2 instead of libexpat
263   * better handing of "forcebest with uninstall"
264   * speed improvements for "name = md5sum" dependencies
265
266 Version 0.6.26
267 - export solvable_matchesdep function, as we now
268   use it in the bindings
269
270 Version 0.6.25
271 - new features:
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
277  
278 Version 0.6.24
279 - new features:
280   * new SOLVER_FLAG_FOCUS_BEST flag
281
282 Version 0.6.22, 0.6.23
283 - bug fix releases, no new features
284
285 Version 0.6.21
286 - new features:
287   * SOLVER_FAVOR and SOLVER_DISFAVOR job types
288 - new functions:
289   * selection_make_matchdepid
290   * pool_whatcontainsdep
291   * pool_parserpmrichdep
292
293 Version 0.6.20
294 - new features:
295   * filter Requires(pre,post) for installed packages
296
297 Version 0.6.13:
298 - new features:
299   * SOLVER_ALLOWUNINSTALL job type
300   * ordercycle introspection
301 - new functions:
302   * transaction_order_get_cycle
303   * transaction_order_get_cycleids
304
305 Version 0.6.12:
306 - new features:
307   * tcl bindings
308 - new functions:
309   * solv_chksum_cmp
310
311 Version 0.6.11:
312 - new functions:
313   * pool_ids2whatprovides
314
315 Version 0.6.9:
316 - new features:
317   * much improved package choosing code
318   * new testcase dependency format
319   * alternatives introspection
320 - new functions:
321   * pool_deb_get_autoinstalled
322   * solver_alternative2str
323   * solver_alternatives_count
324   * solver_get_alternative
325   * solver_rule2pkgrule
326   * testcase_dep2str
327
328 Version 0.6.5:
329 - new features:
330   * support yum style obsolete handling
331
332 Version 0.6.1:
333 - API change:
334   repodata_stringify() now returns the string
335 - new features:
336   * add BREAK_ORPHANS and KEEP_ORPHANS solver flags
337
338 Version 0.6.0:
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
343     constructors
344   * changed Datamatch results from methods to
345     attributes
346   * automatically delete the pool if the owner
347     object is freed (use the disown method to
348     get the old behavior).
349 - new functions:
350   * pool_add_userinstalled_jobs
351   * solver_get_userinstalled
352