root/releases/pkgcore/0.2.8/NEWS @ ferringb%2540gmail.com-20070317154017-qxfox5o8dzw9eged

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

drop generic_equality usage in native_CPV due to it causing 6_alpha != 6_alpha0; could reformat the cpvstr, but dislike that approach so a simple eq and ne was added.

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