root/pkgcore/NEWS @ ferringb%2540gmail.com-20100215031500-hdca8v3e6l9j44lp

Revision ferringb%2540gmail.com-20100215031500-hdca8v3e6l9j44lp, 55.6 KB (checked in by Brian Harring <ferringb@…>, 3 weeks ago)

minor tweak to whitespace to force a full rebuild

Line 
1Pkgcore Release Notes
2=====================
3
4See ChangeLog for full commit logs; this is summarized/major changes.
5
6* FEATURES=splitdebug works once again.
7
8* It's strongly suggested that you run >snakeoil-0.3.6.1 due to fixes
9  in extension building- specifically forcing -fno-strict-aliasing back
10  into cflags since python is invalidly dropping them out.
11
12  In addition, if you're running pkgcore on a py3k machine, installation
13  now is parallelized for 2to3 conversion- should be a fair bit faster.
14
15* rename support for env var CONFIG_ROOT to PORTAGE_CONFIGROOT; seems
16  that changed in portage at some point.  This should fully restore
17  crossdev support.
18
19
20pkgcore 0.5.10: February 7th, 2010
21
22* ticket 235; CBUILD/CTARGET values were being stomped w/ CHOST.
23
24* EAPI=3 support; pkgcore already preserved mtimes at the second level,
25  remaining bits were added for full EAPI3 support.
26
27  Pkgcore doesn't currently fully PREFIX offset merges, but that will be
28  added in the next release or two most likely.
29
30* EBUILD_PHASE was set to setup-binpkg for pkg_setup phase w/ binpkgs-
31  ebuilds expected setup however, thus EBUILD_PHASE is now set to setup
32  always for pkg_setup phase.
33
34* fixup env filtering- backslash escaping wasn't needed in the patterns
35  resulting in failed matches.  Mostly protective cleanup.
36
37* tweak cache backend to not stamp cache entries where mtime is no longer
38  external w/ an mtime of '-1'.  Didn't hurt anything but was a pointless op.
39
40* fix the cpy incremental_expansion implementation; not sure how it slipped
41  in being slower then native python, but the cpy version is now 60% faster
42  than the native equivalent.
43  Additionally, this extension is now disabled under py2.4 since it makes
44  heavy use of PySet apis.
45
46* ticket 234; handle refs properly in dhcpformat/mke2fsformat.
47
48* pkgcore atom objects blocks_temp_ignorable data is now stored in
49  blocks_strongly; the old attr is aliased, although will be removed.
50
51* pkgcore now supports revisions of arbitrary length (previously was <31 bits).
52
53
54pkgcore 0.5.9: January 8th, 2010
55
56* this release of pkgcore requires snakeoil >=0.3.6
57
58* expand repository api slightly adding has_match; this is intended
59  as a simple boolean check if a repo has it.  It should *only* be
60  used for containment- if you need the results don't test then itermatch,
61  just itermatch.
62
63* add cpy implementation of PackageRestriction.match
64
65* for package.provided repositories, short circuit their itermatch/match
66  if there aren't any results possible.
67
68* re-enable cpython implementation of DepSet parsing for eapi2- roughly
69  a 31% speedup for current gentoo-x86 repository dependency parsing.
70
71* performance improvements to pquery --attr alldepends; specifically
72  depset.stringify_boolean is now 20% faster.
73
74* performance improvements to pquery --attr alldepends -v
75
76
77pkgcore 0.5.8: December 27th, 2009
78
79* >snakeoil-0.3.4 is required for this release.
80
81* key is reused as cpvstr for memory savings where possible in cpv
82  extension objects.
83
84* cpv extension objects now intern package, category, and key for
85  memory reduction reasons.
86
87* various slot fixups to reduce memory usage and potential corner case
88  bugs.
89
90* fix the scenario where there is one repo returned from the domain for
91  pmerge... crappy bug feedback on that one lead to it slipping by.
92
93
94pkgcore 0.5.7: December 22, 2009
95
96* added pinspect script; used for basic reporting of metadata usage,
97  and inspection of pkgsets.  Bit simple, but will be expanded down the line.
98
99* filter-env is now installed into PATH; cli api isn't considered stable,
100  but it should be useful for folks playing w/ bash environments or doing
101  ebuild inspection.
102
103* correct a tb in pmerge when the user configuration is strictly a single
104  source repository.  Semi rare, but can occur.
105
106* correct a tb when throwing a missing file error for specifying package.*
107  settings directly to domain.
108
109* correct a tb in profiles expansion code of USE_EXPAND and USE_EXPAND_HIDDEN
110  when they're completely undefined in the profile stack.  Rare, but if a
111  user is building a custom profile stack from the ground up, it's possible
112  to hit it.
113
114* gentoo upstream bug 297933; filter BASHOPTS to keep bash 4.1 happy.
115
116* correct an encoding issue in making binpkgs when an ebuild is utf8
117
118* fix a traceback in pmerge -fK when trying to fetch required files for
119  binpkgs.
120
121
122pkgcore 0.5.6: December 13th, 2009
123
124* tweak pkgcore configuration subsystem to tell you the parameter involved
125  when it's passed an incorrectly typed object.
126
127* fix an encoding issue w/ utf8 ebuilds on merging.
128
129
130pkgcore 0.5.5: November 26th, 2009
131
132* portage changed their flat_hash support a while back, specifically
133  how mtime was stored.  We match that now (although it's daft to do so)
134  for compatibility sake- primarily affected CVS users.
135
136* removed a potential in the merge engine where triggers that didn't
137  do an abspath on items they added could incorrectly be moved.
138  Specifically affected FEATURES=debugedit for /usr/lib -> lib64 pathways.
139
140* boolean restrictions now default to being finalized.
141
142* pkgcore.fs.ops.offset_rewriter -> pkgcore.fs.contents.offset_rewriter
143
144* various code cleanups, quite a few conversions to snakeoil.klass
145  decorators/property tricks to simplify the code.
146
147* experimental python3.1 support.  Bugs welcome, although till stated
148  otherwise, it's considered unsupported.
149
150* pkgcore.restrictions.values.ComparisonMatch has been removed.
151
152* for overlayed repositories that have invalid atom stacking in their
153  package.mask, give an appropriate error message indicating the file.
154
155* gentoo bug 196561, PMS doesn't match portage behaviour for '~' atom
156  operator.  Being that the pms definition has never been accurate, and
157  portage hasn't handled '~' w/ a revision in any sane form, and finally
158  do to portage adding a repoman check for this (bug 227225) pkgcore is
159  now strict about disallowing revisions with '~'.  Scream at PMS to
160  fix their doc if it's problematic.
161
162* certain ebuilds (ssmtp for example) expect D to have a trailing '/'.
163  Force this (outside pms compliance, so we match portage behaviour).
164
165
166pkgcore 0.5.4: October 30, 2009
167
168* minor bug fix release fixing filter-env invocation (wasn't covered
169  by tests)
170
171
172pkgcore 0.5.3: October 30, 2009
173
174* filter-env grew a --print-vars option.  If you've been seeing
175  "declare: write error: Broken pipe" from build operations, this should
176  now be fixed via using this new option.
177
178* the resolver wasn't properly accounting for planned modifications to
179  the installed pkgs database.  If you've had upgrade issues from
180  blockers, this is the root cause (pam/pambase in particular).
181
182* eclass scanning is now JIT'd, and the resultant eclass dictionary
183  is now marked immutable for safety reasons.
184
185* for portage configuration when PORTDIR_OVERLAY is in use and portdir
186  has a pregenerated cache, check the pregenerated cache first when
187  looking for metadata.  This degrades the usage case where overlays
188  override quite a few core eclasses in favor of the more common case
189  where the pregenerated cache is the majority of the time, accurate.
190  End result is upwards of a 2x reduction in open invocations.
191
192
193pkgcore 0.5.2: October 28, 2009
194
195* touch vdb root on vdb modification as a way to notify alternative PMs
196  that their cache needs updating.  Gentoo bug #290428.  Just leaves paludis
197  to join in on the fun...
198
199* portage 2.2 modified make.globals to add a default, non glep23 compliant
200  ACCEPT_LICENSE.  pkgcore's implementation has been modified to be non
201  compliant to glep23, matching portage semantics.
202
203  If pquery <atom> has suddenly started returning nothing, this was the cause.
204
205* fix a traceback that could occur when doing pmerge -pv for when binpkg
206  repos were involved.
207
208
209pkgcore 0.5.1: October 22, 2009
210
211* correct a python-2.6 incompatibility that rears it's head when doing
212  repository operations (installing, uninstalling, etc).
213
214
215pkgcore 0.5: October 22, 2009
216
217* add protection against multiple python versions, w/ the default python
218  invocation being a different major version from what pkgcore was installed
219  under.  Primarily a fix to dohtml.
220
221* ticket 230; tweaks for better >=python2.5 compatibility.
222
223* pkgcore will now try to sync overlays if the overlay is a vcs.  This can
224  be disabled by adding FEATURES="-autodetect-sync" to your make.conf
225
226* pkgcore.sync.base.AutodetectSyncer was added as a way to pull configuration
227  from existing on disk vcs repos, and generate a syncer from them.
228
229* handle cache corruption a bit better- namely, log the warning, and keep
230  going.  Degradation of performance can result, but it's preferable to just
231  bailing.
232
233* gentoo bug 280766; basically some ebuilds are sensitive to a trailing '/'
234  on WORKDIR (portage strips it) leading to failures in path sedding.
235
236* comply with PMS corner cases for package names; gentoo bug 263787
237
238* serialization support for cpv derivatives.  Not great, but packages.g.o
239  relies on it, thus it's inclusion.
240
241* not surprising on the timing (or spotting it via ciaran spreading it
242  via blog comments), gentoo bug 226505 revisited- change in phase ordering
243  afflicting all eapis.  pkgcore had it right the first time, inverted the
244  ordering in 0.4.7.9.
245
246
247pkgcore 0.4.7.16: March 24, 2009
248
249* pmerge is a bit more informative when there is nothing to merge,
250  and doesn't ask if in --ask if the users wishes to proceed.
251  Thanks to DJ Anderson for pointing out this oversight.
252
253* ensure unicode for pquery --attr longdescription w/in pquery; via this
254  it leaves the unicode question to the formatter, instead of down converting
255  earlier.
256
257* fix a mismatch between src ebuilds and binpkgs for _eclasses_ when
258  doing pquery --attr inherited.  Bit of a hack, but it'll suffice.
259
260* pquery --attr all and --attr allmetadata was added.  'all' gets you
261  all known attrs (environment, contents, etc); bit heavy but useful if
262  you need to see it all.  'allmetadata' gets you the key/val pairs for
263  this host- fetchables, depends, slotting, eapi, repo, cbuild/chost, etc,
264  but no environment/contents.
265
266* fix cycle detection for dev-util/git; specifically there is a cycle on
267  virtual/perl-Module-Built which can be ignored since that chain of deps
268  are pulled in via post_rdepends.
269
270* make gid/mode configurable for filelist pkgsets; this fixes 4 failures
271  for when the tests are ran and the user isn't a member of portage.
272
273* fix a cornercase in fs.livefs.intersect where intersecting a file/dir
274  would trigger a traceback.
275
276* fix a corner case where the world file isn't updated if the world file
277  is empty.
278
279* fix a deprecation warning under 2.6 caused by an impedence between
280  native_PackageRestriction and the cpy version for __init__ invocation.
281
282* fix gentoo bug 216492, a change in libsandbox behaviour- specifically
283  libsandbox for >=1.3 is now appending libsandbox.so while failing to
284  spot it already existing in LD_PRELOAD; pkgcore tests were written a bit
285  strict thus were spotting this.  Loosen the test, and fix the case where
286  a different preload is used in conjunction w/ sandbox.
287
288
289pkgcore 0.4.7.15: Jan 28, 2009
290
291* fix docutils-0.5 incompatibility in build_api_docs.py
292
293* python issue 4230 makes __getattr__ support descriptor protocol.
294  This unfortunately causes part of config handling to go boom- fixed.
295
296  Unfortunately this also means that we need to support both descriptor
297  and *non* descriptor interpretters at *runtime*- if python is upgraded
298  underfoot, things get unhappy to keep atom.__getattr__ from blowing up.
299  Fixed either way.
300
301* copy HOMEPAGE into vdb/binpkg by default.
302
303
304pkgcore 0.4.7.14: Dec 18, 2008
305
306* profile awareness of eapi files, *including* strict validation.
307
308* tighter use dep and atom support in pkgcore for specified eapis.
309
310* ticket 187; fix a traceback when a specific subset of cycles are
311  encountered.
312
313* correct a python 2.6 incompatibility; object.__init__() is now strict
314  about taking no keywords.
315
316
317pkgcore 0.4.7.13: Oct 29, 2008
318
319* bug fix for transitive use atoms; if || ( a/b[x?] ), DepSet wasn't detecting
320  that there were conditionals w/in it, as such wasn't doing evaluation.
321
322
323pkgcore 0.4.7.12: Oct 10, 2008 (2 hours after 0.4.7.11 ;)
324
325* security fix; force cwd to something controlled for ebuild env.  This
326  blocks an attack detailed in glsa 200810-02; namely that an ebuild invoking
327  python -c (which looks in cwd for modules to load) allows for an attacker
328  to slip something in.
329
330
331pkgcore 0.4.7.11: Oct 10, 2008
332
333* fix EAPI2 issues: default related primarily, invoke src_prepare for
334  >=EAPI2 instead of >EAPI2.
335
336
337pkgcore 0.4.7.10: Oct 7, 2008
338
339* fix in setup.py to install eapi/* files.
340  die distutils, die.
341
342* api for depset inspection for tristate (pcheck visibility mode) is fixed
343  to not tell the consumer to lovingly 'die in a fire'.
344
345* correct a failure in EAPI=2 src_uri parsing complaining about
346  missing checksums for nonexistant files
347
348
349pkgcore 0.4.7.9: Oct 6, 2008
350
351* eapi2 is now supported.
352
353* DepSet has grown a temp option named allow_src_uri_file_names; this
354  is to support eapi 2's -> SRC_URI extension.  This functionality
355  will under go refactoring in the coming days- as such the api addition
356  isn't considered stable.
357
358* we now match the forced phase ordering portage induced via breaking
359  eapi compatibilty for eapi0/1.
360
361* tightened up allowed atom syntax; repository dep is available only when
362  eapi is unspecified (no longer available in eapi2 in other words).
363  atom USE dep parsing now requires it to follow slotting- this is done to
364  match the other EAPI2 standard.
365
366  Beyond that, better error msgs and tighter validation.
367
368
369pkgcore 0.4.7.8: August 28, 2008
370
371* pkgcore now properly preserves ownership of symlinks on merging.
372  ensure_perms plugins now need to handle symlinks (lchown at the least).
373
374* free resolver caches after resolution is finished; lower the memory
375  baseline for pmerge.
376
377* fix up interface definitions for >snakeoil-0.2 dependant_methods changes.
378  Via these cleanups and >snakeoil-0.2, memory usage is massively decreased
379  for pmerge invocations.
380
381* swallow EPIPE in pquery when stdout is closed early.
382
383
384pkgcore 0.4.7.7: August 11, 2008
385
386* Disable fakeroot tests due to odd behaviour, and the fact it's currently
387  unused.
388
389* Fix installation issue for manpages for python2.4; os.path.join behaviour
390  differs between 2.4 and 2.5.
391
392* Kill off large memory leak that reared it's head per pkg merge; still is
393  a bit of a leak remaining, but nothing near as bad as before.
394
395
396pkgcore 0.4.7.6: August 10, 2008
397
398* fix sandbox complaint when PORT_LOGDIR is enabled- sandbox requires abspath
399  for any SANDBOX_WRITE exemptions, if PORT_LOGDIR path includes symlinks,
400  force a `readlink -f` of the sandbox exemption.
401  http://forums.gentoo.org/viewtopic-p-5176414.html
402
403* ticket 213; if stricter is in FEATURES, fail out if insecure rpath is
404  detected- otherwise, correct the entries.
405
406* ticket 207; drop the attempted known_keys/cache optimizations, instead
407  defer to parent's iterkeys always.  This eliminates the concurrency issue,
408  and simplifies staleness detection.  Also kills off a tb for --newuse .
409
410* ticket 201; pquery --restrict-revdep-pkgs wasn't behaving properly for
411  slot/repository/user atoms, now does.
412
413* Correct potential segfaults in cpython version of PackageRestriction and
414  StrExactMatch's __(eq|ne)__ implementations.
415
416
417pkgcore 0.4.7.5: July 6, 2008
418
419* incremental_expansion and friends have grown a cpython implementation-
420  this speedup will show up if you are doing lots of profile work (pcheck
421  for example, which has to read effectively all profile).
422
423* if the invoking user isn't part of the portage group, don't throw a
424  traceback due to permission denied for virtuals cache.
425
426* correct a false positive in pkgcore.test.util.test_commandline that occurs
427  when snakeoil c extensions aren't enabled.
428
429* ticket 193; follow symlinks in /etc/portage/*/ directories.
430
431* ticket 203; functionfoo() {:;} is not function 'foo', it's 'functionfoo'.
432  Users shouldn't have seen this- thanks to ferdy for spotting it in an audit.
433
434* add 'skip_if_source' option to misc. binpkg merging triggers- defaults to
435  True, controls whether or not if a pkg from the target_repo should be
436  reinstalled to the repo.
437
438* make contentsSet.map_directory_structure go recursive-
439  this fixes ticket #204, invalid removal of files previously just merged.
440
441* make --newuse work with atoms/sets
442
443* add a cpy version of incremental_expansion
444
445* fix longstanding bug - finalize settings from make.conf, stopping negations
446  from being parsed twice. Without this fix, -* in a setting will negate
447  random flags set after it.
448
449* allow / in repo ids
450
451* don't show flags from previous versions of packages in --pretend output -
452  it's confusing and doesn't match portage behaviour.
453
454* fix ticket 192: ignore non-existant files in config protect checking
455
456
457pkgcore 0.4.7.4: June 11, 2008
458
459* eapi1 bug fix; check for, and execute if found, ./configure if ECONF_SOURCE
460  is unset.
461
462
463pkgcore 0.4.7.3: May 16, 2008
464
465* ticket #185; tweak the test to give better debug info.
466
467* add proper handling of very, very large revision ints (up to 64 bits).
468
469* fakeroot tests are enabled again.
470
471* misc bug fixes; pquery --revdep traceback, vecho complaints from do*
472  scripts.
473
474* explicit notice that Jason Stubbs, Brian Harring, Andrew Gaffney, and
475  Charlie Shepherd, Zac Medico contributions are available under either
476  GPL2 (v2 only) or 3 clause BSD.
477  Terms are in root directory under files names BSD, and GPL2.
478  Aside from the bash bits Harring implemented during the EBD days, the
479  remaining ebuild bash bits are Gentoo Foundation copyright (GPL2), and
480  the contributions from Marien Zwart are currently GPL2 (config bits, still
481  need explicit confirmation).
482
483  What that effectively means is that pkgcore as a whole currently is GPL2-
484  sometime in the near future, the core of pkgcore (non-ebuild bits) will be
485  BSD/GPL2, and then down the line the bash bits will be rewritten to be
486  BSD/GPL2 (likely dropping the functionality it uses down to something bash/
487  BSD shell compatible).
488
489* expansion of -try/-scm awareness to installed pkgs database.  Binpkg
490  repositories now abid by ignore_paludis_versioning also.
491
492* ticket #184; silence disable debug-print in non build/install phases.
493
494* handle malformed rsync timestamps more cleanly.
495
496
497pkgcore 0.4.7.2: May 07, 2008
498
499* new portage configuration feature- 'ignore-paludis-versioning'.  This
500  directs pkgcore to ignore nonstandard -scm ebuilds instead of complaining
501  about them.
502  Note this does *not* affect the installed pkgs database- if there is a
503  -scm ebuild in the vdb, pkgcore *must* deal with that ebuild, else if it
504  silently ignores vdb -scm pkgs it can result in overwriting parts of the
505  -scm pkg, and other weirdness.  If you've got a -scm version pkg installed,
506  it's strongly suggested you uninstall it unless you wish to be bound to that
507  nonstandard behaviour of paludis.
508
509  Finally, it's not yet covering *all* paludis version extensions- that will
510  be expanded in coming versions.
511
512* pkgcore is now aware of installed -scm pkgs, and gives a cleaner error
513  message.
514
515* a few versions of portage-2.2 automatically added @PKGSET items to the
516  world file; due to how portage has implemented their sets, this would
517  effectively convert the data to portage only.  As such, that feature was
518  reversed (thank you genone); that said, a few world files have @pkgset
519  entries from these versions.  Pkgcore now ignores it for worldfiles, and
520  levels a warning that it will clear the @pkgset entry.
521
522* ticket #174; ignore bash style comments (leading #) in pkgsets, although
523  they're wiped on update.  If folks want them preserved, come up with a way
524  that preserves the location in relation to what the comment is about- else
525  wiping seems the best approach.
526
527* ticket #14; tweak PORT_LOGDIR support a bit, so that build, install,
528  and uninstall are seperated into different logs.
529
530* added '@' operator to pmerge as an alias for --set; for example,
531  'pmerge @system' is the same as 'pmerge --set system'.
532
533* fallback method of using the file binary instead of libmagic module is
534  fixed; ticket #183.
535
536
537pkgcore 0.4.7.1: May 04, 2008
538
539* correct a flaw in repository searching that slipped past the test harness.
540  effectively breaks via inverting the negate logic for any complex search.
541
542
543pkgcore 0.4.7: May 03, 2008
544
545* prepstrip was updated to match current portage semantics, minus stripping
546  and splitdebug functionality (we handle that via a trigger).  Via this,
547  FEATURES=installsources and basic bincheck (pre-stripped binaries) is now
548  supported.
549
550* FEATURES='strip nostrip splitdebug' are now supported in portage
551  configuration (trigger is pkgcore.merge.triggers.BinaryDebug).
552
553* added cygwin ostype target for development purposes.  In no shape or form
554  is this currently considered supported, although anyone interested in
555  developing support for that platform, feel free to contact us.
556
557* in candidate identification in repository restriction matching, it was
558  possible for a PackageRestriction that was negated to be ignored, thus
559  resulting in no matches.  This has been corrected, although due to
560  collect_package_restrictions, it's possible to lose the negation state
561  leading to a similar scenario (no known cases of it currently).  This
562  codepath will need reworking to eliminate these scenarios.
563
564* mercurial+ sync prefix is now supported for hg.
565
566* triggers _priority class var is now priority; overload with a property if
567  custom functionality is needed.
568
569
570pkgcore 0.4.6: April 29, 2008
571
572* filelist sets (world file for example) are now sorted by atom comparison
573  rules.  ticket #178.
574
575* pquery --restrict-revdep-pkgs and --revdep-pkgs were added: they're
576  used to first match against possible pkgs, then do the revdep looking for
577  pkgs that revdep upon those specific versions.  Functionality may change,
578  as may the outputting of it.  ticket #179.
579
580* pebuild breakage introduced in 11/07 is corrected; back to working.
581
582* 'info' messages during merging are now displayed by default- new debug
583  message type was added that isn't displayed by default.
584
585* ebuild domain now accepts triggers configuration directive.
586
587* FEATURES=unmerge-buildpkg was added; this effectively quickpkgs a pkg
588  before it's unmerged so you have a snapshot of it's last state before
589  it is replaced.
590
591* FEATURES=pristine-buildpkg was added; this is like FEATURES=buildpkg,
592  but tbzs the pkg prior to any modification by triggers.  Upshot of this,
593  you basically have an unmodified binpkg that can be localized to the merging
594  host rather then to the builder.  Simple example, with this if your main
595  system is FEATURES=strip, it tucks away a nonstripped binpkg- so that
596  consumers of the binary repo are able to have debug symbols if they want
597  them.
598
599* FEATURES=buildsyspkg is now supported.
600
601* FEATURES=buildpkg is now supported.
602
603* the engine used for install/uninstall/replace is now configurable via
604  engine_kls attribute on the op class.
605
606* dropped exporting of USER='portage' if id is portage.  Ancient var setting,
607  can't find anything reliant on it thus punting it.
608
609* add SunOS to known OS's since it's lchown suffices for our needs.
610
611* added eapi awareness to atoms, so that an eapi1 atom only allows the
612  slot extension for example.
613
614* remove a stray printf from cpy atom; visible only when repository atoms
615  are in use.
616
617
618pkgcore 0.4.5: April 9, 2008
619
620* fix collision unprotect trigger exceptions (typically KeyError).
621  ticket #165
622
623* correct invalid passing of force keyword down when the repository isn't
624  frozen.  Occasionally triggered user visible tracebacks in pmaint copy.
625
626* portage broke compatibility with pkgcore a while back for our binpkgs-
627  for some inane reason, portage requires CATEGORY and PF in the xpak
628  segment.  This is being removed from portage in 2.2, but in the interim
629  pkgcore now forces those keys into the binpkgs xpak for compatibility
630  with portage.
631
632  Shorter version: pmaint copy generated binpkgs work with portage again.
633
634* cbuild/chost/ctarget are available via pquery --attr, and are written to
635  binpkg/vdb now.
636
637* stat removal work: FEATURES=-metadata-cache reuses existing eclass cache
638  object, thus one (and only one) scan of ${PORTDIR}/eclass
639
640* metadata, flat_hash, and paludis_flat_list cache formats configuration
641  arg 'label' is no longer required, and will be removed in 0.5.  If they're
642  unspecified, pkgcore will use location as the place to write the cache at,
643  else it'll combine location and label.
644
645* cdb, anydbm, sqlite, and sql_template cache backends have been removed
646  pending updating the code for cache backend cleanups.  If interested in
647  these backends, contact ferringb at irc://freenode.net/#pkgcore .
648
649
650pkgcore 0.4.4: April 6, 2008
651
652* merging/replacing performance may be a bit slower in this release- the level
653  of stats calls went up in comparison to previous releases, with several
654  duplicates.  This will be corrected in the next release- releasing in the
655  interim for bugfixes this version contains.
656
657* add CBUILD=${CBUILD:-${CHOST}}; couple of odd ebuilds rely on it despite
658  being outside of PMS.
659
660* protective trigger was added blocking unmerging of a basic set of
661  directories/syms; mainly /*, and /usr/*.
662
663* when a merge passes through a symlink for path resolution, that sym is
664  no longer pulled in as an entry of that pkg.  Originally this was done for
665  protective reasons, but it serves long term as a way to inadvertantly hold
666  onto undesired junk from the users fs, and opens the potential to unmerge
667  system/global symlinks when that pkg/slot's refcount hits zero.
668
669* detection, and predicting merge locations for syms was doing an unecessary
670  level of stat calls; this has been reduced to bare minimum.
671
672* ticket 159; force an realpath of CONTENTS coming from the vdb due to other
673  managers not always writing realpath'd entries, thus resulting in occasional
674  misidentification of what to remove.
675
676* pkgcore.util.parserestrict no longer throws MalformedAtom, always
677  ParseError.  Removes ugly commandline tracebacks for bad atoms supplied
678  to pmerge.
679
680* ticket 158; honor RSYNC_PROXY for rsync syncer.
681  Thanks to user Ford_Prefect.
682
683* pmerge -N now implies --oneshot.
684
685* correct a flaw in tbz2 merging where it repeatedly try to seek in the bz2
686  stream to generate chksums, instead of using the on disk files for
687  chksumming.
688
689* pmaint regen w/ > 1 thread no longer throws an ugly set of tracebacks upon
690  completion.
691
692* binpkg repositories now tell you the offending mode, and what is needed
693  to correct it.  No longer cares if the specified binpkg base location is
694  a symlink also.
695
696* pmaint --help usage descriptions are far more useful now.
697
698
699pkgcore 0.4.3: March 31, 2008
700
701* correct a corner case where a users bash_profile is noisy, specifically
702  disable using $HOME/.bashrc from all spawn_bash calls.
703
704* USE=-* in make.conf support is restored.  ticket 155.
705
706* minor tweak to package.keywords, package.use, and package.license support-
707  -* is properly supported now.  Following portage, if you're trying to
708  match keywords for a pkg that are '-* x86', you must match on x86.
709
710* pquery --attr use output for EAPI=1 default IUSE is significantly less
711  ugly.
712
713* ticket #150. EAPI1 IUSE defaults fixups.  stacking order is that default
714  IUSE is basically first in the chain, so any configuration (global, per
715  pkg, etc), will override if possible.  Effectively, this means a default
716  IUSE of "-foon" is pointless, since there is no earlier USE stack to
717  override.
718
719* pkgcore.ebuild.collapsed_restrict_to_data api was broken outside of a
720  major version bump- specifically pull_cp_data method was removed since
721  the lone consumer (pkgcore internals) doesn't need it, and the method
722  is semi dangerous to use since it only examines atoms.
723
724
725pkgcore 0.4.2: March 30, 2008
726
727* correct handling of ebuilds with explicit -r0 in filename, despite it being
728  implicit.  Thanks to rbrown for violating gentoo-x86 policy out of the blue
729  w/ an ebuild that has -r0 explicit in the filename for smoking out a bug
730  in pkgcore handling of it.  Ebuild since removed, but the KeyError issue
731  is corrected.  (keep the bugs coming)
732
733* minor performance optimization to binpkg merging when there is a large #
734  of symlink rewrites required.
735
736* ticket #153; restore <0.4 behaviour for temporal blocker validation, rather
737  then invalidly relying on the initial vdb state for blocker checks.  Fixes
738  resolution/merging of sys-libs/pam-0.99.10.0
739
740
741pkgcore 0.4.1: March 20, 2008
742
743* add tar contentsSet rewriting; tarballs sometimes leave out directories,
744  and don't always have the fully resolved path- /usr/lib/blah, when
745  /usr/lib -> /usr/lib64 *should* be /usr/lib64/blah, but tar doesn't force
746  this.  Due to that, can lead to explosions in unpacking- this is now fixed.
747
748* pquery --attr inherited was added; this feature may disappear down the
749  line, adding it meanwhile since it's useful for ebuild devs.
750
751* adjust setup.py so that man page installation properly respects --root
752
753* correct a corner case where a package name of 'dev-3D' was flagged as
754  invalid.
755
756
757pkgcore 0.4: March 18, 2008
758
759* resolver fixes: vdb loadup wasn't occuring for old style virtuals for
760  rdepend blockers, now forces it.  It was possible for a node to be
761  considered usable before it's rdepends blockers were leveled- now those
762  must be satisfied before being able to dep on the node.
763
764* resolver events cleanup; pmerge now gives far better info as to why a
765  choice failed, what it attempted to get around it, etc.
766
767* multiplex trees now discern their frozen state from their subtrees,
768  and will execute the repo_op for the leftmost subtree if unfrozen.
769
770* pquery --attr eapi was added.
771
772* ticket 94; package.provided is now supported fully both in profiles,
773  and in user profile (/etc/portage/profile).
774
775* ticket 116; ignore empty tarfile exception if the exception explicitly
776  states empty header.
777
778* utter corner case compatibility- =dev-util/diffball-1.0-r0 is now the
779  same as =dev-util/diffball-1.0 .
780
781* convert FETCHCOMMAND/RESUMECOMMAND support to execute spawn_bash by
782  default instead of trying to cut out shell; this kills off the occasional
783  incompatibility introduced via portage supplying make.globals.
784
785* FEATURES=sfperms is now a trigger instead of a dyn_preinst hook.
786  Faster, cleaner, etc.
787
788* delayed unpacking of binpkgs has been disabled; occasionally can lead to
789  quadratic behaviour in contents accessing, and extreme corner case trigger
790  breakages.  Will be re-enabled once API has been refactored to remove
791  these issues.
792
793* FEATURES=multilib-strict was converted into a trigger.  Tries to
794  use the python bindings for file first (merge file[python]), falling
795  back to invoking file.  Strongly suggested you have the bindings- fair bit
796  faster.  Finally, verification now runs for binpkgs also.
797
798* bug 137; symlink on directory merging failures where pkgcore would wipe
799  files it had just installed invalidly.
800
801* correct issue in offset rewriting (was resetting new_offset to '/')-
802  should only be api visible, no existing consumers known.
803
804* ebuild env lzma unpack support was broken; fixed (ticket 140).
805
806* Additional debug output for pmerge.
807
808* Further extending PortageFormatter to sanely handle worldfile highlights
809  and show repos with both id and location
810
811* Ticket 132: Portage Formatter supports real portage colors now,
812  thanks to agaffney for getting the ball rolling
813
814* Masked IUSEs were not treated right in all cases, thanks to agaffney
815  for report and help testing
816
817* diefunc tracebacks beautified
818
819
820pkgcore 0.3.4: Dec 26, 2007
821
822* IUSEs were filtered, unstated were not respected though breaks with
823  current portage tree, so re-enabling.
824  Also sanely handle -flag enforcing now and kill hackish code for it.
825
826
827pkgcore 0.3.3: Dec 14, 2007
828
829* IUSE defaults are respected now, so EAPI=1 implemented
830
831* Write slotted atoms to worldfile as portage supports this now
832
833* Sync up with portage; add support for lzma to unpack- mirror r7991 from
834  portage.
835
836
837pkgcore 0.3.2: Nov 3, 2007
838
839* ticket 190746 from gentoo; basically need to force the perms of first level
840  directory of an unpacked $DISTDIR to ensure it's at least readable/writable.
841  fixes unpacking of app-misc/screen-4.0.3_p20070403::gentoo-x86 .
842
843* ticket 118; if -u, don't add the node to world set.
844
845* correct a corner case in python implementation of cpv comparison (just
846  python, cpy extension handles it correctly); bug 188449 in gentoo, basically
847  floats have a limited precision, thus it was possible to get truncation in
848  comparison with specially crafted versions.
849
850* handle EOF/IOError on raw_input (for --ask) a bit more gracefully, ticket
851  108.
852
853* cd to ${WORKDIR} if ${S} doesn't exist for test/install phases; matches
854  change in portage behaviour.
855
856* Now require snakeoil version 0.2 and up- require new capability of
857  AtomicWriteFile, ability to specify uid/gid/perms.  Via that, fixes ticket
858  109 (umask leaking through to profile.env).
859
860* the 'glsa' pkgset is now deprecated in favor of 'vuln'; will remain
861  through till 0.4 (ticket #106).
862
863* ticket 105/96; fix via andkit, basically a bug in einstall lead to
864  extra einstall opts getting dropped instead of passed through.
865
866* compatibility fix for lha unpacking for nwere versions of lha.
867
868* emake now invokes ${MAKE:-make}, instead of make- undocumented ebuild
869  req, see bug 186598 at bugs.gentoo.org.
870
871* pmerge --verbose is now pmerge -F portage-verbose-formatter
872
873* Stop installing pregen symlink; functionality moved to pmaint regen.
874
875* 'pmerge --domain' was added; basically is a way to specify the domain to
876  use, else usees the configuration defined default domain.
877
878* new ebuild trigger to avoid installing files into symlinked dir (get_libdir
879  is the friend to fix a common /usr/lib -> /usr/lib64 bug), ticket 119
880
881
882pkgcore 0.3.1: June 27, 2007
883
884* ticket 86; export FILE for portage_conf FETCHCOMMAND/RESUMECOMMAND support,
885  convert from spawn_bash to spawn, add some extra error detection
886
887* Correct cleanup of unknown state ebp processors; basically discard them if
888  they fail in any way.  Cleanup inherit error msg when under ebd.
889
890* Correct permission issue for vdb virtuals cache.
891
892* ticket 84; rework overlay internals so that sorting order can't accidentally
893  expose a version masked by a higher priority repository in an overlay stack.
894
895
896pkgcore 0.3: Jun 06, 2007
897
898* pregen has moved into pmaint regen.
899
900* Several example scripts that show how to use the pkgcore api have been
901  added, among others:
902    - repo_list (lists repos and some of their attributes)
903    - changed_use (a poor man's --newuse)
904    - pkg_info (show maintainers and herds of a package)
905    - pclean (finds unused distfiles)
906
907* Pkgcore now supports several different output formats for the buildplan.
908  Portage and Paludis emulation are the notable formats, though plan
909  category/package and the original output are also available as options.
910
911* Portage formatter is now the default.
912
913* Pkgcore formatter (no longer default) output was simplified to be less
914  noisy.
915
916* Large grammar fixes for documentation.
917
918* Miscellaneous pylint cleanups, including whitespace fixes.
919
920* Most of pkgcore.util.* (mainly the non pkgcore-specific bits) have been
921  split out into a separate package, snakeoil. This includes the relevant cpy
922  extensions.
923
924* Triggers are quieter about what they're doing by default.
925
926* /etc/portage/package.* can now contain unlimited subdirectories and
927  files (ticket 71).
928
929* livefs functionality is no longer accessible in pkgcore.fs.*; have to access
930  pkgcore.fs.livefs.*
931
932* old style virtual providers from the vdb are now preferred for newer versions
933  over profile defined defaults.
934
935* added profile package.use support.
936
937* ticket 80; $REPO_LOC/profiles/categories awareness; if the file exists, the
938  repo uses it by default.
939
940* resolver refactoring; report any regressions to ferringb.  Integrated in
941  events tracking, so that the choices/events explaining the path the resolver
942  took are recorded- via this, we actually have sane "resolution failed due to"
943  messages, adding emerge -pt/paludis --show-reasons is doable without hacking
944  the resolver directly, spotting which pkgs need to be unmasked/keyworded for
945  a specific request to be satisfied, etc, all of it is doable without having
946  to insert code directly into the resolver.  Anyone interested in adding these
947  featues, please talk to harring.
948  Worth noting, the events api and data structs for the resolver are still a
949  work in process- meaning the api is not guranteed to stay stable at least
950  till the next minor release.
951
952* old style virtual pkgs are no longer combined into one with multiple
953  providers; aside from simplifying things, this fixes a few annoying resolution
954  failures involving virtual/modutils.
955
956
957pkgcore 0.2.14: April 8, 2007
958
959* correct potential for profile path calculation screwup.
960
961* refactor isolated-functions.sh so all internal vars are prefixed with
962  PKGCORE_RC_; shift vars filter to PKGCORE_RC_.* instead of RC_.* .
963  If you were having problems building courier-imap (RC_VER variable),
964  this fixes it.
965
966* better interop with paludis VDB environment dumps.
967
968* treat RESTRICT as a straight depset for UI purposes (minor, but looks
969  better this way).
970
971
972pkgcore 0.2.13: March 30, 2007
973
974* Added '~' to allowed shlex word chars.
975
976* Due to amd64 /lib -> /lib64, change the default policy for sym over
977  directory merging to allow it if the target was a directory.
978
979
980pkgcore 0.2.12: March 29, 2007
981
982* Ensure PackageRestriction._handle_exceptions filters the check down to
983  just strings; if running pure python, this could trigger a traceback
984  via the python native native_CPV.__cmp__.
985
986* Tweak python native native_CPV.__cmp__ to not explode if given an instance
987  that's not a CPV derivative.
988
989* Reorder ||() to use anything matched via the current state graph, aside
990  from normal reordering to prefer vdb.
991
992* default mode for ensure_dirs is now 0755.
993
994* Work around broken java-utils-2.eclass state handling in
995  java-pkg_init_paths_; tries to access DESTTREE in setup phase, which
996  shouldn't be allowed- fix is temporarily shifting the DESTTREE definition
997  to pre-ebuild sourcing so that it behaves.
998
999  Will be removed as soon as the eclass behaves is fixed.
1000
1001
1002pkgcore 0.2.11: March 27, 2007
1003
1004* COLON_SEPARATED, not COLON_SEPERATED for env.d parsing.
1005
1006* fix ticket #74; "x=y@a" should parse out as 'y@a', was terminating
1007  early.
1008
1009
1010pkgcore 0.2.10: March 27, 2007
1011
1012* FEATURES=ccache now corrects perms as needed for when userpriv toggles.
1013
1014* shift PORTAGE_ACTUAL_DISTDIR and DISTDIR definition into the initial env,
1015  so that evil git/subversion/cvs class can get at it globally.
1016
1017* pquery --attr repo now returns the repo_id if it can get it, instead of
1018  the str of the repo object.
1019
1020* OR grouppings in PROVIDES was explicitly disabled; no ebuild uses it, nor
1021  should any.
1022
1023
1024pkgcore 0.2.9: March 19, 2007
1025
1026* convert use.mask/package.use.mask, use.force/package.use.force stacking
1027  to match portage behaviour- basically stack use.* and package.* per profile
1028  node rather then going incremental for use.*, then package.* .  If you were
1029  having issues with default-linux/amd64/2006.1 profile and sse/sse2 flags for
1030  mplayer, this ought to correct it.
1031
1032* add USE conditional support to RESTRICT.
1033
1034* fix noisy regression from 0.2.8 for temp declare overriding; if you saw lots
1035  of complaints on env restoration, corrects it.  Superficial bug, but rather
1036  noisy.
1037
1038* Fix a bug for binpkg creation where PROVIDES gets duplicated.
1039
1040* Bit more DepSet optimizations; specifically collapses AND restriction into
1041  the parent if it is also an AND restriction.
1042
1043* make --no-auto work correctly for pebuild
1044
1045* delay DISTDIR setup till unpack phase to prevent any invalid access; also
1046  takes care of a pebuild traceback.
1047
1048
1049pkgcore 0.2.8: March 17, 2007
1050
1051* fix bug so that 6_alpha == 6_alpha0 when native_CPV is in use; only possible
1052  way to have hit the bug is having all extensions disabled (CPY version gets it
1053  right).
1054
1055* add a trigger to rewrite symlink targets if they point into ${D}
1056
1057* info trigger now ignores any file starting with '.'; no more complaints about
1058  .keep in info dirs.
1059
1060* if an ebuild has a non-default preinst and offset merging, a rescan of ${D}
1061  is required- offset wasn't being injected, fixed.
1062
1063* if offset merging for a binpkg, reuse the original contentsSet class-
1064  this prevents quadratic (worst case) seeking of the tarball via preserving
1065  the ordering.
1066
1067* if merging a binpkg and a forced decompression is needed, update the
1068  cset in memory instead of forcing a scan of ${D}.
1069
1070* misc filter-env fixes, cleanup, and tests.
1071
1072* change var attr (exported/readonly) env storage to better interop with
1073  the others; internally, we still delay the var attr/shopt resetting till
1074  execution.
1075
1076* misc initialization fixes to syncers for when invoked via GenericSyncer.
1077  If previously layman integration wasn't working for you, should now.
1078
1079* shift the misc fs property triggers to pre_merge, rather then sanity_check;
1080  sanity_check should be only for "do I have what I need to even do the merge?"
1081  and minimal setup for the op (for example, transfering files into workdir).
1082  Running preinst was occasionally wiping the changes the triggers made, thus
1083  allowing screwed up ebuilds with custom preinst's to slip in a portage gid
1084  for merge.
1085
1086* fix a corner case for cpy join spotted by TFKyle where length calculation
1087  was incorrect, leading to a trailing null slipping into the calculated
1088  path.
1089
1090* fix bash parsing for a corner case for empty assigns; literally,
1091  x=
1092  foo='dar'
1093  would incorrectly interpret x=foo, instead of x=''.
1094
1095
1096pkgcore 0.2.7: March 4, 2007
1097
1098* layman configuration (if available) is now read for portage configuration
1099  for sync URI for overlays.  tar syncer is currently unsupported; others may
1100  be buggy.  Feed back desired (author doesn't use layman).  Ticket #11.  If
1101  you want it disabled, add FEATURES=-layman-sync .
1102
1103* another fix for daft tarballs that try to touch cwd.
1104
1105
1106pkgcore 0.2.6: March 4, 2007
1107
1108* make intersecting ~ and =* atoms work again (used by pquery --revdep)
1109
1110* catch a corner case py2.5 bug where AttributeError bleeds through from
1111  generic_equality.
1112
1113* Via solars prodding, finished up the remaining bits for ROOT support.
1114
1115* resolver traceback for if a requested atom is already known as insoluable.
1116  Thanks to kojiro for spotting it.
1117
1118* misc bash code cleanup.
1119
1120* PATH protection has been loosened slightly to enable 'weird' eclasses that
1121  are doing global PATH mangling.
1122
1123* $HOME location for building was shifted into the targeted packages
1124  directory, rather then a shared within $PORTAGE_TMPDIR.
1125
1126* setgid/setuid triggers now match portage behaviour; -s,o-w mode change.
1127
1128* trigger warnings are now enabled.
1129
1130* New default trigger added; CommonDirectoryModes, checks for common
1131  directories (/usr, /etc, /usr/bin, /usr/lib for example) in the merge set,
1132  checking the packages specified modes for them.  If not 0755, throws a
1133  warning.
1134
1135* For directory on directory merging, ensure_perms (default op) was changed
1136  to preserve the existing directories permissions.  Generally speaking, this
1137  means that later versions of an ebuild have to use post_inst to correct the
1138  perms if they're incorrect- previously, the new perms/mode were forced on
1139  the existing.  Several common ebuilds (openssl for example) will generate
1140  weird modes on common directories however (heavily restricted perms), which
1141  can break things.  For the time being, the default is scaled down to the
1142  looser form portage does.
1143
1144* added man page generation: pquery, pmerge
1145
1146* pconfig now has a "dump-uncollapsed" command to dump the "raw" config.
1147
1148* pebuild now supports --no-auto to run just the targeted phase.
1149
1150* mass expansion of test coverage: pkgcore.restrictions.*,
1151  pkgcore.util.*, pkgcore.ebuild.*
1152
1153* minor cleanup of pkgcore.test.ebuild.test_cpv to reduce redundant data sets;
1154  total testcase runtime reduction by about a third.
1155
1156* diverge from unittest.TestCase to provide extra checks for normal asserts-
1157  assertNotEqual for example, checks both __eq__ and __ne__ now to smoke out
1158  any potential oversights in object equality implementation.
1159
1160* use nsec mtime resolution if available to match python stdlib.
1161
1162* env var PORTAGE_DEBUG for controlling how much debug info the ebuild env
1163  generates is now PKGCORE_DEBUG; range is the same, 0 (none), 1 (just the
1164  ebuild/eclass), 2 (1 + relevant setup code), 3 (2 + filter-env data),
1165  4 (everything).
1166
1167
1168pkgcore 0.2.5: Feb 19, 2007
1169
1170* handle corner case in depend cycle processing where a package directly
1171  depends upon itself; fixes processing of sys-devel/libtool specifically.
1172
1173* for pquery --attr keywords, sort by arch, not by stable/unstable.
1174
1175* correct misc corner case atom bugs; an intersection bug, miss on an invalid
1176  use dep atom lacking a closure in cpy atom, verification of use chars in
1177  native atom,
1178
1179* osutils extensions tests, correcting a few cpy differences in behaviour from
1180  native.
1181
1182* For unpacking a tarball that doesn't have it's files in a subdir, tar will
1183  occasionally try to utime the cwd resulting in a failure- uid owner for
1184  WORKDIR was changed to allow tar to do the utime, thus succeed in unpacking.
1185  Only visible for userpriv and with oddball packages, gnuconfig for example.
1186
1187* Cleanup of a few slow test cases; running the test suite should now be around
1188  25%-33% faster.
1189
1190
1191pkgcore 0.2.4: Feb 16, 2007
1192
1193* refactoring of trigger implementations- cleanup and tests.  Additionally,
1194  eliminate a potential mtime based frace if the underlying fs (or python
1195  version) doesn't do subsecond resolution.
1196
1197* force FEATURES into the exported ebuild env always.
1198
1199* for pmerge -p $target, which prefers reuse normally, *still* prefer the
1200  highest versions, just examine vdb first, then nonvdb.
1201
1202* minor optimization in readlines usage in the backend; kills off a duplicate
1203  stat call.
1204
1205* if a stale cache entry is detected, and the backend is writable, wipe the
1206  cache entry.  Little bit slower when detected, but saves parsing the file
1207  next time around.
1208
1209
1210pkgcore 0.2.3: Feb 12, 2007
1211
1212* support for ** in package.keywords
1213
1214* export preparsed SLOT to ebuild env; ebuilds shouldn't rely on this
1215  since it can lead to fun metadata issues, but certain eclasses do.
1216
1217* fix exporting finalized form of RESTRICT to the build env; ticket 61.
1218
1219* fix for RESTRICT=fetch to not treat the filename as a uri.
1220
1221* expose the full make.conf environment to FETCHCOMMAND and RESUMECOMMAND-
1222  ticket 58
1223
1224* added support for make.conf defined FETCH_ATTEMPTS; max # of unique uris to
1225  attempts per file before giving up, defaults to 10.
1226
1227* added int_parser type for config instantiation definitions (ConfigHint),
1228  and usual introspection support.
1229
1230* fix regression limiting satisifiers for depends to installed only in corner
1231  case installed bound cycles; automake/perl specifically trigger this, thus
1232  most folks should have seen it if using -B.
1233
1234* Better handling of non-ascii characters in metadata.xml.
1235
1236
1237pkgcore 0.2.2: Jan 30, 2007
1238
1239* The terminfo db is now used for xterm title updates. If title updates
1240  worked in pkgcore 0.2 or 0.2.1 and no longer work in 0.2.2 file a bug and
1241  include the TERM environment variable setting.
1242
1243* misc fixup for asserts in cpy code when debugging is enabled, and closing
1244  directory fds when corner case error paths are taken (out of memory for
1245  example).
1246
1247* atoms are picklable now.
1248
1249* add tests for pmaint copy (quickpkg equivalent), and add
1250  --ignore-existing option to copy just pkgs that don't exist in the
1251  target repo.
1252
1253* fix pmerge handling of --clean -B for automake and a few other DEPEND level
1254  hard cycles.
1255
1256
1257pkgcore 0.2.1: Jan 24, 2007
1258
1259* fix corner case for portage configuration support; old system (<=2004)
1260  installations may have /etc/portage/sets/world, which confused pmerges
1261  world updating, leading to writing bad entries.  Ticket 54.
1262
1263* fix issues with distcc/ccache (ticket 55) so that they actually work.
1264
1265* fix pconfig dump traceback; ticket 56.
1266
1267
1268pkgcore 0.2: Jan 22, 2007
1269
1270* glsa pkgset will now include metadata/glsa from overlays.
1271
1272* pmaint script; tool for --sync'ing, doing quickpkging, moving packages
1273  between repos for repository conversions. General repository maintenance.
1274
1275* sync subsystem: supports bzr, cvs, darcs, git, mercurial (hg), rsync,
1276  and subversion.
1277
1278* binpkg repositories now support modification; FEATURES=buildpkg basically
1279
1280* binpkg contents handling is significantly faster.
1281
1282* pmerge:
1283  * supports --ask (thanks to nesl247/alex heck)
1284  * pmerge --replace is default now; use --noreplace for original behaviour.
1285  * 'installed' set was added; is a pkgset comprised of all slotted atoms from
1286    the vdb; useful for pmerge -u to enable upgrades of *everything* installed.
1287  * versioned-installed set was added; useful for -e, this set is compromised
1288    of exact version of everything installed.
1289  * added --with-built-depends, -B; resolver defaults to ignoring 'built'
1290    ebuild depends (those from vdb, from binpkgs for example), this option
1291    tells it to update those depends.
1292
1293* xterm titles
1294
1295* massive resolver cleanup, and general fixes.
1296
1297* rewritten plugins system, register_plugins is no longer used.
1298
1299* paludis flat_list cache read/write support.
1300
1301* portage flat_list cache write support (cache used for
1302  $PORTDIR/metadata/sync)
1303
1304* pebuild/pregen/pclone_cache: heavy UI cleanup.
1305
1306* pquery:
1307  * prettier printing of depends/rdepends/post_rdepends under -v
1308  * print revdep reasons
1309  * now requires an arg always; previously defaulted to '*', which is
1310    still supported but also accessible via --all .
1311  * added --maintainers-email and --maintainers-name; use case insensitive
1312    regex by default for --maintainer style options.
1313
1314* added repo_id atom extension; see doc/extended-atom-syntax.rst for details.
1315  short version, sys-apps/portage::gentoo would match portage *only* from
1316  ``gentoo`` repository.
1317
1318* overlays now combine mirror targets from their parent repository, and
1319  from their own repository data.
1320
1321* configuration subsystem:
1322  * configuration: lazy section refs were added (lazy_ref), useful for when
1323    the object arguement needs to be instantiated rarely (syncers for
1324    repositories for example).
1325
1326  * mke2fs (literal /etc/mke2fs.conf file) akin configuration format was
1327    added, pkgcore.config.mke2fsformat.config_from_file.
1328
1329* expanded test coverage.
1330
1331* merged standalone test runner into setup.py; prefered way of running it is
1332  ``python setup.py test`` now.
1333
1334* ongoing portage configuration support additions-
1335  * FEATURES=collision-protect support
1336  * INSTALL_MASK support, FEATURES noinfo, nodoc, and noman support.
1337  * /etc/portage/package.* files can be directories holding seperate files
1338    to collapse
1339
1340* gnu info regeneration trigger added.
1341
1342* performance improvements:
1343  * cpython extensions of select os.path.* functionality; 20x boost for what
1344    was converted over (stdlib's posix module is a bit inefficient).
1345
1346  * cpython extension for file io in pkgcore.util.osutils: 7x faster on ENOENT
1347    cases, 4x-5x on actual reading of small files (think cache files).  If
1348    iterating over lines of a file, use pkgcore.util.osutils.readlines- again,
1349    faster then standard file object's equivalent- 3x reduction (7.6ms to 2.5ms
1350    for full contents  reading).
1351
1352  * partial cpython reimplementation of atom code; mainly parsing, and
1353    critical __getattr__ invocation (2+x faster parse).
1354
1355  * partial cpython reimplementation of depset code; strictly just parsing.
1356    Faster (given), but mainly is able to do optimizations to the depset
1357    cheaply that python side is heavily slowed down by- ( x ( y ) ) becomes
1358    ( x y ) for example.
1359
1360  * chunks of restriction objects were pushed to cpython for memory reasons,
1361    and bringing the instantiation cost down as low as possible (the common
1362    restrict objects now are around 1-3us for new instantation, .5 to 1us
1363    for getting a cached obj instead of instantiating).
1364
1365  * bug corrected in base repo classes identify_candidates method; should now
1366    force a full walk of the repo only when absolutely required.
1367
1368  * chksuming now does a single walk over a file for all checksummers,
1369    instead of one walk per checksummer- less disk thrashing, better
1370    performance.
1371
1372  * vdb virtuals caching; massive performance boost via reduced IO.  Relies on
1373    mtime checks of vdb pkg directories for staleness detection,
1374    auto-regenerating itself as needed.
1375
1376* heavy profile code cleanup; should only read each common profile node once
1377  now when loading up multiple profiles (pcheck).  Far easier code to read
1378  in addition.
1379
1380* cache eclass staleness verification now relies on mtime comparison only-
1381  allows for eclasses to move between repos; matches portage behaviour.
1382
1383* pkgcore.util.caching.*, via __force_caching__ class attr in consumers, can
1384  be used to force singleton instance creation/caching (error if unhashable).
1385
1386* ebuild support:
1387  * PORTAGE_ACTUAL_DISTDIR was reenabled, thus cvs/svn equivalent ebuilds are
1388    usable once again.
1389  * fixed pkgcore's pkgcore emulation of has_version/best_version matching
1390    behaviour for old style virtuals to match portages (oddity, but ebuilds
1391    rely on the goofy behaviour).
1392  * various fixups to unpack function; should match portage behaviour as of
1393    01/07 now.
1394  * if FEATURES=test, set USE=test; if USE=test has been explicitly masked for
1395    a package, disable src_test run; matches portage 2.1.2 behaviour.
1396  * cleanup build directory, and unmerge directories upon finishing
1397
1398* filter-env now is accessible directly via python; pkgcore.ebuild.filter_env.
1399  Needs further work prior to being usable for pcheck inspection of ebuilds,
1400  but it's a good start.
1401
1402
1403pkgcore 0.1.4: Oct 24, 2006
1404
1405* Compatibility with caches written by portage 2.1.2_pre3-r8.
1406
1407
1408pkgcore 0.1.3: Oct 24, 2006
1409
1410* Always process "|| ( a b )" in the right order.
1411
1412  * Fix disabling a flag in package.use.mask or package.use.force.
1413
1414
1415pkgcore 0.1.2: Oct 10, 2006
1416
1417* Make filter_env work on hppa (and possibly more architectures) where using
1418  python CFLAGS for this standalone binary does not work.
1419
1420* Fall back to plain text output if the TERM variable is unsupported.
1421
1422* Deal with dangling symlinks in binpkg repositories.
1423
1424* Fix expanding of incrementals (like USE) in make.defaults.
1425
1426* pquery: support --attr fetchables, handle extra commandline arguments as
1427  -m or --expr restrictions.
1428
1429* USE deps once again allow setting a flag only if it is actually settable
1430  on the target package.
1431
1432
1433pkgcore 0.1.1: Oct 02, 2006
1434
1435* hang fix for test_filter_env
1436
1437* package.keywords fixes: no longer incremental, supports '*' and '~*'
1438  properly
1439
1440* FEATURES="userpriv" support works again.
1441
1442* pmerge repository ordering now behaves properly; prefers src ebuilds, then
1443  built pkgs; -k inverts that (previously was semi-undefined)
1444
1445* binpkg fixes: run setup phase
1446
1447* replace op fixes: force seperate WORKDIR for unmerge to protect against
1448  env collisions
1449
1450* loosened category rules: allow _. chars to support cross-dev hack.
1451
1452* build fixes: make $A unique to avoid duplicate unpacks; force distdir
1453  creation regardless of whether or not the pkg has any stated SRC_URI
1454  (fixes cvs and subversion eclsas usage).  Fix sandbox execution to chdir
1455  to an existant directory (sandbox will fail if ran from a nonexistant dir).
1456
1457* change DelayedInstantiation objects to track __class__ themselves; this
1458  fixes pquery to properly shutdown when ctrl+c'd (previously could swallow
1459  the interrupt due to cpython isinstance swallowing KeyboardInterrupt).
1460
1461
1462pkgcore 0.1: Sep 30, 2006
1463
1464* Initial release.
1465
1466* Sync functionality doesn't yet exist (pmaint script will be in 0.2)
1467
1468* pmerge vdb modification requires --force; this will be disabled in 0.2,
1469  mainly is in place so that folks who are just looking, don't inadvertantly
1470  trigger an actual modification.
1471
1472* not all portage FEATURES are implemented; same for QA.
1473
1474* If overlays are in use, pkgcore may defer to its' seperate cache to avoid
1475  pkgcore causing cache regen for portage (and vice versa); this occurs due
1476  to pkgcore treating overlays as their own repo and combining them at a
1477  higher level; portage smushes them all together thus rendering each subtree
1478  unusable in any standalone fashion.
1479
1480* pkgcore is far more anal about blocking bad behaviour in ebuilds during
1481  metadata regeneration; tree is clean, but if you do something wrong in
1482  global scope, it *will* catch it and block it.
1483
1484* EBD; daemonized ebuild.sh processing (effectively), pkgcore reuses old
1485  ebuild.sh processes to avoid bash startup, speeding regen up by roughly
1486  2x.
Note: See TracBrowser for help on using the browser.