root/releases/pkgcore/0.2.10/NEWS @ ferringb%2540gmail.com-20070327110104-5kal9xxyp98a3ka8

Revision ferringb%2540gmail.com-20070327110104-5kal9xxyp98a3ka8, 17.8 kB (checked in by Brian Harring <ferringb@…>, 20 months ago)

bump to 0.2.10

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