root/releases/pkgcore/0.2.12/NEWS @ ferringb%2540gmail.com-20070329163512-1kefqolps4gf32v1

Revision ferringb%2540gmail.com-20070329163512-1kefqolps4gf32v1, 18.7 kB (checked in by Brian Harring <ferringb@…>, 20 months ago)

version 0.2.12

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