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