Add a note about preservation of timestamps on merged files.
[portage.git] / NEWS
1 News (mainly features/major bug fixes)
2
3 portage-2.2
4 -------------
5
6 * Allow per-module setting of PORTAGE_ELOG_CLASSES
7 * Namespace sanitizing: move all portage related code into portage.* namespace,
8   rename portage_foo modules to portage.foo (but keep symlinks for compability)
9 * Add license visibility filtering (GLEP 23)
10 * Add new elog module "echo" to simply display messages when emerge exits
11 * Enable "echo" and "save_summary" elog modules by default
12 * Fix -* handling in package.keywords to work as intended (reset the accepted 
13   keywords list), also see RELEASE-NOTES.
14 * Experimental support for preserving old library files on package upgrades
15   based on FEATURES=preserve-libs, USE AT YOUR OWN RISK!!!
16 * Make elog functionality available to python code
17 * Add support for news items (GLEP 42)
18
19 portage-2.1.3
20 -------------
21
22 * Add ** as new token for package.keywords to bypass the keyword visibility layer
23 * USE_EXPAND variables such as LINGUAS support a * wildcard that will enable
24   all of the corresponding flags that are listed in IUSE for a given package.
25   USE_EXPAND wildcards such as linguas_* are supported in USE and package.use.
26 * The merge process preserves the modification timestamp of files that it
27   installs. The unmerge process will not uninstall files that are claimed by
28   another package in the same slot.
29
30 portage-2.1.2
31 -------------
32
33 * Ebuilds support default USE flags via +flag in IUSE.
34 * New-style virtuals are now usable for packages that depend on themselves for
35   bootstrap.
36 * Profiles support multiple inheritance and package.use.
37 * CONFIG_PROTECT and CONFIG_PROTECT_MASK both support files (not just
38   directories).
39 * Collision protection handles symlinks properly.
40 * Dependencies can be satisfied by installed packages that do not have matching
41   ebuilds in the portage tree or overlay.
42 * Emerge automatically ignores blockers that are made irrelevant by an upgrade.
43 * Emerge supports "reverse blocker detection" which means that the blockers of
44   installed packages will always be respected.
45 * Emerge builds a complete dependency graph in order to ensure correct merge
46   order and detection of circular dependencies.
47 * The world and system sets allow automatic update of all installed slots.
48 * DEPEND atoms support SLOT dependencies of the form ${CATEGORY}/${PN}:${SLOT}.
49 * Development: Extend PYTHONPATH support to allow overriding the hardcoded 
50   /usr/lib/portage/pym for development/testing purposes
51 * New "finalize" hook for elog modules enabling modules to perform actions on 
52   shutdown (like dispatching collected messages).
53 * New elog modules mail_summary and save_summary that act like the mail/save
54   modules except that they merge messages from multiple packages in a single
55   file/mail.
56 * New QA loglevel and matching eqawarn function
57 * `ebuild foo test` now always runs src_test if available
58 * If DOC_SYMLINK_DIR is set portage installs symlinks to html documention there
59 * FEATURES="test" automatically implies USE="test".
60
61 portage-2.1.1
62 -------------
63
64 * Profiles support use.force, package.use.force, and package.use.mask files.
65
66 portage-2.1 (ongoing via pre releases)
67 ------------
68
69 * FEATURES="confcache" integration; global caching to speed up configure calls, 
70   requires dev-util/confcache
71 * elog framework and accompanying modules for logging ebuild warnings, errors
72   and general notices. Collects eerror/ewarn/elog/einfo messages.
73 * New elog function (should replace einfo in many cases)
74 * version syntax enhancements allowing multiple suffixes and a new 'cvs'
75   version prefix for denoting "live sources" ebuilds.
76 * config files as directories enabling more flexible settings management.
77 * Addition of an register_die_hook method that allows ebuild/eclasses to
78   register functions to be called for better debugging on errors.
79 * Addition of pre and post user hookable functions for each ebuild phase, accessible 
80   via portage bashrc.  Example would be pre_src_unpack .
81 * cache refactoring- runtime improvement from 35% -> 65%.
82 * Intelligently handle and display USE_EXPAND-based IUSE variables.
83 * FEATURES="parallel-fetch".  Download in parallel to compilation.
84 * Include a "changed or new" USE flag output when --verbose isn't specified.
85 * Support for splitting out debug information into separate files in
86   /usr/lib{,32,64}.
87 * exec subsystem refactoring (now with less bugs!)
88 * Added sha256 and rmd160 hashes for digests/manifests
89 * Make --emptytree only apply to ${ROOT} rather than always including /.
90 * Allow packages to be upgraded that are only depended on via a
91   "|| ( =cat/pkg-1* =cat/pkg-2* )" construct.
92 * Ebuild output is no longer cut off early when using PORT_LOGDIR.
93 * Distfiles indirection- $DISTFILES access goes through a tmp dir to fail
94   access to files not listed in SRC_URI.
95 * Emerge now uses --resume to restart itself after portage upgrade.
96 * Atomic file updates via the new atomic_ofstream class.
97 * Global updates and fixpackages performance optimizations.
98 * Tests show that file locking is now more reliable.
99 * A bash call stack is printed when an ebuild dies in ebuild.sh.
100 * New rsync option handling by using a generic PORTAGE_RSYNC_EXTRA_OPTS variable
101 * Manifest2 support that will allow digest-* files to be eliminated from the tree.