root/releases/pkgcore/0.2.9/NEWS @ ferringb%2540gmail.com-20070319130743-s4d68er4zrsv9zpo

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

rework use.*/package.use.* stacking order to match portages.

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