root/releases/pkgcore/0.2.14/NEWS @ ferringb%2540gmail.com-20070408184133-4wd1fy4x03bwusb4

Revision ferringb%2540gmail.com-20070408184133-4wd1fy4x03bwusb4, 19.4 kB (checked in by Brian Harring <ferringb@…>, 20 months ago)

bump to 0.2.14

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