repoman: Warn if virtuals depend on perl-core, bug 516428
[proj/portage.git] / NEWS
1 News (mainly features/major bug fixes)
2
3 portage-2.2.1
4 -------------
5
6 * Add cgroups, ipc-sandbox, and network-sandbox FEATURES.
7
8 portage-2.2
9 -------------
10
11 * Add extended set configuration via /etc/portage/sets.conf. See
12   /usr/share/portage/config/sets/portage.conf for examples.
13
14 portage-2.1.11.20
15 -------------
16 * Add support for EAPI 5. Refer to the PMS EAPI Cheat Sheet, portage's html
17   docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 5.
18 * Add support for FEATURES=preserve-libs which preserves libraries when the
19   sonames change during upgrade or downgrade, and the @preserved-rebuild
20   package set which rebuilds consumers of preserved libraries.
21 * Add link level dependency awareness to emerge --depclean and --prune actions
22   in order to protect against uninstallation of required libraries. Refer to
23   the --depclean-lib-check option in the emerge(1) man page.
24
25 portage-2.1.11
26 -------------
27
28 * Add support for experimental EAPI "4-slot-abi". Refer to the corresponding
29   html documentation that is installed with USE=doc, and also to the emerge(1)
30   man page for information about the related --ignore-built-slot-operator-deps and
31   --rebuild-if-new-slot options.
32
33 portage-2.1.10
34 -------------
35
36 * Improve handling of repositories/overlays for cases in which the same ebuild
37   is provided by multiple repositories but with different masking status, and
38   support for repository constraints on atoms (atom::repo) in configuration
39   files.
40 * Add emerge --rebuild-if-* options that trigger rebuilds of reverse
41   dependencies when packages are rebuilt or updated. Related --rebuild-exclude
42   and --rebuild-ignore options can be used to avoid rebuilds for specific
43   packages.
44 * Add emerge --reinstall-atoms, --useoldpkg-atoms, and --usepkg-exclude options
45   which can be used to alter selection rules for specific packages.
46 * Add FEATURES=parallel-install and ebuild-locks, allowing for greater
47   parallelization when installing packages (by using finer-grained locks).
48
49 portage-2.1.9.27
50 -------------
51
52 * Add support for EAPI 4. Refer to the PMS EAPI Cheat Sheet, portage's html
53   docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 4.
54   Bug #273620 tracks EAPI 4 implementation in portage.
55
56 portage-2.1.9
57 -------------
58
59 * There is a new ipc (inter-process communication) USE flag which is enabled
60   by default. This allows portage to communicate with running ebuild processes,
61   for things like best_version, has_version, and die calls in nested processes.
62   This flag should remain enabled unless it is found to be incompatible with a
63   specific profile or environment. When enabled, it fixes bug #278895,
64   bug #315615, and makes subshell die support more robust (so that repoman's
65   ebuild.nesteddie check is irrelevant).
66
67 portage-2.1.8
68 -------------
69 * The top-level __init__.py for the portage python package has been split into
70   many smaller python modules, making the code easier to navigate and allowing
71   small parts of the portage api to be imported with less overhead.
72
73 portage-2.1.7.17
74 -------------
75 * Add support for EAPI 3. This adds support for installation prefix, including
76   new EPREFIX, ED, and EROOT variables which are used by econf and einstall
77   helpers. Also, EAPI 3 adds xz extension support to the unpack helper.
78
79 portage-2.1.7
80 -------------
81
82 * Add license visibility filtering (GLEP 23)
83 * Add --accept-properties option for emerge which allows you to use
84   --accept-properties=-interactive in order to temporarily exclude
85   interactive updates.
86 * Add support for Python 3.0. At least Python 2.6 is now required in order to
87   support the new syntax which is used by Python 3.0.
88
89 portage-2.1.6
90 -------------
91
92 * Add support for a new EAPI="2" value. For more information about new EAPI
93   features, refer to the "Ebuild" chapter of the html documentation that is
94   installed with portage.
95 * Add PORTAGE_IONICE_COMMAND setting for make.conf which is called to adjust
96   IO priority on portage and it's subprocesses.
97 * Add emerge --jobs and --load-average options which specify behavior
98   for building packages in parallel or for generating metadata in parallel
99   with emerge --regen.
100 * Add emerge --keep-going option to continue as much as possible after
101   an error. When an error occurs, dependencies are recalculated for
102   remaining packages and any with unsatisfied dependencies are
103   automatically dropped. The --skipfirst option automatically drops
104   packages in the same way, and also drops any masked packages.
105 * Add git and subversion support for repoman.
106 * It is now possible to use `emerge <file>` to reinstall the package that
107   installed a particular file. Package contents entries are indexed to
108   improve performance. A command such as `emerge /lib/modules` can serve
109   as a decent substitute for module-rebuild.
110 * Namespace sanitizing: move all portage related code into portage.* namespace,
111   rename portage_foo modules to portage.foo (but keep symlinks for compability)
112 * Add support for news items (GLEP 42)
113 * Add FEATURES=protect-owned which is identical to the collision-protect
114   feature except that files may be overwritten if they are not explicitly
115   listed in the contents of a currently installed package.
116
117 portage-2.1.5
118 -------------
119
120 * For extra careful dependency handling, emerge has a new --complete-graph
121   option that causes it to consider the deep dependencies of all packages from
122   the system and world sets. With this option enabled, emerge will bail out
123   if it determines that the given operation will break any dependencies of
124   the packages that have been added to the graph. Unlike the --deep option,
125   the --complete-graph option does not cause any more packages to be updated
126   than would have otherwise been updated with the option disabled.
127 * Blockers are now resolved automatically in many more cases
128   than before.  When it's safe, blocked packages are uninstalled
129   automatically so that users are no longer inconvenienced with the
130   task. Automatically uninstalled packages are displayed in the merge
131   list, marked "uninstall" and highlighted in red. With the --tree
132   option enabled, it's possible to see which package(s) caused other
133   ones to be automatically uninstalled.
134 * The dependency resolver now has a feedback mechanism that helps make atom
135   selections more consistent with previous selections that have been added to
136   the graph. This solves some common cases of bug #1343.
137
138 portage-2.1.4
139 -------------
140
141 * After the initial setup phase, the original ebuild and eclasses are no
142   longer needed because the same ebuild environment is reused for the
143   entire lifecycle of the package, including uninstallation.
144 * The emerge --search action supports searching of both installed and binary packages
145   The --usepkg and --usepkgonly options control which repositories are searched.
146
147 portage-2.1.3
148 -------------
149
150 * Allow per-module setting of PORTAGE_ELOG_CLASSES
151 * Add new elog module "echo" to simply display messages when emerge exits
152 * Add ** as new token for package.keywords to bypass the keyword visibility layer
153 * USE_EXPAND variables such as LINGUAS support a * wildcard that will enable
154   all of the corresponding flags that are listed in IUSE for a given package.
155   USE_EXPAND wildcards such as linguas_* are supported in USE and package.use.
156 * The merge process preserves the modification timestamp of files that it
157   installs. The unmerge process will not uninstall files that are claimed by
158   another package in the same slot.
159 * PDEPEND is now installed as soon as possible so that it behaves more like
160   RDEPEND.  This makes PDEPEND more useful for breaking the dependency cycles
161   that are sometimes triggered by RDEPEND and DEPEND.
162 * Enable "echo" and "save_summary" elog modules by default
163 * Fix -* handling in package.keywords to work as intended (reset the accepted 
164   keywords list), also see RELEASE-NOTES.
165 * Make elog functionality available to python code
166
167 portage-2.1.2
168 -------------
169
170 * Ebuilds support default USE flags via +flag in IUSE.
171 * New-style virtuals are now usable for packages that depend on themselves for
172   bootstrap.
173 * Profiles support multiple inheritance and package.use.
174 * CONFIG_PROTECT and CONFIG_PROTECT_MASK both support files (not just
175   directories).
176 * Collision protection handles symlinks properly.
177 * Dependencies can be satisfied by installed packages that do not have matching
178   ebuilds in the portage tree or overlay.
179 * Emerge automatically ignores blockers that are made irrelevant by an upgrade.
180 * Emerge supports "reverse blocker detection" which means that the blockers of
181   installed packages will always be respected.
182 * Emerge builds a complete dependency graph in order to ensure correct merge
183   order and detection of circular dependencies.
184 * The world and system sets allow automatic update of all installed slots.
185 * DEPEND atoms support SLOT dependencies of the form ${CATEGORY}/${PN}:${SLOT}.
186 * Development: Extend PYTHONPATH support to allow overriding the hardcoded 
187   /usr/lib/portage/pym for development/testing purposes
188 * New "finalize" hook for elog modules enabling modules to perform actions on 
189   shutdown (like dispatching collected messages).
190 * New elog modules mail_summary and save_summary that act like the mail/save
191   modules except that they merge messages from multiple packages in a single
192   file/mail.
193 * New QA loglevel and matching eqawarn function
194 * `ebuild foo test` now always runs src_test if available
195 * If DOC_SYMLINK_DIR is set portage installs symlinks to html documention there
196 * FEATURES="test" automatically implies USE="test".
197
198 portage-2.1.1
199 -------------
200
201 * Profiles support use.force, package.use.force, and package.use.mask files.
202
203 portage-2.1 (ongoing via pre releases)
204 ------------
205
206 * FEATURES="confcache" integration; global caching to speed up configure calls, 
207   requires dev-util/confcache
208 * elog framework and accompanying modules for logging ebuild warnings, errors
209   and general notices. Collects eerror/ewarn/elog/einfo messages.
210 * New elog function (should replace einfo in many cases)
211 * version syntax enhancements allowing multiple suffixes and a new 'cvs'
212   version prefix for denoting "live sources" ebuilds.
213 * config files as directories enabling more flexible settings management.
214 * Addition of an register_die_hook method that allows ebuild/eclasses to
215   register functions to be called for better debugging on errors.
216 * Addition of pre and post user hookable functions for each ebuild phase, accessible 
217   via portage bashrc.  Example would be pre_src_unpack .
218 * cache refactoring- runtime improvement from 35% -> 65%.
219 * Intelligently handle and display USE_EXPAND-based IUSE variables.
220 * FEATURES="parallel-fetch".  Download in parallel to compilation.
221 * Include a "changed or new" USE flag output when --verbose isn't specified.
222 * Support for splitting out debug information into separate files in
223   /usr/lib{,32,64}.
224 * exec subsystem refactoring (now with less bugs!)
225 * Added sha256 and rmd160 hashes for digests/manifests
226 * Make --emptytree only apply to ${ROOT} rather than always including /.
227 * Allow packages to be upgraded that are only depended on via a
228   "|| ( =cat/pkg-1* =cat/pkg-2* )" construct.
229 * Ebuild output is no longer cut off early when using PORT_LOGDIR.
230 * Distfiles indirection- $DISTFILES access goes through a tmp dir to fail
231   access to files not listed in SRC_URI.
232 * Emerge now uses --resume to restart itself after portage upgrade.
233 * Atomic file updates via the new atomic_ofstream class.
234 * Global updates and fixpackages performance optimizations.
235 * Tests show that file locking is now more reliable.
236 * A bash call stack is printed when an ebuild dies in ebuild.sh.
237 * New rsync option handling by using a generic PORTAGE_RSYNC_EXTRA_OPTS variable
238 * Manifest2 support that will allow digest-* files to be eliminated from the tree.