root/releases/pkgcore/0.2.13/NEWS @ ferringb%2540gmail.com-20070330165312-h1byfqkov62rdhai

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

ignore symlinks over directories if the target is known, and is a directory

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