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