root/masterdriverz/pkgcore-manifest/NEWS @ ferringb%2540gmail.com-20070309101144-g2tz6fuwh7fi1j6w

Revision ferringb%2540gmail.com-20070309101144-g2tz6fuwh7fi1j6w, 15.5 kB (checked in by Brian Harring <ferringb@…>, 21 months ago)

fix up init for the various syncers, and tweak the base syncer classes to pass via kwargs where appropriate

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