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