0.1.5.4 - 2012 October 26: * Fixes: * ordering of jobs * auto (dependency) flag for pkgng * deadlock between OS pipes and wait() * options detection (track changes in Port's infrastructure) * detection of pkgng mode (aka ${OSVERSION} > 1000017) 0.1.5.3 - 2012 August 19: * Dynamically work around python issue 11973 0.1.5.2 - 2012 July 08: * Implement support for new options framework 0.1.5.1 - 2012 June 16: * Fix reading of new option format 0.1.5 - 2012 May 28: * Added '-j' option to tune concurrency * Removed '--force' and '--force-all' option to simplify code * Major rewrite of stage handling code * Initial work for splitting the repo method into multiple stages * Use a separate log directory for chroot builds. * Use the DependHandler to install ports (i.e. explicit ports can now be installed directly from repo or package if --method prescribes that) * Fixes: * Partial fix for bug 0.1.3.1-0 (superseded by bug 0.1.5-0) * Fix the "0 failed" Top-interface bug * Properly display information about failed ports * Mark dependencies as such (-DINSTALLS_DEPENDS, `pkg set -a 1`) * Properly detect installed ports (only match port origin) 0.1.4.1 - 2012 April 23: * Fixes: * Fix assertion for Port.build_stage (error prevented any port building) * Suppress questions from pkgng (s/ALWAYS_ASSUME_YES/ASSUME_ALWAYS_YES/) 0.1.4 - 2012 April 22: * Support pkgng as an alternative package manager * Support installing packages from a repository * Support port pre-cleaning * Support dynamic defaults from /etc/make.conf (i.e. DEPENDS_(PRE)CLEAN) * Major code cleanup and refactor effort * Switch to a revised milestone schedule * Fixes: * Fix assertion when using PKGINSTALL builder * If kevent fails with EINTR then retry command again 0.1.3.1 - 2011 July 21: * Install project meta files, for port * Add copyright notice (FreeBSD style BSD license) * Fixes: * Ordering of ports in Top-style monitor * Upgrading multiple ports with -u flag (-U is preferred) * Many fixes to the build logic (depend resolution and stage checks) 0.1.3: 2011 June 19: * Implemented a kqueue (external) event handler * Remove the use of callback (use Signal instead) * Add multiple methods (with fallback) to resolve a port * Obey -DUSE_PACKAGE_DEPENDS (see previous item) * Create a persistent stage (and stage) tracker based on signals from builders * Improve performance by: * Skipping exception check from subprocess * Caching variables used by Mk/bsd.port.mk and Mk/bsd.port.subdir.mk * Use StateTracker for Top UI 0.1.2 - 2011 April 16: * Rename to portbuilder (and pyport->libpb) * Use python/distutils to make program installable * Add support for profiling internals (use gprof2dot to parse output) * Add FreeBSD port (currently only -devel) 0.1.1 - 2011 March 16: * Add support for fetch_only mode * Add support for (recursive) update mode * Cleanup after port completion * Allow program to be terminated prematurely * Add support for building ports in a chroot environment * Add internal support for cross building (convenience) * Add package building 0.1.0 - 2011 February 15: * Rewrite of pypkg (now pyport) to remove need for threads 0.0.5 - 2008 November 17: * Speedups in: - pkg_version * CacheDB: - Caching of port data - Caching of fetched files - AutoExit (move to quick notification) - PortCache (reduced duplicate jobs) * Fix monitor when console access is required (config and interactive build) * Port: - Self cleaning and precleaning (with precision cleaning) - Add logging of port targets - Handle pkg-message - config stage only calls config when needed - fetch exclusion based on files fetching - Proper handling of non privileged building (via sudo) 0.0.4 - 2008 October 29: * pypkg: * Add a stripped down version that can - Install/upgrade ports - Make packages - Allow variables to be passed to make - fetch only - No op (just prints the commands) * Initial support for making INDEX (still too slow) * Port: - Can clean ports * Rename TargetBuilder to StageBuilder * Create progress monitor for the build process (aka top mode) * Create progress monitor type 2 (aka stat mode) * Implement proper thread/system shutdown: - Create interrupt handlers - Create exit handlers - Provide easy interface for running main * Cleanup the use of tools * Create proper statistical handling of data (with easy collection methods) * Allow KeyboardInterrupt to terminate program: - Get threads to terminate kindly * PortCache: - Normalise name (for getters) * WorkerQueue: - Add terminate and kill functions (to clean off threads) 0.0.3 - 2008 September 30: * Port: - Make thread safe - Use TargetBuilder to handle stages - Make depends allocate late - Stage resolution fixes * DependHandler: - Make thread safe - Allow constructor to initialise dependencies - Add getters for dependencies and dependants (ports and/or field) * WorkerQueue: - Have all threads terminate on exit() * queue: - Add installer queue * make: - Rename pre_target to pre_cmd - Handle pipes properly - Allow disabling of pre_cmd - Condense functionality * Create ordering logic for building (and resolving dependants) * Remove make_target from global import 0.0.2 - 2008 August 30: * Port: - Update attribute tables and fixers - Late allocation for dependent handler - Create handlers for targets - Refractured handler code * PortDepend: - Implement with API and pseudo working code * make: - Handles environment variables - Executor for make targets 0.0.1 - 2008 July 19: * Port: - Basic Port class created - Version information about build and install status - Generic attribute support - Port creation filterable (to prevent all dependants being created at once) * PortCache: - Live cache of ports - Handles adding ports to the queue for construction - Creates a Port on-demand * WorkerQueue: - Dynamic pool of workers to execute jobs - Workers created on-demand - Worker pool (numbers) dynamically adjustable - Workers terminate when idle