root/releases/pkgcore/0.2.11/NEWS @ ferringb%2540gmail.com-20070328010421-coumaxytmet4q4ga

Revision ferringb%2540gmail.com-20070328010421-coumaxytmet4q4ga, 18.0 kB (checked in by Brian Harring <ferringb@…>, 20 months ago)

COLON_SEPARATED, not COLON_SEPERATED; also ticket #74, parse "x=y@a" properly.

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