root/releases/pkgcore/0.2.7/NEWS @ ferringb%2540gmail.com-20070304145601-c9ycx1pmro7kpqzc

Revision ferringb%2540gmail.com-20070304145601-c9ycx1pmro7kpqzc, 14.7 kB (checked in by Brian Harring <ferringb@…>, 21 months ago)

make layman sync'ing able to be disabled by FEATURES=-layman-sync, update NEWS with that and the gnuconfig tarball idiocy fix, and bump to 0.2.7

Line 
1Pkgcore Release Notes
2=====================
3
4See ChangeLog for full commit logs; this is summarized/major changes.
5
6pkgcore 0.2.7:
7
8* layman configuration (if available) is now read for portage configuration for
9  sync URI for overlays.  tar syncer is currently unsupported; others may be buggy.
10  Feed back desired (author doesn't use layman).  Ticket #11.  If you want it
11  disabled, add FEATURES=-layman-sync .
12
13* another fix for daft tarballs that try to touch cwd.
14
15pkgcore 0.2.6:
16
17* make intersecting ~ and =* atoms work again (used by pquery --revdep)
18
19* catch a corner case py2.5 bug where AttributeError bleeds through from
20  generic_equality.
21
22* Via solars prodding, finished up the remaining bits for ROOT support.
23
24* resolver traceback for if a requested atom is already known as insoluable.
25  Thanks to kojiro for spotting it.
26
27* misc bash code cleanup.
28
29* PATH protection has been loosened slightly to enable 'weird' eclasses that
30  are doing global PATH mangling.
31
32* $HOME location for building was shifted into the targeted packages
33  directory, rather then a shared within $PORTAGE_TMPDIR.
34
35* setgid/setuid triggers now match portage behaviour; -s,o-w mode change.
36
37* trigger warnings are now enabled.
38
39* New default trigger added; CommonDirectoryModes, checks for common
40  directories (/usr, /etc, /usr/bin, /usr/lib for example) in the merge set,
41  checking the packages specified modes for them.  If not 0755, throws a
42  warning.
43
44* For directory on directory merging, ensure_perms (default op) was changed
45  to preserve the existing directories permissions.  Generally speaking, this
46  means that later versions of an ebuild have to use post_inst to correct the
47  perms if they're incorrect- previously, the new perms/mode were forced on
48  the existing.  Several common ebuilds (openssl for example) will generate
49  weird modes on common directories however (heavily restricted perms), which
50  can break things.  For the time being, the default is scaled down to the
51  looser form portage does.
52
53* added man page generation: pquery, pmerge
54
55* pconfig now has a "dump-uncollapsed" command to dump the "raw" config.
56
57* pebuild now supports --no-auto to run just the targeted phase.
58
59* mass expansion of test coverage: pkgcore.restrictions.*,
60  pkgcore.util.*, pkgcore.ebuild.*
61
62* minor cleanup of pkgcore.test.ebuild.test_cpv to reduce redundant data sets;
63  total testcase runtime reduction by about a third.
64
65* diverge from unittest.TestCase to provide extra checks for normal asserts-
66  assertNotEqual for example, checks both __eq__ and __ne__ now to smoke out
67  any potential oversights in object equality implementation.
68
69* use nsec mtime resolution if available to match python stdlib.
70
71* env var PORTAGE_DEBUG for controlling how much debug info the ebuild env
72  generates is now PKGCORE_DEBUG; range is the same, 0 (none), 1 (just the
73  ebuild/eclass), 2 (1 + relevant setup code), 3 (2 + filter-env data),
74  4 (everything).
75
76
77pkgcore 0.2.5:
78
79* handle corner case in depend cycle processing where a package directly
80  depends upon itself; fixes processing of sys-devel/libtool specifically.
81
82* for pquery --attr keywords, sort by arch, not by stable/unstable.
83
84* correct misc corner case atom bugs; an intersection bug, miss on an invalid
85  use dep atom lacking a closure in cpy atom, verification of use chars in
86  native atom,
87
88* osutils extensions tests, correcting a few cpy differences in behaviour from
89  native.
90
91* For unpacking a tarball that doesn't have it's files in a subdir, tar will
92  occasionally try to utime the cwd resulting in a failure- uid owner for
93  WORKDIR was changed to allow tar to do the utime, thus succeed in unpacking.
94  Only visible for userpriv and with oddball packages, gnuconfig for example.
95
96* Cleanup of a few slow test cases; running the test suite should now be around
97  25%-33% faster.
98
99
100pkgcore 0.2.4:
101
102* refactoring of trigger implementations- cleanup and tests.  Additionally,
103  eliminate a potential mtime based frace if the underlying fs (or python
104  version) doesn't do subsecond resolution.
105
106* force FEATURES into the exported ebuild env always.
107
108* for pmerge -p $target, which prefers reuse normally, *still* prefer the
109  highest versions, just examine vdb first, then nonvdb.
110
111* minor optimization in readlines usage in the backend; kills off a duplicate
112  stat call.
113
114* if a stale cache entry is detected, and the backend is writable, wipe the
115  cache entry.  Little bit slower when detected, but saves parsing the file
116  next time around.
117
118
119pkgcore 0.2.3:
120
121* support for ** in package.keywords
122
123* export preparsed SLOT to ebuild env; ebuilds shouldn't rely on this
124  since it can lead to fun metadata issues, but certain eclasses do.
125
126* fix exporting finalized form of RESTRICT to the build env; ticket 61.
127
128* fix for RESTRICT=fetch to not treat the filename as a uri.
129
130* expose the full make.conf environment to FETCHCOMMAND and RESUMECOMMAND-
131  ticket 58
132
133* added support for make.conf defined FETCH_ATTEMPTS; max # of unique uris to
134  attempts per file before giving up, defaults to 10.
135
136* added int_parser type for config instantiation definitions (ConfigHint),
137  and usual introspection support.
138
139* fix regression limiting satisifiers for depends to installed only in corner
140  case installed bound cycles; automake/perl specifically trigger this, thus
141  most folks should have seen it if using -B.
142
143* Better handling of non-ascii characters in metadata.xml.
144
145
146pkgcore 0.2.2:
147
148* The terminfo db is now used for xterm title updates. If title updates
149  worked in pkgcore 0.2 or 0.2.1 and no longer work in 0.2.2 file a bug and
150  include the TERM environment variable setting.
151
152* misc fixup for asserts in cpy code when debugging is enabled, and closing
153  directory fds when corner case error paths are taken (out of memory for
154  example).
155
156* atoms are picklable now.
157
158* add tests for pmaint copy (quickpkg equivalent), and add
159  --ignore-existing option to copy just pkgs that don't exist in the
160  target repo.
161
162* fix pmerge handling of --clean -B for automake and a few other DEPEND level
163  hard cycles.
164
165
166pkgcore 0.2.1:
167
168* fix corner case for portage configuration support; old system (<=2004)
169  installations may have /etc/portage/sets/world, which confused pmerges
170  world updating, leading to writing bad entries.  Ticket 54.
171
172* fix issues with distcc/ccache (ticket 55) so that they actually work.
173
174* fix pconfig dump traceback; ticket 56.
175
176
177pkgcore 0.2:
178
179* glsa pkgset will now include metadata/glsa from overlays.
180
181* pmaint script; tool for --sync'ing, doing quickpkging, moving packages
182  between repos for repository conversions. General repository maintenance.
183
184* sync subsystem: supports bzr, cvs, darcs, git, mercurial (hg), rsync,
185  and subversion.
186
187* binpkg repositories now support modification; FEATURES=buildpkg basically
188
189* binpkg contents handling is significantly faster.
190
191* pmerge:
192  * supports --ask (thanks to nesl247/alex heck)
193  * pmerge --replace is default now; use --noreplace for original behaviour.
194  * 'installed' set was added; is a pkgset comprised of all slotted atoms from
195    the vdb; useful for pmerge -u to enable upgrades of *everything* installed.
196  * versioned-installed set was added; useful for -e, this set is compromised
197    of exact version of everything installed.
198  * added --with-built-depends, -B; resolver defaults to ignoring 'built'
199    ebuild depends (those from vdb, from binpkgs for example), this option
200    tells it to update those depends.
201
202* xterm titles
203
204* massive resolver cleanup, and general fixes.
205
206* rewritten plugins system, register_plugins is no longer used.
207 
208* paludis flat_list cache read/write support.
209
210* portage flat_list cache write support (cache used for
211  $PORTDIR/metadata/sync)
212 
213* pebuild/pregen/pclone_cache: heavy UI cleanup.
214 
215* pquery:
216  * prettier printing of depends/rdepends/post_rdepends under -v
217  * print revdep reasons
218  * now requires an arg always; previously defaulted to '*', which is
219    still supported but also accessible via --all .
220  * added --maintainers-email and --maintainers-name; use case insensitive
221    regex by default for --maintainer style options.
222
223* added repo_id atom extension; see doc/extended-atom-syntax.rst for details.
224  short version, sys-apps/portage::gentoo would match portage *only* from
225  ``gentoo`` repository.
226
227* overlays now combine mirror targets from their parent repository, and
228  from their own repository data.
229
230* configuration subsystem:
231  * configuration: lazy section refs were added (lazy_ref), useful for when
232    the object arguement needs to be instantiated rarely (syncers for
233    repositories for example).
234
235  * mke2fs (literal /etc/mke2fs.conf file) akin configuration format was
236    added, pkgcore.config.mke2fsformat.config_from_file .
237
238* expanded test coverage.
239 
240* merged standalone test runner into setup.py; prefered way of running it is
241  ``python setup.py test`` now.
242
243* ongoing portage configuration support additions-
244  * FEATURES=collision-protect support
245  * INSTALL_MASK support, FEATURES noinfo, nodoc, and noman support.
246  * /etc/portage/package.* files can be directories holding seperate files
247    to collapse
248
249* gnu info regeneration trigger added.
250
251* performance improvements:
252  * cpython extensions of select os.path.* functionality; 20x boost for what
253    was converted over (stdlib's posix module is a bit inefficient).
254 
255  * cpython extension for file io in pkgcore.util.osutils: 7x faster on ENOENT
256    cases, 4x-5x on actual reading of small files (think cache files).  If
257    iterating over lines of a file, use pkgcore.util.osutils.readlines- again,
258    faster then standard file object's equivalent- 3x reduction (7.6ms to 2.5ms
259    for full contents  reading).
260
261  * partial cpython reimplementation of atom code; mainly parsing, and
262    critical __getattr__ invocation (2+x faster parse).
263 
264  * partial cpython reimplementation of depset code; strictly just parsing.
265    Faster (given), but mainly is able to do optimizations to the depset
266    cheaply that python side is heavily slowed down by- ( x ( y ) ) becomes
267    ( x y ) for example.
268
269  * chunks of restriction objects were pushed to cpython for memory reasons,
270    and bringing the instantiation cost down as low as possible (the common
271    restrict objects now are around 1-3us for new instantation, .5 to 1us
272    for getting a cached obj instead of instantiating).
273
274  * bug corrected in base repo classes identify_candidates method; should now
275    force a full walk of the repo only when absolutely required.
276
277  * chksuming now does a single walk over a file for all checksummers,
278    instead of one walk per checksummer- less disk thrashing, better
279    performance.
280
281  * vdb virtuals caching; massive performance boost via reduced IO.  Relies on
282    mtime checks of vdb pkg directories for staleness detection,
283    auto-regenerating itself as needed.
284
285* heavy profile code cleanup; should only read each common profile node once
286  now when loading up multiple profiles (pcheck).  Far easier code to read
287  in addition.
288
289* cache eclass staleness verification now relies on mtime comparison only-
290  allows for eclasses to move between repos; matches portage behaviour.
291
292* pkgcore.util.caching.*, via __force_caching__ class attr in consumers, can
293  be used to force singleton instance creation/caching (error if unhashable).
294
295* ebuild support:
296  * PORTAGE_ACTUAL_DISTDIR was reenabled, thus cvs/svn equivalent ebuilds are
297    usable once again.
298  * fixed pkgcore's pkgcore emulation of has_version/best_version matching
299    behaviour for old style virtuals to match portages (oddity, but ebuilds
300    rely on the goofy behaviour).
301  * various fixups to unpack function; should match portage behaviour as of
302    01/07 now.
303  * if FEATURES=test, set USE=test; if USE=test has been explicitly masked for
304    a package, disable src_test run; matches portage 2.1.2 behaviour.
305  * cleanup build directory, and unmerge directories upon finishing
306
307* filter-env now is accessible directly via python; pkgcore.ebuild.filter_env .
308  Needs further work prior to being usable for pcheck inspection of ebuilds,
309  but it's a good start.
310
311
312pkgcore 0.1.4:
313
314* Compatibility with caches written by portage 2.1.2_pre3-r8.
315
316
317pkgcore 0.1.3:
318
319* Always process "|| ( a b )" in the right order.
320
321  * Fix disabling a flag in package.use.mask or package.use.force.
322
323
324pkgcore 0.1.2:
325
326* Make filter_env work on hppa (and possibly more architectures) where using
327  python CFLAGS for this standalone binary does not work.
328
329* Fall back to plain text output if the TERM variable is unsupported.
330
331* Deal with dangling symlinks in binpkg repositories.
332
333* Fix expanding of incrementals (like USE) in make.defaults.
334
335* pquery: support --attr fetchables, handle extra commandline arguments as
336  -m or --expr restrictions.
337
338* USE deps once again allow setting a flag only if it is actually settable
339  on the target package.
340
341
342pkgcore 0.1.1:
343
344* hang fix for test_filter_env
345 
346* package.keywords fixes: no longer incremental, supports '*' and '~*'
347  properly
348 
349* FEATURES="userpriv" support works again.
350 
351* pmerge repository ordering now behaves properly; prefers src ebuilds, then
352  built pkgs; -k inverts that (previously was semi-undefined)
353 
354* binpkg fixes: run setup phase
355 
356* replace op fixes: force seperate WORKDIR for unmerge to protect against
357  env collisions
358 
359* loosened category rules: allow _. chars to support cross-dev hack.
360 
361* build fixes: make $A unique to avoid duplicate unpacks; force distdir
362  creation regardless of whether or not the pkg has any stated SRC_URI
363  (fixes cvs and subversion eclsas usage).  Fix sandbox execution to chdir
364  to an existant directory (sandbox will fail if ran from a nonexistant dir).
365 
366* change DelayedInstantiation objects to track __class__ themselves; this
367  fixes pquery to properly shutdown when ctrl+c'd (previously could swallow
368  the interrupt due to cpython isinstance swallowing KeyboardInterrupt).
369 
370 
371pkgcore 0.1:
372
373Initial release.
374 
375* Sync functionality doesn't yet exist (pmaint script will be in 0.2)
376 
377* pmerge vdb modification requires --force; this will be disabled in 0.2,
378  mainly is in place so that folks who are just looking, don't inadvertantly
379  trigger an actual modification.
380 
381* not all portage FEATURES are implemented; same for QA.
382 
383* If overlays are in use, pkgcore may defer to its' seperate cache to avoid
384  pkgcore causing cache regen for portage (and vice versa); this occurs due
385  to pkgcore treating overlays as their own repo and combining them at a
386  higher level; portage smushes them all together thus rendering each subtree
387  unusable in any standalone fashion.
388
389* pkgcore is far more anal about blocking bad behaviour in ebuilds during
390  metadata regeneration; tree is clean, but if you do something wrong in
391  global scope, it *will* catch it and block it.
392 
393* EBD; daemonized ebuild.sh processing (effectively), pkgcore reuses old
394  ebuild.sh processes to avoid bash startup, speeding regen up by roughly
395  2x.
Note: See TracBrowser for help on using the browser.