root/pkgcore/NEWS @ ferringb%2540gmail.com-20081112053610-xrngjdum1nhzkvzz

Revision ferringb%2540gmail.com-20081112053610-xrngjdum1nhzkvzz, 44.2 kB (checked in by Brian Harring <ferringb@…>, 11 days ago)

update news for ticket 187

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