Fabian Groffen [Sun, 20 Jul 2008 10:13:34 +0000 (10:13 -0000)]
Merged from trunk 11139:11147
| 11140 | Use the memoized _choose_pkg() result to return earlier from |
| zmedico | _schedule_tasks() when possible. |
| 11141 | Calling _schedule() from Scheduler._poll() is unsafe since |
| zmedico | the _schedule() call itself can consume poll events. |
| | Therefore, until a safe way exists, don't do it. |
| 11142 | Fix Scheduler._schedule_tasks_imp() so that it never |
| zmedico | indicates that there are remaining tasks in cases when it's |
| | supposed to bail out due to a package failure. |
| 11143 | Merge tasks currently run synchronously which makes it |
| zmedico | necessary to disable auto_schedule on the merge queue in |
| | order to avoid excess recursion which prevents tasks from |
| | being marked complete as soon as they should be. |
| 11144 | Make PollScheduler._poll() add poll events to the stack |
| zmedico | instead of returning them. This makes it more useful as a |
| | hook, allowing Scheduler._poll() to safely call _schedule(). |
| 11145 | * Clean up _schedule_tasks_imp() a bit. * Make _task() |
| zmedico | access _background directly instead of as a parameter. |
| 11146 | Fix Scheduler emergelog() interaction to properly disable |
| zmedico | emergelog() xterm titles whenever the status display is |
| | enabled. |
| 11147 | Redirect some more unmerge() output through writemsg_level() |
| zmedico | so that it can filtered out when in background mode. |
svn path=/main/branches/prefix/; revision=11149
Fabian Groffen [Sun, 20 Jul 2008 10:12:19 +0000 (10:12 -0000)]
Merged from trunk 11125:11139
| 11126 | Bug #199788 - Make repoman parse GLEP 56 USE flag |
| zmedico | descriptions from metadata.xml (in addition to |
| | use.local.desc). Thanks to Doug Goldstein <cardoe@g.o> for |
| | this patch. |
| 11127 | Add a MergeListItem.statusMessage(msg) callback for |
| zmedico | displaying messages like "Building this" or "Installing |
| | that". This delegates the resposibility of generating \r and |
| | \n control characters, to guarantee that lines are created |
| | or erased when necessary and appropriate. TODO: Make |
| | JobStatusDisplay display the output. |
| 11128 | Add support to JobStatusDisplay() to update the current line |
| zmedico | on the terminal, which in the future can be used to erase |
| | the line and update it with new information such as the |
| | latest load average measurement. This uses curses to obtain |
| | the simple control codes that are needed, and has fallback |
| | codes in case the curses module is unavailable or raises an |
| | error. When stdout is not a tty then the line erasing |
| | behavior is automatically disabled and display updates are |
| | simply show on a new line. |
| 11129 | When JobStatusDisplay.displayMessage() is called while the |
| zmedico | status is currently displayed, call display() after showing |
| | the given message. |
| 11130 | Make all poll() calls pass through PollScheduler._poll(). |
| zmedico | |
| 11131 | Add a hook in Scheduler._poll() that updates the display |
| zmedico | once every 2 seconds if stdout is a tty, so that the load |
| | average numbers are always current. |
| 11132 | Display "Verifying ebuild manifests" and "Starting parallel |
| zmedico | fetch" via the status display instead of directly to stdout. |
| 11133 | Add a Scheduler._background_mode() method to control |
| zmedico | background mode, and trigger it if either --quiet is enabled |
| | or --jobs > 1. |
| 11134 | Fix typos. |
| zmedico | |
| 11135 | * Call self._schedule() from inside Scheduler._poll(). This |
| zmedico | ensures that new jobs can scheduled as soon a the load |
| | average is low enough, and one of the running jobs doesn't |
| | have to complete for _schedule() to get called. * Cache the |
| | result of _background_mode() so it doesn't have to be called |
| | inside _schedule(), since this method is called a lot more |
| | often now. * Move background related state adjustments into |
| | _background_mode(). * Call _status_display.display() |
| | unconditionally inside _schedule_tasks(), since we want to |
| | update the display to show current load average even if no |
| | new jobs are added. |
| 11136 | Fix JobStatusDisplay._init_term() to supply default codes in |
| zmedico | cases when curses.tigetstr() returns None. |
| 11137 | Instead of calling _background_mode(), use the cached |
| zmedico | result. |
| 11138 | Bug #231464 - Replace erroneous "return" statement in |
| zmedico | elog_process() with a continue statement. Thanks to TGL for |
| | this patch. |
| 11139 | When Scheduler._choose_pkg() is unable to find a package, |
| zmedico | memoize the result until at least one of the existing jobs |
| | completes. |
svn path=/main/branches/prefix/; revision=11148
Fabian Groffen [Fri, 18 Jul 2008 09:02:11 +0000 (09:02 -0000)]
Merged from trunk 11111:11124
| 11112 | Since it's not very interesting, disable the "merges" part |
| zmedico | of status display. |
| 11113 | Also, don't count "merges" as changes in the status display. |
| zmedico | |
| 11114 | Initialize JobStatusDisplay.merges since it's not |
| zmedico | initialized with the bound properties anymore. |
| 11115 | Also, reset "merges" in JobStatusDisplay.reset(). |
| zmedico | |
| 11116 | When dblink is looping over files for merge/unmerge, |
| zmedico | temporarily yield to the scheduler each time a fixed number |
| | of files are processed (currently 20). This gives the |
| | scheduler an opportunity to service pending poll events. |
| | This is implemented with a new |
| | PollScheduler._schedule_yield() method which calls poll() |
| | exactly once, without blocking, and any services any |
| | resulting poll events. |
| 11117 | Redirect dblink elog messages from stdout to the log file |
| zmedico | when in background mode. This is implemented by adding a new |
| | "out" parameter to the portage.elog.e* functions, which can |
| | be used to send output to an arbitary file instead of |
| | stdout. |
| 11118 | If an problem is detected in dblink._security_check(), log |
| zmedico | it via elog so that it's properly displayed in the |
| | foreground even when in background mode. |
| 11119 | Use dblink._eerror() to eliminate duplicate code. |
| zmedico | |
| 11120 | In dblink._dblink_display_merge(), when in background mode |
| zmedico | and no log is available, suppress output when level < |
| | logging.WARNING. This hides ">>> Regenerating |
| | /etc/ld.so.cache..." messages that appear after postrm when |
| | PORT_LOGDIR is unset (the log file if it exists is removed |
| | after postrm so there's no place to log the message). |
| 11121 | Change package status messages to give more accurate |
| zmedico | information about what is happening at a given time: * |
| | Change "Emerging" messages to "Building" for ebuilds and |
| | "Extracting" for binary packages. * Change "Merging" |
| | messages to "Installing" and "Uninstalling". |
| 11122 | Add background output redirection and async ebuild phase |
| zmedico | support for PackageUninstall (automatic uninstalls that |
| | solve blockers). |
| 11123 | Suppress counter initialization warning messages in |
| zmedico | vardbapi.get_counter_tick_core() in cases when the vdb is |
| | empty. This avoids pointless error messages when merging |
| | packages into a new root, like when building stage 1. |
| 11124 | Fix typo. |
| zmedico | |
svn path=/main/branches/prefix/; revision=11125
Fabian Groffen [Thu, 17 Jul 2008 14:09:19 +0000 (14:09 -0000)]
Fix identation (tabnanny complains about this), should be merged into trunk
svn path=/main/branches/prefix/; revision=11110
Fabian Groffen [Thu, 17 Jul 2008 14:06:14 +0000 (14:06 -0000)]
Merged from trunk 11106:11107
| 11107 | Reformat the status display. Here's an example: >>> Jobs: 0 |
| zmedico | of 2 complete, 2 running Load average: 2.9, 2.4, 2.0 >>> |
| | Jobs: 0 of 2 complete, 1 running, 2 merges Load average: |
| | 2.8, 2.4, 2.0 >>> Jobs: 2 of 2 complete Load average: 2.6, |
| | 2.3, 2.0 |
svn path=/main/branches/prefix/; revision=11109
Fabian Groffen [Thu, 17 Jul 2008 14:03:12 +0000 (14:03 -0000)]
Merged from trunk 11087:11105
| 11088 | Avoid raising an IndexError from deprecated_profile_check() |
| zmedico | if the deprecated file happens to be empty. Instead just |
| | refer to the "Gentoo Upgrading Guide". Thanks to armin76 for |
| | reporting. |
| 11089 | Remove TODO since it no longer exists. |
| zmedico | |
| 11090 | Add --anon option for anonsvn.gentoo.org users. |
| zmedico | |
| 11091 | Add --anon to the usage message. |
| zmedico | |
| 11092 | Eliminate duplicate code by making EbuildProcess inherit |
| zmedico | from SpawnProcess instead of SubProcess. |
| 11093 | When SpawnProcess._start() spawns a process in the |
| zmedico | background, use /dev/null so that any attempts to read from |
| | stdin will immediately return EOF instead of blocking |
| | indefinitely. TODO: Use job control functions like |
| | tcsetpgrp() to control access to stdin. |
| 11094 | Add the new --anon option to the getopt args. |
| zmedico | |
| 11095 | In SequentialTaskQueue.clear(), remove the exit listener |
| zmedico | from each task before cancelling it. |
| 11096 | Add a JobStatusDisplay class to encapsulate the status |
| zmedico | display. This object tracks whether or not any of it's |
| | attributes have changed since the last time it was |
| | displayed, so the it's only displayed when something has |
| | changed. Unlike before, now the display should always update |
| | whenever a relevant change occurs. |
| 11097 | Don't increment the "complete" count for uninstall tasks. |
| zmedico | |
| 11098 | * Add a new portage.util.writemsg_level() function which |
| zmedico | uses a "level" parameter to control whether the message is |
| | sent to stdout or stderr. When level >= logging.WARNING then |
| | the message is sent to stderr, otherwise it is sent to |
| | stdout. The noiselevel is passed directly to writemsg(). * |
| | Use writemsg_level() for handling merge messages from dblink |
| | and add appropriate noiselevel values to each call. * Add a |
| | writemsg_level parameter to portage.env_update() so that |
| | dblink can pass in dblink._display_merge() as a means to |
| | redirect output back to the scheduler for appropriate |
| | handling when running in the background. |
| 11099 | Tweak interaction between Scheduler and status display so |
| zmedico | that it doesn't display more often than necessary and avoids |
| | showing inconsistent counts. |
| 11100 | Handle the case in dblink.unmerge() when the log file is a |
| zmedico | temp file and so it doesn't exist after postrm cleaning. |
| 11101 | Don't show a blank newline before ">>> Emerging" when in |
| zmedico | background mode. |
| 11102 | Make BinpkgVerifier redirect output to the fetch log when in |
| zmedico | background mode. |
| 11103 | Update the status display in _build_exit(), after |
| zmedico | decrementing the job count. |
| 11104 | Make Binpkg send "Extracting" messages to the log file when |
| zmedico | in background mode, instead of stdout. |
| 11105 | Don't show "Merging" and "merged." messages when in |
| zmedico | background mode. |
svn path=/main/branches/prefix/; revision=11108
Fabian Groffen [Thu, 17 Jul 2008 13:58:15 +0000 (13:58 -0000)]
PORTAGE_CONFIGROOT includes EPREFIX since my recent changes, thanks Lothar Braun for reporting
svn path=/main/branches/prefix/; revision=11106
Fabian Groffen [Wed, 16 Jul 2008 18:11:32 +0000 (18:11 -0000)]
fix more prefix errors
svn path=/main/branches/prefix/; revision=11087
Fabian Groffen [Wed, 16 Jul 2008 18:02:33 +0000 (18:02 -0000)]
fix NameError
svn path=/main/branches/prefix/; revision=11086
Fabian Groffen [Wed, 16 Jul 2008 17:53:11 +0000 (17:53 -0000)]
Fix misc amount of out-of-prefix issues
svn path=/main/branches/prefix/; revision=11085
Fabian Groffen [Wed, 16 Jul 2008 15:33:03 +0000 (15:33 -0000)]
I forgot about EROOT, reorder to make a bit more sense
svn path=/main/branches/prefix/; revision=11084
Fabian Groffen [Wed, 16 Jul 2008 15:21:47 +0000 (15:21 -0000)]
expansion doesn't run on man-pages, document Prefix variables in ebuild.5
svn path=/main/branches/prefix/; revision=11083
Fabian Groffen [Wed, 16 Jul 2008 13:10:43 +0000 (13:10 -0000)]
We have a most confusing situation here, which is most of all pretty
weak for protecting us from making mistakes.
First there is a config_root (PORTAGE_CONFIGROOT) which can be a path
somewhere, from which all paths need to be relative (e.g.
etc/portage), hence those constants do NOT have EPREFIX, because
config_root contains EPREFIX by default -- overriding it loses the
EPREFIX as one would expect.
Second there is target_root (ROOT) which is to install somewhere
completely else, in Prefix of limited use. Because this is an offset
always given, the EPREFIX should always be applied in it. Those
constants (like VDB_PATH) DO have EPREFIX.
svn path=/main/branches/prefix/; revision=11082
Fabian Groffen [Wed, 16 Jul 2008 12:21:33 +0000 (12:21 -0000)]
Revert -r11077:11080, lstrip doesn't take a string but chars. Need to fix it differently.
svn path=/main/branches/prefix/; revision=11081
Fabian Groffen [Wed, 16 Jul 2008 12:07:46 +0000 (12:07 -0000)]
this is going to cause some headaches, strip more prefixes for now
svn path=/main/branches/prefix/; revision=11080
Fabian Groffen [Wed, 16 Jul 2008 11:52:52 +0000 (11:52 -0000)]
more prefix confusement
svn path=/main/branches/prefix/; revision=11079
Fabian Groffen [Wed, 16 Jul 2008 11:24:54 +0000 (11:24 -0000)]
messing around with/without EPREFIX, I'm affraid I lost the consistency here
svn path=/main/branches/prefix/; revision=11078
Fabian Groffen [Wed, 16 Jul 2008 11:11:49 +0000 (11:11 -0000)]
Merged from trunk 11060:11076
| 11061 | In Scheduler._restart_if_necessary(), use list.remove() |
| zmedico | instead of assuming that portage is first in the resume |
| | list. |
| 11062 | Make EbuildFetcher copy FETCHCOMMAND and RESUMECOMMAND to |
| zmedico | the fetch environment, in case the default values have been |
| | overridden. |
| 11063 | Add some cross references between emerge's new parallel |
| zmedico | build options and MAKEOPTS. |
| 11064 | When --jobs > 1, display a status message each time that |
| zmedico | Scheduler._schedule_tasks() is called. For example: >>> |
| | Jobs: 2 running, 0 merges, load average: 0.34, 0.46, 0.27 |
| 11065 | Redirect dblink.unmerge() output to the log file when --jobs |
| zmedico | > 1. |
| 11066 | Adapt the dblink merge display callback to use log levels |
| zmedico | from the logging module so that it can be used as an |
| | interface for both writemsg() and writemsg_stdout(). |
| 11067 | Make dblink._display_merge() detect scheduler presence |
| zmedico | internally. |
| 11068 | Redirect dblink.merge() output to the log file when --jobs > |
| zmedico | 1. |
| 11069 | Pass the whole dblink instance into |
| zmedico | Scheduler._dblink_display_merge() in case it's ever needed. |
| 11070 | Show LDFLAGS in emerge --info output. Thanks to dirtyepic |
| zmedico | for this patch. |
| 11071 | Remove the config._filter_calling_env attribute since it's |
| zmedico | not really needed. Replace it with an simple |
| | os.path.exists() call inside config.environ(). |
| 11072 | Add async support for calling functions in |
| zmedico | misc-functions.sh: * Create a new MiscFunctionsProcess class |
| | derived from SpawnProcess. * Add "background" support to the |
| | SpawnProcess class and split out a _spawn() template |
| | function so MiscFunctionsProcess can override it. * Rename |
| | the existing EbuildPhase class to EbuildProcess. * Create a |
| | new EbuildPhase class derived from CompositeTask. This class |
| | spawns the EbuildProcess and MiscFunctionsProcess classes as |
| | sub-tasks. |
| 11073 | * Add xterm titles support to Scheduler._display_status(). * |
| zmedico | Tweak emergelog() so that it won't interfere with the |
| | scheduler summary. |
| 11075 | Add a progress counter showing "x of y complete" to |
| zmedico | Scheduler._display_status(). |
| 11076 | Pass background=True into prefetcher constructors. |
| zmedico | |
svn path=/main/branches/prefix/; revision=11077
Fabian Groffen [Wed, 16 Jul 2008 08:34:04 +0000 (08:34 -0000)]
Do not check config_root + prefix, if we explicitly set PORTAGE_CONFIGROOT we mean that dir, not the Prefix variant
svn path=/main/branches/prefix/; revision=11074
Fabian Groffen [Tue, 15 Jul 2008 19:59:50 +0000 (19:59 -0000)]
try to be more correct in Prefix
svn path=/main/branches/prefix/; revision=11060
Fabian Groffen [Tue, 15 Jul 2008 19:40:07 +0000 (19:40 -0000)]
Prevent false positives on AIX for .a files. On AIX these are pseudo "dynamic libraries".
svn path=/main/branches/prefix/; revision=11059
Fabian Groffen [Tue, 15 Jul 2008 19:21:45 +0000 (19:21 -0000)]
Merged from trunk 11048:11057
| 11049 | Split out a generic SubProcess._unregister() method that's |
| zmedico | called from _wait() to make sure everything is cleaned up |
| | before wait() returns. This might solve an intermittent |
| | KeyError that is sometimes raised from the main poll() loop |
| | when a handler is no longer registered for a poll() event |
| | that has occurred. |
| 11050 | Split out a _main_loop_cleanup() method from |
| zmedico | Scheduler._merge() and call it before restarting in |
| | _restart_if_necessary() to kill any parallel-fetch tasks |
| | that may still be running. |
| 11051 | Add a PollScheduler._next_poll_event() method to maintain a |
| zmedico | central event queue between _poll_loop() and |
| | _schedule_wait(). This solves an intermittent KeyError from |
| | _poll_loop() which occured when an event handler called |
| | _schedule_wait() which unregistered an event handler for an |
| | event that _poll_loop() had already recieved but hadn't |
| | processed yet. |
| 11052 | Use self.registered to return early from SubProcess.poll() |
| zmedico | when possible, and remove the related code from |
| | SequentialTaskQueue.schedule() since this makes it obsolete. |
| 11053 | Make AsynchronousTask "registered" attributes private since |
| zmedico | poll() and wait() do the job now. Also, hide |
| | SubProcess.files since there's no reason to expose it. |
| 11054 | * Fix --keep-going breakage that occured when |
| zmedico | Scheduler._choose_pkg() was introduced. * Handle multiple |
| | failed builds when buildinding in parallel. * Fix |
| | Scheduler._do_merge_exit() to remove the correct package |
| | since it's not always at position 0 when using --jobs. in |
| | parallel, so |
| 11055 | When there is more than one failure, show a summary packages |
| zmedico | that failed to build or install. This is especially useful |
| | when using --jobs or --keep-going since there can be |
| | multiple failures. |
| 11056 | When packages fail with --jobs > 1 and the "echo" elog |
| zmedico | module is not enabled, emulate elog's mod_echo module to |
| | show the 'error' level messages, which should include the |
| | important die message. This is implemented by adding a |
| | private hook inside elog_process() which the scheduler uses |
| | to collect error messages. |
| 11057 | Since lots of packages will have to be fixed before stable |
| zmedico | portage can abort with "this code is not 64bit clean", |
| | convert the die call to an eerror message instructing the |
| | user to file a bug at bugs.gentoo.org. This should allow us |
| | to stabilize portage-2.2 without having to ensure that the |
| | entire stable tree is 64 bit clean first. |
svn path=/main/branches/prefix/; revision=11058
Fabian Groffen [Mon, 14 Jul 2008 19:20:17 +0000 (19:20 -0000)]
Merged from trunk 11041:11047
| 11042 | Ensure that that Scheduler._main_loop() doesn't return |
| zmedico | before the merge queue is empty. |
| 11043 | Remove redundant failed_packages check from |
| zmedico | Scheduler._main_loop() since it's now handled inside the |
| | _schedule() call. |
| 11044 | Add async execution support for pkg_preinst and |
| zmedico | pkg_postinst. This allows the scheduler's poll loop to run |
| | so that other parallel tasks aren't starved for output |
| | handling while pkg_preinst and pkg_postinst are executing. |
| 11045 | * Fix doebuild so "returnpid" works for preinst and |
| zmedico | postinst. * Add async support for pkg_prerm and pkg_postrm. |
| | * Add missing "treetype" parameter to dblink constructor |
| | calls. * Fix SubProcess._wait() to check self.returncode |
| | _after_ calling the scheduler. |
| 11046 | Call prepare_build_dirs() prior to pkg_preinst so that |
| zmedico | logging works properly. |
| 11047 | Unregister from poll() objects before closing file in order |
| zmedico | to hopefully avoid stale events that can trigger a KeyError |
| | in Scheduler._poll_loop() if the event's file descriptor no |
| | longer has a registered handler. |
svn path=/main/branches/prefix/; revision=11048
Fabian Groffen [Sun, 13 Jul 2008 14:28:38 +0000 (14:28 -0000)]
Merged from trunk 11038:11040
| 11039 | * Since can_poll_pty() is unsafe due to he possibility of |
| zmedico | the poll() call blocking forever, replace it with a simpler |
| | test on /dev/null that's derived from a test in a glib2 |
| | configure script. * Remove PtyReaderTestCase since it has |
| | the same problem as can_poll_pty(). |
| 11040 | Remove all traces of the "poll" parameter for the |
| zmedico | PollScheduler constructor since it was only used by |
| | can_poll_pty(). |
svn path=/main/branches/prefix/; revision=11041
Fabian Groffen [Sun, 13 Jul 2008 11:56:18 +0000 (11:56 -0000)]
Merged from trunk 11036:11037
| 11037 | In can_poll_tty(), direct bash's stderr into the pty since |
| zmedico | we don't want so see any error message it generates (due to |
| | PipeReader closing it's end of the pty). The error message |
| | is irrelevant since all we want to know is whether or not |
| | the data is successfully transmitted through the pty. |
svn path=/main/branches/prefix/; revision=11038
Fabian Groffen [Sun, 13 Jul 2008 11:28:59 +0000 (11:28 -0000)]
Merged from trunk 11017:11035
| 11018 | Fix a few typos found with pyflakes. Thanks to Cardoe for |
| zmedico | reporting. |
| 11019 | Fix SpawnProcess.start() to return early and notify exit |
| zmedico | listeners if the spawn call fails. |
| 11020 | For subclasses of Task, explicitly assign __hash__ = |
| zmedico | Task.__hash__ for compatibility with python-2.6_beta. Thanks |
| | to Arfrever for reporting. |
| 11021 | * Add a digraph.get() method, analogous to dict.get(), used |
| zmedico | to simplify Scheduler._pkg(). * Define digraph.__contains__ |
| | for containment tests via the "in" operator. |
| 11022 | Create a test case for the poll loop which uses the loop to |
| zmedico | read data from a pipe and assert that the data written to |
| | the pipe is identical to the data read from the pipe. In |
| | order to implement this test, several useful classes have |
| | been added: * PipeReader Reads output from one or more files |
| | and saves it in memory, for retrieval via the getvalue() |
| | method. This is driven by the scheduler's poll() loop, so it |
| | runs entirely within the current process. * QueueScheduler |
| | Add instances of SequentialTaskQueue and then call run(). |
| | The run() method returns when no tasks remain. * |
| | TaskScheduler A simple way to handle scheduling of |
| | AsynchrousTask instances. Simply add tasks and call run(). |
| | The run() method returns when no tasks remain. |
| 11023 | Derive a PtyReaderTestCase from PipeReaderTestCase. This |
| zmedico | test is expected to fail on some operating systems such as |
| | Darwin that do not support poll() on pty devices. |
| 11024 | Split out a portage._create_pty_or_pipe() function to avoid |
| zmedico | duplicate code. |
| 11025 | Implement a runtime test that checks whether it's possible |
| zmedico | to use poll() to read data from a pty device. The test only |
| | runs the first time that the can_poll_pty() function is |
| | called (currently happens when the first PollScheduler |
| | instance is created). The test is known to fail on Darwin |
| | and we're not sure how many other kernels might have a |
| | similar problem, this runtime test allows us to avoid having |
| | to maintain special cases for various kernels. |
| 11026 | Set self._mergelist inside Scheduler._calc_resume_list() |
| zmedico | since it needs to be set when calling _set_digraph(). |
| 11027 | Add missing self.wait() calls when tasks return |
| zmedico | unsuccessfully. |
| 11028 | Remember to close file descriptors before returning early |
| zmedico | from can_poll_pty(). |
| 11029 | Rename PollScheduler._schedule() to _schedule_wait(). |
| zmedico | |
| 11030 | * Wrap calls to PollScheduler._schedule_tasks() with a |
| zmedico | _schedule() method that automatically returns early from any |
| | recursive calls that the _schedule_tasks() call might |
| | trigger. This makes _schedule() safe to call from inside |
| | exit listeners. * Call _schedule() inside |
| | Scheduler._job_exit() to trigger a new job when possible. * |
| | Fix SequentialTaskQueue._task_exit() to avoid a potential |
| | KeyError if the task had already been removed from |
| | self.running_tasks for some reason. |
| 11031 | Decrement the job count prior to merging a given package |
| zmedico | (after it's been built or extracted). This will allow |
| | additional jobs to spawn sooner in some cases when there may |
| | be idle resources. |
| 11032 | Fix Scheduler._schedule_tasks() so that it never schedules a |
| zmedico | task when a package has already failed. |
| 11033 | In order to avoid having BlockerDB instantiate a new |
| zmedico | FakeVartree for each merge, add a FakeVartree.sync() method |
| | and so that the same FakeVartree can be reused. Package |
| | counters and timestamps are used to validate package |
| | instances during each sync() call. |
| 11034 | Fix broken binpkg path comparison in in binarytree.inject() |
| zmedico | so that duplicate entries are correctly from the Packages |
| | index. |
| 11035 | Changes to pym/_emerge/__init__.py from the previous commit |
| zmedico | weren't meant to be committed yet. |
svn path=/main/branches/prefix/; revision=11036
Fabian Groffen [Fri, 11 Jul 2008 07:41:11 +0000 (07:41 -0000)]
Merged from trunk 11001:11016
| 11002 | Use the EbuildFetcher class to implement async fetch for the |
| zmedico | EbuildBuild class. When in background mode, fetch output is |
| | logged to emerge-fetch.log. This solves a problem with |
| | calling doebuild(returnpid=1) and then doebuild calling |
| | fetch() synchronously. In that case, doebuild would return |
| | an int if fetch() failed (including when running |
| | pkg_nofetch), which would lead to a TypeError since |
| | doebuild(returnpid=1) is supposed to return a list |
| | containing a spawned pid. |
| 11003 | For parallel-fetch prefetchers, pass fetchonly=1 into the |
| zmedico | EbuildFetcher constructor. |
| 11004 | Bug #231358 - Fix 'NameError: global name 'p' is not |
| zmedico | defined' in getmaskingstatus() that's triggered by a |
| | conditional in LICENSE. |
| 11005 | Like in Binpkg, cancel or wait for the prefetcher in |
| zmedico | EbuildBuild. |
| 11006 | Fix Scheduler._is_restart_necessary() to return False if the |
| zmedico | replacement version of portage is the same exact version as |
| | the currently running instance. |
| 11007 | * Handle errno.ECHILD and errno.ESRCH from waitpid() and |
| zmedico | kill() calls. These errors commonly occur when ^C is used to |
| | kill emerge. * Remove spawned pids from |
| | portage.process.spawned_pids immediately in order to avoid a |
| | race condition for removing it. |
| 11008 | * Fix AsynchronousTask._wait_hook() to prevent potential |
| zmedico | recursive calls triggered when calling exit listeners. * |
| | Make SequentialTaskQueue use exit listeners to trigger |
| | scheduling as soon as a task exits. This makes it possible |
| | for the queues to automatically schedule new tasks while |
| | scheduler remains in it's poll() loop. |
| 11009 | Make digestcheck() skip the "checking ebuild checksums" part |
| zmedico | when fetching in the background. |
| 11010 | Bug #231382 - If the open() call in getconfig() raises an |
| zmedico | unexpected IOError, write a message to stderr showing the |
| | exact call that failed, including the path of the file, in |
| | order to aid in debugging. |
| 11011 | When a package replaces another one, add the corresponding |
| zmedico | uninstall task for the replaced package to |
| | Scheduler._completed_tasks so that it's properly accounted |
| | for in _dependent_on_scheduled_merges(). |
| 11012 | Add support for parallel --regen, using the existing --jobs |
| zmedico | and --load-average options: * Split out a PollLoop base |
| | class from Scheduler and derive a MetadataRegen class to |
| | handle parallel scheduling for --regen. * Add |
| | pordbapi._metadata_process() and _metadata_callback() |
| | methods to implement asynchronous metadata generation. One |
| | method returns an EbuildMetadataPhase instance to |
| | encapsulate the async task. The other method is called to |
| | save the metadata when the process completes successfully. |
| | These methods share code with aux_get to avoid duplicate |
| | code. |
| 11013 | Refactor and simplify the main task scheduling and poll |
| zmedico | loops: * Make output handlers unregister themselves and call |
| | wait() to notify exit listeners immediately. This makes the |
| | exit listeners more useful for scheduling tasks. This makes |
| | the poll loop nice an clean because it just calls the |
| | handlers and then the handlers can do the scheduling when |
| | necessary. * Make SequentialTaskQueue.add() and addFront() |
| | trigger scheduling internally, so that it's more of a chain |
| | reaction than something that has to be done explicitly. |
| 11014 | Document the new --jobs and --load-average options for |
| zmedico | parallelization. |
| 11015 | Call settings.reset() in EbuildMetadataPhase.start() since |
| zmedico | that's what portdbapi does too before generating metadata, |
| | and without it, a previous CATEGORY can leak into the ebuild |
| | env and corrupt it (breaks lots of packages that reference |
| | $CATEGORY). |
| 11016 | Copy INHERITED/_eclasses_ handling from |
| zmedico | portdbapi._metadata_callback() to portdbapi.aux_get() since |
| | it's still needed there or else aux_get won't properly |
| | return INHERITED. |
svn path=/main/branches/prefix/; revision=11017
Fabian Groffen [Wed, 9 Jul 2008 18:19:19 +0000 (18:19 -0000)]
Merged from trunk 10997:10999
| 10998 | Fix SubProcess._poll to handle a missing pid gracefully. |
| zmedico | |
| 10999 | * Unify the scheduler's "build" and "extract" queues into a |
| zmedico | single "jobs" queue. * Add support for logging fetches to |
| | /var/log/emerge-fetch.log when --jobs is enabled. Previously |
| | this log was only used for the parallel-fetch feature but |
| | now it's also used for --jobs. The scheduler's "prefetch" |
| | queue has been renamed to "fetch" since it's not exclusively |
| | used for parallel-fetch anymore. * Pass the "background" |
| | parameter from Binpkg in to the BinpkgFetcher instance, to |
| | send output to emerge-fetch.log instead of stdout. |
svn path=/main/branches/prefix/; revision=11001
Fabian Groffen [Wed, 9 Jul 2008 17:05:16 +0000 (17:05 -0000)]
Merged from trunk 10988:10996
| 10989 | * Call self._wait() when unregistering output handlers, in |
| zmedico | order to avoid triggering a tight loop. Also fix |
| | Subprocess._wait() to only schedule when self.registered is |
| | True. * Add an assertion inside Scheduler._schedule_main() |
| | to try and detect tight loops like the one above. * Fix typo |
| | in Scheduler._merge_exit(). |
| 10990 | Remove redundant call to _schedule_main(). |
| zmedico | |
| 10991 | Fix Scheduler._dependent_on_scheduled_merges() to properly |
| zmedico | distinguish "nomerge" nodes from "uninstall" nodes. |
| 10992 | In scheduler._schedule_main(), only consider a poll() event |
| zmedico | to be a state change if it results in a handler being |
| | unregistered. |
| 10993 | Make the "tight loop" assertion trigger whenever there is no |
| zmedico | state change detected for a given _schedule_main() call. |
| 10994 | * Fix _choose_pkg() to pop the first node if there are no |
| zmedico | other jobs running. * Allow _choose_pkg() to choose an |
| | uninstall node when it reaches the front of the queue. TODO: |
| | fix order for uninstall operations. * Fix |
| | _dependent_on_scheduled_merges() to handle direct circular |
| | deps correctly. |
| 10995 | Fix _prune_digraph() to correctly distinguish "nomerge" |
| zmedico | nodes from "uninstall" nodes. |
| 10996 | Fix Scheduler._choose_pkg() to perform uninstallation |
| zmedico | actions (due to blockers) in the correct order when building |
| | in parallel. |
svn path=/main/branches/prefix/; revision=11000
Fabian Groffen [Wed, 9 Jul 2008 07:17:53 +0000 (07:17 -0000)]
Merged from trunk 10972:10988
| 10973 | Add a new "SRC_URI.mirror" check which checks to if a uri |
| zmedico | listed in profiles/thirdpartymirrors is found in SRC_URI. |
| | Thanks to Betelgeuse for the initial patch which has now |
| | been optimized with a regex. |
| 10974 | * Add new CompositeTask._default_final_exit() method and use |
| zmedico | it as the new generic task exit callback. * Remove erroneous |
| | self.wait() calls inside MergeListItem.start(). |
| 10975 | Rename SubProcess.reg_id to _reg_id since it no longer needs |
| zmedico | to be exposed. |
| 10976 | Add a Scheduler._digraph attribute for use in parallel build |
| zmedico | scheduling. |
| 10977 | Use plain sequential search for the SRC_URI.mirror check |
| zmedico | since the regex approach is actually much slower. |
| 10978 | Add a missing check in Scheduler._main_loop() to ensure that |
| zmedico | max_jobs isn't exceeded. |
| 10979 | Add a MergeListItem.background attribute for putting a task |
| zmedico | in the background when max_jobs > 1. |
| 10980 | Also add "background" attributes to the EbuildBuild and |
| zmedico | Binpkg classes. |
| 10981 | Add AsynchronousTask.background attribute and add support |
| zmedico | for it to the EbuildPhase class. |
| 10982 | * Add background support to the SpawProcess class. * Make |
| zmedico | Binpkg pass the current background setting into subtasks. |
| 10983 | Implement parallel build support by adding new --jobs and |
| zmedico | --load-average options that are analogous to the |
| | corresponding `make` options. Input and output handling |
| | still need work to make it look better and act more friendly |
| | for things like interactive ebuilds that require input. |
| 10984 | Use a normal list instead of a deque for |
| zmedico | Scheduler._pkg_queue since deque doesn't have a remove() |
| | method until python-2.5. |
| 10985 | Fix ValueError triggered when Scheduler._choose_pkg() |
| zmedico | doesn't find a package and returns None. |
| 10986 | Fix infinite loop in CompositeTask._wait(). |
| zmedico | |
| 10987 | Raise an AssertionError in CompositeTask._wait() if it's |
| zmedico | detected that self._current_task hasn't been properly |
| | updated after calling wait on it. |
| 10988 | Derive PackageMerge from AsynchronousTask instead of |
| zmedico | CompositeTask since CompositeTask is designed for |
| | self._current_task to be set. |
svn path=/main/branches/prefix/; revision=10997
Fabian Groffen [Mon, 7 Jul 2008 19:47:15 +0000 (19:47 -0000)]
Merged from trunk 10968:10971
| 10969 | remove TODO list as it's not maintained anyway |
| genone | |
| 10970 | Make SubProcess._wait() call scheduler.schedule(self.reg_id) |
| zmedico | so it's encapsulated and callers don't have to know about |
| | it. |
| 10971 | Move the "registered" attribute to the SubProcess class too. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10972
Fabian Groffen [Mon, 7 Jul 2008 09:18:40 +0000 (09:18 -0000)]
Merged from trunk 10944:10966
| 10945 | Correct TaskSequence docstring to refer to the |
| zmedico | addExitListener() method. |
| 10946 | Call _wait_hook() from poll() if the wait call occurs there. |
| zmedico | |
| 10947 | * Fix AsynchronousTask.poll() to call _wait_hook() when |
| zmedico | necessary. * Use the default poll() and cancel() |
| | implementations for BinpkgVerifier. |
| 10948 | Fix typo in xterm titles total package count which causes it |
| zmedico | to show the current package instead. Thanks to Arfrever for |
| | this patch. |
| 10949 | Add a CompositeTask._assert_current() method that |
| zmedico | asynchronous callbacks can use detect possible bugs. |
| 10950 | Split out a reusable CompositeTask._default_exit() method |
| zmedico | that subclasses can use as a generic task exit callback. |
| 10951 | Add CompositeTask._final_exit() method and use it to fix |
| zmedico | breakage from the previous commit. |
| 10952 | Split out a CompositeTask._start_task() for subclasses to |
| zmedico | use as a generic way to start a task. |
| 10953 | Add async support to EbuildBuild, and an synchronous |
| zmedico | install() method. |
| 10954 | * Fix broke return code handling from previous commit, in |
| zmedico | MergeListItem.execute(). * Fix |
| | TaskSequence._task_exit_handler() so it won't call |
| | final_exit() if _default_exit() has already set |
| | self._current_task to None. |
| 10955 | Fix --getbinpkg to inject downloaded packages into the local |
| zmedico | bintree. |
| 10956 | Make AsynchronousTask subclasses override _wait() and |
| zmedico | _poll() so that calls to public methods can be wrapped for |
| | implementing hooks such as exit listener notification. |
| 10957 | Fix parent class constructor call in the BinpkgFetcher |
| zmedico | constructor. |
| 10958 | Make BinpkgFetcher send output directly to stdout when |
| zmedico | appropriate, so that wget's progress bar works normally. |
| 10959 | Add async support to the Binpkg class. |
| zmedico | |
| 10960 | Add async support to MergeListItem. |
| zmedico | |
| 10961 | Add a PackageMerge class to serve as an asynchronous |
| zmedico | interface to package merges. For now it executes |
| | synchronously inside the start() method. |
| 10962 | * Implement MergeListItem._poll() and _wait(). * Fix |
| zmedico | BinpkgVerifier.start() to call wait() since it's not |
| | asynchronous. |
| 10963 | Fix typo in Binpkg.start() which prevents --genbinpkg |
| zmedico | prefetcher sync from working properly in some cases. |
| 10964 | Fix EbuildPhase._set_returncode() so that it correctly |
| zmedico | updates the returncode attrbute instead of just a local |
| | variable. |
| 10965 | Fix broken code in AsynchronousTask.poll(). |
| zmedico | |
| 10966 | * Implement CompositeTask._poll(). * Make AsynchronousTask |
| zmedico | classes call self.wait() to notify exit listeners. * Rewrite |
| | Scheduler._main_loop() to bring it closer to allowing |
| | parallel build scheduling. |
svn path=/main/branches/prefix/; revision=10968
Fabian Groffen [Mon, 7 Jul 2008 09:11:52 +0000 (09:11 -0000)]
Merged from trunk 10928:10943
| 10929 | Bug #230525 - Work around ObjectProxy breakage in `portageq |
| zmedico | vdb_path`. |
| 10930 | Add a PollConstants class to serve as a layer of indirection |
| zmedico | for accessing select.POLL* attributes which do not exist on |
| | interix. Thanks to grobian for reporting. |
| 10931 | TODO: For parallel scheduling, everything in MergeListItem |
| zmedico | needs asynchronous execution support (start, poll, and wait |
| | methods). |
| 10932 | Convert EbuildFetcher to an asynchronous interface: * Rename |
| zmedico | EbuildFetcher to EbuildFetchPretend. * Rename |
| | EbuildFetcherAsync to EbuildFetcher. |
| 10933 | Make EbuildBuild inherit from EbuildBuildDir since it's |
| zmedico | going to hold the build dir lock while it runs |
| | asynchronously. |
| 10934 | Make Binpkg inherit from EbuildBuildDir since it's going to |
| zmedico | hold the build dir lock while it runs asynchronously. |
| 10935 | * Implement a new binarytree.digestCheck() method and use it |
| zmedico | to check digests for binary packages. * Split out a |
| | AsynchronousTask base class from SubProcess. * Derive a new |
| | BinpkgVerifier class from AsynchronousTask. Even though this |
| | is not really asynchronous yet, it can fake the interface by |
| | doing everything in the start() method. |
| 10936 | Rename BinpkgFetcherAsync class to BinpkgFetcher and use it |
| zmedico | to replace the older class with the same name |
| 10937 | Remove unused variable. |
| zmedico | |
| 10938 | Use the EbuildPhase class to execute the "clean" phase |
| zmedico | asynchronously. |
| 10939 | Add async support to EbuildBinpkg by making it inherit from |
| zmedico | EbuildPhase. |
| 10940 | Add a new CompositeTask class which can be used to combine |
| zmedico | separate AsynchronousTask instances into a single instance. |
| | The CompositeTask instance used task exit listeners as a |
| | means to (asynchronously) trigger progression from one |
| | subtask to the next. This technique is used to group |
| | together all the ebuild phases executed by EbuildExecuter, |
| | and should be useful for grouping many more sets of tasks |
| | into similar composite tasks. |
| 10941 | Fix CompositeTask.cancel() so that it's safe to call when |
| zmedico | there is no running task. |
| 10942 | Make EbuildExecuter inherit from AsynchronousTask. |
| zmedico | |
| 10943 | Split out common code from CompositeTask and EbuildExecuter |
| zmedico | into a new CompositeTask class and rename the old |
| | CompositeTask class to TaskSequence. |
svn path=/main/branches/prefix/; revision=10967
Fabian Groffen [Thu, 3 Jul 2008 17:05:34 +0000 (17:05 -0000)]
Merged from trunk 10904:10913
| 10905 | Split out a new _add_prefetchers() method from |
| zmedico | Scheduler._merge(). |
| 10906 | Remove the Scheduler._post_merge() method, and create a new |
| zmedico | _show_failed_fetches() method. |
| 10907 | Remove unused BinpkgMerge class. |
| zmedico | |
| 10908 | Split out a _restart_if_necessary() method from |
| zmedico | Scheduler._merge(). |
| 10909 | Add a portage._disable_legacy_globals() function. This |
| zmedico | deletes the ObjectProxy instances that are used for lazy |
| | initialization of legacy global variables. The purpose of |
| | deleting them is to prevent new code from referencing these |
| | deprecated variables. This allows the removal of the |
| | PORTAGE_LEGACY_GLOBALS variable which used to serve the same |
| | purpose. |
| 10910 | Clean up Scheduler.merge() and split out a |
| zmedico | _save_resume_list() method. |
| 10911 | Split logging and world atom code out of |
| zmedico | Scheduler._execute() task, and trigger it inside |
| | EbuildPhase.execute(). |
| 10912 | Remove old unused vars inside _execute_task() and fix code |
| zmedico | not to use the old vars. |
| 10913 | Split out a _create_prefetcher() method from |
| zmedico | _add_prefetchers(). |
svn path=/main/branches/prefix/; revision=10914
Fabian Groffen [Thu, 3 Jul 2008 06:49:48 +0000 (06:49 -0000)]
Merged from trunk 10893:10903
| 10894 | Handle missing select.poll on interix by using select() to |
| zmedico | emulate a poll object. |
| 10895 | Fix EbuildBuildDir so that it works properly with binary |
| zmedico | packages. |
| 10896 | Fix broken except statement. Thanks to hawking. |
| zmedico | |
| 10897 | Use stdout.write() instead of "print", for py3k compat. |
| zmedico | |
| 10898 | Split out a SpawnProcess base class out of |
| zmedico | EbuildFetcherAsync. |
| 10899 | Move post ebuild phase code (originally from spawnebuild) |
| zmedico | from EbuildExecuter.execute() to |
| | EbuildPhase._set_returncode(). |
| 10900 | Add missing BinpkgFetcherAsync.registered attribute. |
| zmedico | |
| 10901 | Make BinpkgFetcherAsync inherit from SpawnProcess. |
| zmedico | |
| 10902 | Implement asynchronous binary package extraction, so that |
| zmedico | the scheduler can run while a package is extracting in the |
| | background. |
| 10903 | Split out a new _check_manifests() method from |
| zmedico | Scheduler._merge() since this method is not useful for |
| | parallel scheduling and any useful code needs to be |
| | relocated. |
svn path=/main/branches/prefix/; revision=10904
Fabian Groffen [Wed, 2 Jul 2008 10:49:22 +0000 (10:49 -0000)]
Merged from trunk 10884:10892
| 10885 | * Rename existing EbuildBuild class to EbuildExecuter. * |
| zmedico | Split more code out of Scheduler._execute_task() and use it |
| | to make a more comprehensive EbuildBuild class. |
| 10886 | Remove debugging code from the previous commit. |
| zmedico | |
| 10887 | Split out a Binpkg class from code inside |
| zmedico | Scheduler._execute_task(). |
| 10888 | Fix inverted buildpkgonly logic. |
| zmedico | |
| 10889 | Fix EbuildBuild.execute() to return os.EX_OK on success. |
| zmedico | |
| 10890 | Py3k compatibility patch by Ali Polatel <hawking@g.o>. Don't |
| zmedico | use the format raise Exception, "string" |
| 10891 | Split out a SubProcess base class for EbuildFetcherAsync, |
| zmedico | EbuildPhase, and BinpkgFetcherAsync. |
| 10892 | Remove $PORTAGE_BUILDDIR locking from portage.pkgmerge() and |
| zmedico | use an instance of EbuildBuildDir instead. |
svn path=/main/branches/prefix/; revision=10893
Fabian Groffen [Tue, 1 Jul 2008 18:47:14 +0000 (18:47 -0000)]
it works better if all files are available, and if you reference existing variables
svn path=/main/branches/prefix/; revision=10884
Fabian Groffen [Tue, 1 Jul 2008 18:39:57 +0000 (18:39 -0000)]
make sure we do not clash with standard names for expansion, as e.g. $BASH
svn path=/main/branches/prefix/; revision=10883
Fabian Groffen [Tue, 1 Jul 2008 17:40:20 +0000 (17:40 -0000)]
my attempt to do python 2.6 compatibility thing
svn path=/main/branches/prefix/; revision=10882
Fabian Groffen [Tue, 1 Jul 2008 17:32:45 +0000 (17:32 -0000)]
Merged from trunk 10869:10875
| 10870 | Py3k compatibility patch #1 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators.. |
| 10871 | Py3k compatibility patch #2 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators. |
| 10872 | Py3k compatibility patch #3 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators. |
| 10873 | Py3k compatibility patch #4 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators. |
| 10874 | Py3k compatibility patch #5 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators. |
| 10875 | Py3k compatibility patch #6 by Ali Polatel <hawking@g.o>. |
| zmedico | Replace dict.has_key() calls with "in" and "not in" |
| | operators. |
svn path=/main/branches/prefix/; revision=10881
Fabian Groffen [Tue, 1 Jul 2008 17:22:29 +0000 (17:22 -0000)]
Merged from trunk 10853:10869
| 10854 | Avoid python-2.6 deprecation warnings for md5 and sha |
| zmedico | modules by trying to import hashlib first and then falling |
| | back to the deprecated modules if necessary. Thanks to |
| | ColdWind for reporting. |
| 10855 | Reimplement parallel-fetch by spawning the `ebuild fetch` |
| zmedico | command for each ebuild. The benefit of using this approach |
| | is that it can be integrated together with parallel build |
| | scheduling that's planned. Parallel-fetch support for |
| | binhost is not implemented yet, though it worked previously. |
| 10856 | Clear the self._task_queue to avoid duplicate parallel-fetch |
| zmedico | tasks in --keep-going mode. |
| 10857 | Add "(no inline comments)" to qualify "comments begin with |
| zmedico | #" statements. |
| 10858 | Bug #230245 - Pass the correct directory when calling `snv |
| zmedico | list` and `svn status` since repoman supports category-level |
| | and repo-level commits. |
| 10859 | Bug #230245 - Use os.path.basename() on paths returned from |
| zmedico | `svn list` and `svn status`. |
| 10860 | Bug #230249 - Disable the "ebuild.notadded" check when not |
| zmedico | in commit mode and running `svn list` and `svn status` calls |
| | in every package dir will be too expensive. |
| 10861 | Fix typo. |
| zmedico | |
| 10862 | add a call to pruneNonExisting() at the end of |
| zmedico | dbapi.vartree.PreservedLibsRegistry.__init__() |
| 10864 | Split out a write_contents() function and a |
| zmedico | vardbapi.removeFromContents() function. This is refactoring |
| | of code from the blocker file collision contents handling in |
| | dblink.treewalk(). Also, there is a new |
| | dblink._match_contents() method derived from isowner(). It |
| | returns the exact path from the contents file that matches |
| | the given path, regardless of path differences due to things |
| | such as symlinks. |
| 10865 | Handle potential errors in PreservedLibsRegistry.store() now |
| zmedico | that it can be called via pruneNonExisting(), due to things |
| | such as portageq calls where the user may not have write |
| | permission to the registry. |
| 10866 | Also avoid sandbox violations in |
| zmedico | PreservedLibsRegistry.store(), for running portage inside |
| | ebuild phases. |
| 10867 | Never do realpath() on an empty string for |
| zmedico | portdbapi.porttree_root since otherwise it can evaluate to |
| | $CWD which leads to undesireable results. |
| 10868 | Add a new BinpkgFetcherAsync class and use it to implement |
| zmedico | parellel-fetch for --getbinpkg. |
| 10869 | Add a "prefix" keyword parameter to slot_dict_class() which |
| zmedico | controls the prefix used when mapping attribute names from |
| | keys. Use this to change the syntax from files["foo"] to |
| | files.foo (it's fewer characters to look at). |
svn path=/main/branches/prefix/; revision=10880
Fabian Groffen [Tue, 1 Jul 2008 17:09:13 +0000 (17:09 -0000)]
Merged from trunk 10843:10853
| 10844 | Handle invalid atoms inside depgraph._add_pkg_deps(), to |
| zmedico | avoid an unhandled InvalidAtom exception from dep_expand() |
| | when matching against the vardb. |
| 10845 | Split out a _spawn_misc_sh() function from spawnebuild(). |
| zmedico | |
| 10846 | Split out a _post_src_install_uid_fix() function from |
| zmedico | spawnebuild(). |
| 10847 | Split out a _check_build_log() function from spawnebuild(). |
| zmedico | |
| 10848 | In EbuildBuild.execute(), call doebuild() separately for |
| zmedico | each phase since it will be easier to add asynchronous |
| | support to doebuild() if it's called this way. |
| 10849 | * Add "fd_pipes" and "returnpid" parameters to doebuild() |
| zmedico | and pass these into spawn calls, enabling ebuild processes |
| | to execute asynchronously. * Add a EbuildPhase class that's |
| | derived from the pty logging code inside portage.spawn(). * |
| | Integrate post-phase code from spawnebuild() into |
| | EbuildBuild.execute() so that it still gets called even |
| | though doebuild() calls execute asynchronously. |
| 10850 | Add EMERGE_FROM to the blacklisted vars in the config |
| zmedico | constructor. |
| 10851 | Centralize select.poll() event handling in |
| zmedico | MergeTask._schedule(). This will allow the parent process to |
| | handle output of multiple child processes running in |
| | parllel. |
| 10852 | * Tweak conditionals in doebuild() to fix emerge --fetch |
| zmedico | breakage reported by Arfrever. * Change a couple EMERGE_FROM |
| | conditionals to use the "returnpid" parameter instead. |
| 10853 | Rename the MergeTask class to Scheduler. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10879
Fabian Groffen [Tue, 1 Jul 2008 16:59:40 +0000 (16:59 -0000)]
Merged from trunk 10833:10843
| 10834 | Use the EbuildMerge class instead of portage.merge(). |
| zmedico | |
| 10835 | Bug #229859 - Make portageq check atom validity when |
| zmedico | has_version() and best_version() are called from inside the |
| | ebuild environment. |
| 10836 | Copy portageq exit code validation from has_version() to |
| zmedico | best_version(). |
| 10837 | Bug #229859 - Also add atom validation to match(). |
| zmedico | |
| 10838 | * Remove unused EbuildBuild.pretend attribute. * Add TODO |
| zmedico | not about asynchronous execution. |
| 10839 | Make EbuildBinpkg delegate everything up to src_install() to |
| zmedico | the EbuildBuild class. |
| 10840 | Handle re.error exceptions raised from re.compile() when |
| zmedico | ACCEPT_CHOSTS is invalid. Thanks to solar for reporting. |
| 10841 | Split out an EbuildBuildDir class to handle locking of the |
| zmedico | build dir. |
| 10842 | Instead of calling the ebuild "clean" phase in |
| zmedico | MergeTask.merge(), move it inside doebuild() where it can be |
| | tied into the actionmap_deps framework. |
| 10843 | Move clean code, from the previous commit, from doebuild() |
| zmedico | to EbuildBuild.execute() where it fits better. |
svn path=/main/branches/prefix/; revision=10878
Fabian Groffen [Tue, 1 Jul 2008 16:55:38 +0000 (16:55 -0000)]
Merged from trunk 10824:10833
| 10825 | Split the MergeTask._merge() method into 3 smaller methods. |
| zmedico | The new methods are _execute_task() and _post_merge(). |
| 10826 | Split out an EbuildFetcher class. |
| zmedico | |
| 10827 | Split out a BinpkgFetcher class. |
| zmedico | |
| 10828 | * Split out a BinpkgMerge class. * Fix typos in |
| zmedico | _get_hash_key() methods. |
| 10829 | Split out an EbuildMerge class. |
| zmedico | |
| 10830 | Fix typo. |
| zmedico | |
| 10831 | Split out an EbuildBuild class. |
| zmedico | |
| 10832 | * Split out an EbuildBinpkg class. * Remove unused |
| zmedico | EbuildBuild.ldpath_mtimes attribute. |
| 10833 | Split out a PackageUninstall class. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10877
Fabian Groffen [Tue, 1 Jul 2008 16:48:46 +0000 (16:48 -0000)]
Merged from trunk 10816:10824
| 10817 | Generate and log eerror messages for any packages that need |
| zmedico | to be dropped due to unsatisfied dependencies when |
| | --keep-going is enabled. |
| 10818 | Add documentation for the new --keep-going option. |
| zmedico | |
| 10819 | Fix typo. |
| zmedico | |
| 10820 | Pass the digraph into the MergeTask constructor. It's |
| zmedico | currently unused but it will be useful for parallel |
| | scheduling. |
| 10821 | Break references from Package instances in the digraph |
| zmedico | before passing it into the MergeTask constructor. |
| 10822 | Remove the MergeTask._blocker_db attribute since it can just |
| zmedico | be a local variable. |
| 10823 | Fix depgraph.break_refs() to work with DependencyArg |
| zmedico | instances (or anything else that may have a "root_config" |
| | attribute). |
| 10824 | Bug #226307 - Copy come code from |
| zmedico | depgraph._iter_atoms_for_pkg() that was used to solve bug |
| | #218854, and use it inside unmerge() when matching sets to |
| | packages. |
svn path=/main/branches/prefix/; revision=10876
Fabian Groffen [Tue, 1 Jul 2008 07:26:37 +0000 (07:26 -0000)]
Do not use hardcoded python, bug #230247
svn path=/main/branches/prefix/; revision=10863
Fabian Groffen [Fri, 27 Jun 2008 15:55:18 +0000 (15:55 -0000)]
more windows user/groupname quoting
svn path=/main/branches/prefix/; revision=10816
Fabian Groffen [Fri, 27 Jun 2008 14:53:20 +0000 (14:53 -0000)]
Merged from trunk 10801:10812
| 10802 | Handle KeyError from aux_get() inside |
| zmedico | dbapi._iter_match_slot() and _iter_match_use(). Thanks to |
| | grobian for reporting. |
| 10803 | Use settings["ROOT"] at the beginning of env_update() to |
| zmedico | avoid breakage due to "root" being an ObjectProxy instance. |
| 10804 | * Remove PORTAGE_LEGACY_GLOBALS hack for portage import |
| zmedico | since late initialization of portage.settings (via |
| | ObjectProxy) allows us to rely on being able to access the |
| | portage.exception namespace before portage.settings is |
| | initialized. * Use portage.settings["ROOT"] instead of |
| | portage.root to avoid potential ObjectProxy compatibility |
| | issues. |
| 10805 | Fix the PermissionDenied message for color.map. |
| zmedico | |
| 10806 | Add "PATH" to the set of allowed pacakge metadata keys for |
| zmedico | the PackageIndex. |
| 10807 | Call use_reduce() with matchall=1 when checking depstrings. |
| zmedico | Otherwise it's possible for invalid deps to be ignored. |
| | Thanks to grobian for reporting. |
| 10808 | For brevity, and consistency with pkgcore, rename |
| zmedico | "all-installed" to just "installed". Thanks to ferringb for |
| | the suggestion. |
| 10809 | Split the --skipfirst code into a resume_depgraph() function |
| zmedico | that will be useful for implementing a --keep-going option |
| | (bug #12768). |
| 10810 | Use bool() to simplify ObjectProxy.__nonzero__(). |
| zmedico | |
| 10811 | Bug #12768 - Add a --keep-going option. This uses the same |
| zmedico | resume_depgraph() function that's called for emerge --resume |
| | operations. Given the remaining tasks, depedencies are |
| | recalculated and any tasks with unsatisfied dependencies are |
| | automatically dropped. |
| 10812 | Call clear_caches() after the depgraph is out of scope, in |
| zmedico | MergeTask.merge(). |
svn path=/main/branches/prefix/; revision=10815
Fabian Groffen [Fri, 27 Jun 2008 14:47:19 +0000 (14:47 -0000)]
Merged from trunk 10788:10801
| 10789 | Swap out the whole Package.root_config attribute inside |
| zmedico | depgraph.break_refs(). |
| 10790 | Add a generic portage.cache.mappings.slot_dict_class() |
| zmedico | function which generates mapping classes that behave similar |
| | to a dict but store values as object attributes that are |
| | allocated via __slots__. Instances of these objects have a |
| | smaller memory footprint than a normal dict object. These |
| | classes are used to reduce the memory footprint of the |
| | dbapi.aux_get() caches and the Package.metadata attribute. |
| 10791 | Fix indentation. |
| zmedico | |
| 10792 | Fix KeyError constructor style. |
| zmedico | |
| 10793 | Fix typo. |
| zmedico | |
| 10794 | Add docstring to slot_dict_class(). |
| zmedico | |
| 10795 | Fix typo. |
| zmedico | |
| 10796 | Use SlotDict where appropriate in binarytree._populate(). |
| zmedico | |
| 10797 | Make PackageIndex use SlotDict for package metadata storage. |
| zmedico | The set of allowed keys is passed into the PackageIndex |
| | constructor (normal dict instances will be used if the set |
| | of keys is not passed in for some reason). A |
| | SlotDict.allowed_keys attribute now provides access to a |
| | frozenset of allowed keys. |
| 10798 | Implement lazy initialization of global "portdb", "settings" |
| zmedico | and other variables that pollute the portage module. This |
| | works by initializing the global variables with dummy |
| | "proxy" objects that serve as a means to trigger lazy |
| | initialization. As soon as the first attribute access or |
| | method call occurs on one of the proxy objects, it causes |
| | all the proxy objects to be replaced with the real ones. |
| | It's possible for an unsupported attribute access or method |
| | call on a proxy object to trigger an error, leading to |
| | breakage. However, hopefully these such corner cases will |
| | negligible (only time will tell). |
| 10799 | Use a separate proxy type to trigger portage.portdb |
| zmedico | initialization separately from the rest of the legacy global |
| | variables. This can be useful since sometimes the other |
| | variables are needed while the portdb is not. |
| 10800 | Also use a separate proxy type for portage.mtimedb since |
| zmedico | it's independent from the portdb and settings. |
| 10801 | change default name of EverythingSet to @all-installed (bug |
| genone | #229467) |
svn path=/main/branches/prefix/; revision=10814
Fabian Groffen [Fri, 27 Jun 2008 12:11:33 +0000 (12:11 -0000)]
need to quote more, on Windows user and groupnames can have spaces :(
svn path=/main/branches/prefix/; revision=10813
Fabian Groffen [Wed, 25 Jun 2008 20:26:36 +0000 (20:26 -0000)]
Merged from trunk 10784:10787
| 10785 | Fix Atom -> str breakage in depgraph.saveNomergeFavorites(). |
| zmedico | Thanks to grobian and darsiide. |
| 10786 | Clarify EverythingSet.description a bit. Thanks to Necoro. |
| zmedico | |
| 10787 | Clarify EverythingSet.description a bit. Thanks to Necoro. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10788
Fabian Groffen [Wed, 25 Jun 2008 18:49:44 +0000 (18:49 -0000)]
Merged from trunk 10781:10783
| 10782 | After the depgraph caches the vardb state in a FakeVartree, |
| zmedico | to make some room on the heap, clear the vardbapi caches. |
| 10783 | Fix repoman breakage wrt _PackageMetadataWrapper._keys |
| zmedico | values. |
svn path=/main/branches/prefix/; revision=10784
Fabian Groffen [Wed, 25 Jun 2008 09:00:23 +0000 (09:00 -0000)]
Merged from trunk 10770:10780
| 10771 | Bug #229233 - Fix Atom -> str breakage in the |
| zmedico | depgraph.display_problems() package.provided warning |
| | message. |
| 10772 | Use weakref.WeakValueDictionary to make cached Atom |
| zmedico | instances eligible for garbage collection when no strong |
| | references remain. |
| 10773 | If dep calculation time exceeds 20 seconds then |
| zmedico | automatically enable "complete" mode since any performance |
| | difference is not as likely to be noticed by the user after |
| | this much time has passed. |
| 10774 | Fix spelling of depgraph._complete_threshold. |
| zmedico | |
| 10775 | Bug #229069 - Before deleting the depgraph, break references |
| zmedico | pointing to the depgraph from Package instances in the merge |
| | list. This helps reduce the heap size a lot. |
| 10776 | For the Package.metadata attribute, only implement the dict |
| zmedico | interface instead of actually inheriting from dict. This |
| | slightly decreases the memory footprint by defining |
| | __slots__ and storing items as object attributes. |
| 10777 | Remove the BlockerDB._blocker_cache attribute and just |
| zmedico | create new instances on demand instead of taking space on |
| | the heap. |
| 10778 | Make clear_caches() call portage.dircache.clear(). |
| zmedico | |
| 10779 | Use os.listdir() instead of portage.listdir() to avoid |
| zmedico | needless caching of directories that only need to be listed |
| | once. |
| 10780 | Implement __contains__, pop() and clear() for |
| zmedico | Package.metadata attributes. |
svn path=/main/branches/prefix/; revision=10781
Fabian Groffen [Tue, 24 Jun 2008 15:42:51 +0000 (15:42 -0000)]
Merged from trunk 10767:10769
| 10768 | Fix some remaining corner cases that cause bug #220341 to |
| zmedico | reappear intermittently. Thanks to pva for reporting. |
| 10769 | Clear dbapi caches just after deleting the depgraph in |
| zmedico | action_build(). This trims down the heap size by a few megs, |
| | for bug #229069. |
svn path=/main/branches/prefix/; revision=10770
Fabian Groffen [Mon, 23 Jun 2008 19:31:56 +0000 (19:31 -0000)]
Merged from trunk 10760:10764
| 10761 | Bug #228939 - Fix display list interaction with --tree mode |
| zmedico | to prevent display of a duplicate list. |
| 10762 | Bug #228977 - Protect against possible infinite loop in |
| zmedico | dblink._preserve_libs(). |
| 10763 | Bug #228935 - Add a new "command not found" build log QA |
| zmedico | Notice. Thanks to Olivier Huber for the initial patch. |
| 10764 | Bug #228977 - During dblink._preserve_libs() calls, cache |
| zmedico | results of LinkageMap.findProviders(), |
| | LinkageMap.findConsumers(), and os.path.realpath() calls in |
| | order to improve performance. This makes a huge difference |
| | in performance for glibc upgrades since glibc provides so |
| | many libs to check consumerge for. |
svn path=/main/branches/prefix/; revision=10767
Fabian Groffen [Mon, 23 Jun 2008 15:36:44 +0000 (15:36 -0000)]
Use paths from portage.const instead of hardcoded versions (which don't match in Prefix). Please merge this in trunk.
svn path=/main/branches/prefix/; revision=10765
Fabian Groffen [Sun, 22 Jun 2008 15:29:37 +0000 (15:29 -0000)]
Merged from trunk 10738:10759
| 10739 | Make the visibility related config methods such as |
| zmedico | getMaskAtom() and getProfileMaskAtom() private since these |
| | methods really should take Package instances before we |
| | expose them as public api. |
| 10740 | Instead of having Atom inherit from str, just emulate the |
| zmedico | interface. This allows us to define __slots__ (not allowed |
| | when inheriting from str) and therefore should conserve |
| | some memory by avoiding a __dict__ attribute on every Atom. |
| 10741 | Use a metaclass to cache Atom instances transparently. This |
| zmedico | should improve performance and conserve memory in cases |
| | when the same atom is more than once. |
| 10742 | Make the Atom cache dict private and add a docstring for |
| zmedico | _AtomCache. |
| 10743 | Make Atom use str.__hash__. |
| zmedico | |
| 10744 | Make Atom use str.__eq__ and __ne__ also. |
| zmedico | |
| 10745 | Make isvalidatom() use the Atom cache to avoid validating |
| zmedico | the same atom twice. |
| 10746 | Bug #228595 - Use os.path.realpath() before comparing paths |
| zmedico | to those returned from portdbapi.getRepositoryPath() since |
| | those paths are also cannonical. |
| 10747 | Add subversion support for repoman. (thanks grobian) |
| zmedico | |
| 10748 | Remove unused Atom.string attribute. |
| zmedico | |
| 10749 | Fix Atom -> str breakage in WorldSet.write(). |
| zmedico | |
| 10750 | drop old -i,--include-masked option #226429 by Tobias |
| SpankMan | Klausmann |
| 10751 | Use bash's built-in echo instead of the actual echo binary |
| zmedico | since it has compatibility issues on FreeBSD systems. |
| | Thanks to aballier for reporting the issue and testing this |
| | patch. |
| 10752 | Exclude calls to autoheader and makeinfo from the automake |
| zmedico | "maintainer mode" check (filter some false positives). |
| | Thanks to Flameeyes. |
| 10753 | Fix implicit_pattern to match different quote character |
| zmedico | found in warnings generated by gcc-4.3. Thanks to aballier |
| | for reporting with sample log. |
| 10754 | Make LibraryConsumerSet.mapPathsToAtoms() use the contents |
| zmedico | index for more efficient owner lookups. |
| 10755 | Fix Atom -> str breakage in depgraph.display_problems(). |
| zmedico | |
| 10756 | Bug #228489 - Restore the "ci" alias for "commit" mode. |
| zmedico | Thanks to grobian for the patch. |
| 10757 | Implement Atom.__cmp__() so that things like list.sort() |
| zmedico | work correctly for Atom instances. |
| 10758 | Fix Atom -> str breakage in |
| zmedico | depgraph._show_slot_collision_notice(). Thanks to Arfrever |
| | for reporting. |
| 10759 | Fix broken path handling wrt $ROOT in |
| zmedico | LibraryConsumerSet.mapPathsToAtoms(). |
svn path=/main/branches/prefix/; revision=10760
Fabian Groffen [Fri, 20 Jun 2008 11:29:14 +0000 (11:29 -0000)]
Merged from trunk 10729:10735
| 10730 | Make emerge path search for multiple owners of directories. |
| zmedico | This makes it possible to use `emerge /lib/modules` as a |
| | decent substitute for module-rebuild. |
| 10731 | Fix typo. |
| zmedico | |
| 10732 | Document the new emerge feature. |
| zmedico | |
| 10733 | update release notes/news |
| genone | |
| 10734 | revert accidential commit |
| genone | |
| 10735 | reenable warning about missing repository names |
| genone | |
svn path=/main/branches/prefix/; revision=10738
Fabian Groffen [Fri, 20 Jun 2008 11:26:08 +0000 (11:26 -0000)]
Implemented the missing part in preserve-libs for Mach-O systems.
Unfortunately we have to call otool twice for each lib we have
preserved. Fortunately, it is to be expected that the number of
preserved libs remains low. Still avoiding the calls to otool and
scanelf at this stage would be really preferable, especially since bash
can do the magic we need to do here a lot easier than python can.
svn path=/main/branches/prefix/; revision=10737
Fabian Groffen [Thu, 19 Jun 2008 20:03:58 +0000 (20:03 -0000)]
cleanup, set proper version
svn path=/main/branches/prefix/; revision=10729
Fabian Groffen [Thu, 19 Jun 2008 19:41:50 +0000 (19:41 -0000)]
Merged from trunk 10716:10726
| 10717 | Bug #228075 - Explicitly call gc.collect() to try and free |
| zmedico | memory when checking for blockers. This avoids a heap |
| | overflow that triggers 'Cannot allocate memory' errors |
| | (reported with python-2.5). |
| 10723 | Refactor the 'inherit.autotools' and 'IUSE.undefined' checks |
| zmedico | into classes derived from LineCheck. |
| 10725 | Pass a Package instance into LineCheck.new(), and use this |
| zmedico | to avoid passing the ebuild mtime into the EbuildHeader |
| | constructor (the mtime is given when the new() method is |
| | called). |
svn path=/main/branches/prefix/; revision=10728
Fabian Groffen [Thu, 19 Jun 2008 19:28:30 +0000 (19:28 -0000)]
IndexError: tuple index out of range
I got confused with on-disk format, and the array that is used here.
svn path=/main/branches/prefix/; revision=10727
Fabian Groffen [Wed, 18 Jun 2008 15:41:54 +0000 (15:41 -0000)]
Merged from trunk 10709:10715
| 10710 | Use optparse instead of getopt. |
| zmedico | |
| 10711 | Add a help string for --debug. |
| zmedico | |
| 10712 | Bug #225285 - Add a --skip-manifest option that disables all |
| zmedico | interaction with the manifest. |
| 10713 | Bug #225285 - Add support for persistent options stored in |
| zmedico | the EBUILD_DEFAULT_OPTS environment variable (similar to |
| | {EMERGE,QUICKPKG}_DEFAULT_OPTS). |
| 10714 | Add an exemption for x-modular in the "inherit.autotools" |
| zmedico | check. Thanks to remi` for reporting. |
| 10715 | As suggested by remi`, make the 'inherit.autotools' check |
| zmedico | only ebuilds that inherit the autotools eclass directly |
| | (rather than indirectly through an eclass such as apache-2 |
| | or x-modular). |
svn path=/main/branches/prefix/; revision=10716
Fabian Groffen [Tue, 17 Jun 2008 21:12:50 +0000 (21:12 -0000)]
it must be too late or something
svn path=/main/branches/prefix/; revision=10708
Fabian Groffen [Tue, 17 Jun 2008 21:10:31 +0000 (21:10 -0000)]
import before using it...
svn path=/main/branches/prefix/; revision=10707
Fabian Groffen [Tue, 17 Jun 2008 20:47:47 +0000 (20:47 -0000)]
I suck at syntax
svn path=/main/branches/prefix/; revision=10706
Fabian Groffen [Tue, 17 Jun 2008 20:20:19 +0000 (20:20 -0000)]
Merged from trunk 10703:10704
| 10704 | More eblank. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10705
Fabian Groffen [Tue, 17 Jun 2008 19:51:14 +0000 (19:51 -0000)]
Merged from trunk 10697:10698
| 10698 | Remove eblank docs. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10700
Fabian Groffen [Tue, 17 Jun 2008 19:48:36 +0000 (19:48 -0000)]
'port' isMasterLink to LinkageMapMachO, further sync differences, be more careful with os.path.realpath
svn path=/main/branches/prefix/; revision=10699
Fabian Groffen [Tue, 17 Jun 2008 18:49:17 +0000 (18:49 -0000)]
Merged from trunk 10692:10696
| 10693 | Do not preserve the master link of a library to avoid |
| genone | packages being linked against preserved libs on rebuilds |
| 10694 | Remove eblank nonsense |
| genone | |
| 10695 | Remove eblank nonsense |
| genone | |
| 10696 | remove stray line |
| genone | |
svn path=/main/branches/prefix/; revision=10697
Fabian Groffen [Tue, 17 Jun 2008 16:48:53 +0000 (16:48 -0000)]
Merged from trunk 10654:10690
| 10656 | Fix config._accept_chost_re so it's only an instance |
| zmedico | variable. |
| 10658 | Add some write access checks in post_merge() in order to |
| zmedico | avoid triggering permission related exceptions. |
| 10659 | Make some post_merge() things conditional on the vdb lock |
| zmedico | being held (mtimedb commit and info dirs processing). |
| 10660 | Bug #223417 - Due to 1 second mtime granularity in < |
| zmedico | python-1.5, mtime checks are not always sufficient to |
| | invalidate vardbapi caches. Therefore, the caches need to be |
| | actively invalidated when packages are added and removed. |
| 10661 | Re-enable vardbapi.cpv_all() cache now that bug #223417 is |
| zmedico | solved. |
| 10669 | Tweak the config._accept_chost() regex. |
| zmedico | |
| 10671 | Document the new ACCEPT_CHOSTS variable. |
| zmedico | |
| 10673 | Fix typo. |
| zmedico | |
| 10675 | Add support for an new "eblank" elog function that shows a |
| zmedico | blank line. Consecutive eblank calls are all collapsed into |
| | a single blank line. Thanks to Joe Peterson <lavajoe@g.o> |
| | for this patch. |
| 10677 | * Rename NEUTRAL color to BLANK for eblank. * Document the |
| zmedico | new BLANK code in color.map.5. * Implement python version of |
| | eblank for mod_echo. |
| 10679 | Fix BLANK order and color. |
| zmedico | |
| 10681 | Add "blank" to the default PORTAGE_ELOG_CLASSES setting. |
| zmedico | |
| 10683 | Add a "Interaction with previous installed version" section |
| zmedico | to document the upgrade/downgrade phase execution order |
| | change from bug #226505. |
| 10685 | Add note about bug #226505. |
| zmedico | |
| 10687 | * Document eblank and eqawarn in the ebuild.5 man page. * |
| zmedico | Create "Ebuild Helper Functions" section docbook format, |
| | including all the functions documented in the ebuild.5 man |
| | page. |
| 10690 | fix typo |
| genone | |
svn path=/main/branches/prefix/; revision=10692
Fabian Groffen [Tue, 17 Jun 2008 16:43:29 +0000 (16:43 -0000)]
Merged from trunk 10625:10654
| 10626 | Fix missing initialization. |
| zmedico | |
| 10628 | Fix typo. |
| zmedico | |
| 10631 | Fix typo. |
| zmedico | |
| 10633 | Add some sanity checks and error tolerance in the owners |
| zmedico | cache. |
| 10636 | Bug #225285 - Allow digestcheck() to succeed when the |
| zmedico | Manifest is empty and strict mode is disabled. |
| 10638 | Use isinstance() instead of handling TypeError. |
| zmedico | |
| 10640 | Add another sanity check in the owners cache. |
| zmedico | |
| 10642 | Use spawn() instead of system(). |
| zmedico | |
| 10644 | Bug #225767 - Suppress warnings for installed packages |
| zmedico | masked by keywords if there is an equivalent ebuild in the |
| | portage tree (same cpv) with visible keywords. |
| 10645 | Handle InvalidDependString. |
| zmedico | |
| 10646 | Fix indent. |
| zmedico | |
| 10648 | Handle InvalidDependString in _package_cache.__setitem__(). |
| zmedico | |
| 10651 | Pass missing "installed" parameter into Package constructor. |
| zmedico | |
| 10652 | Add two new build log qa checks, suggested by Diego |
| zmedico | Pettenò: * Detect automake "maintainer mode". See |
| | http://www.gentoo.org/proj/en/qa/autofailure.xml for more |
| | information. * Detect "Unrecognized options" messages from |
| | configure scripts. |
| 10653 | Fix the 'inherit.autotools' check to account for |
| zmedico | apache-2_src_unpack() calling eautoreconf. |
| 10654 | Add support for and ACCEPT_CHOSTS variable that controls |
| zmedico | masking behavior for binary packages wrt CHOST. The variable |
| | is a space separated list of chosts. It support regular |
| | expressions, so if the actual chost contains any special |
| | characters then the user must escape them when setting |
| | ACCEPT_CHOSTS. |
svn path=/main/branches/prefix/; revision=10691
Fabian Groffen [Mon, 9 Jun 2008 20:06:30 +0000 (20:06 -0000)]
we're not yet using it, but keep Mach-O comment up-to-date
svn path=/main/branches/prefix/; revision=10625
Fabian Groffen [Mon, 9 Jun 2008 20:03:53 +0000 (20:03 -0000)]
store rootgid in portage.const_autotool.py, and use it instead of hardcoded 0
svn path=/main/branches/prefix/; revision=10624
Fabian Groffen [Mon, 9 Jun 2008 19:54:28 +0000 (19:54 -0000)]
Merged from trunk 10606:10612
| 10607 | make sure that scanelf is called with the right paths, and |
| genone | properly register all preserved objects to fix bug #223591 |
| 10608 | When inside fakeroot, directories with portage's gid appear |
| zmedico | to have root's gid. Therefore, use root's gid instead of |
| | portage's gid to avoid spurrious permissions adjustments |
| | when inside fakeroot. |
| 10609 | Add CONTENTS indexing support for optimization of owner |
| zmedico | lookups. The vardbapi cache maintains a hash table (inside |
| | vdb_metadata.pickle) that serves to index package contents |
| | by mapping the basename of file to a list of possible |
| | packages that own it. This is used to optimize owner lookups |
| | by narrowing the search down to a smaller number of |
| | packages. It increases the size of vdb_metadata.pickle by |
| | approximately 30% and it's used in the following cases: * |
| | When an unexpected file collision occurs (whether or not |
| | collision-protect is enabled) * `emerge ` * `portageq |
| | owners` The |
| 10612 | Remove unused PackageVirtualDbapi.__getitem__() method. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10623
Fabian Groffen [Mon, 9 Jun 2008 15:17:42 +0000 (15:17 -0000)]
do NOT refer to /usr/bin/python, use python from path instead, bug #225591 by Stuart Shelton
svn path=/main/branches/prefix/; revision=10621
Fabian Groffen [Sun, 8 Jun 2008 11:27:54 +0000 (11:27 -0000)]
Merged from trunk 10585:10604
| 10586 | Add vardbapi.aux_get() support for an "_mtime_" value which |
| zmedico | corresponds to the installed package directory's mtime |
| | (numeric value from stat result). This value can be used to |
| | validate indexes or caches used in the optimization of vdb |
| | query operations for various types of package metadata such |
| | as dependencies and file contents. |
| 10587 | Add Package.counter and mtime attributes. |
| zmedico | |
| 10588 | Add a PackageVirtualDbapi.__getitem__() method. |
| zmedico | |
| 10589 | Bug #224271 - Add a 'IUSE is not defined' ebuild.minorsyn |
| zmedico | warning. |
| 10591 | remove old/unused gen_wrapper function |
| SpankMan | |
| 10592 | As suggested by Flameeyes, add a new 'inherit.autotools' |
| zmedico | check which warns when autotools has been inherited but |
| | none of the eautomake, eautoconf or eautoreconf functions |
| | are called like they are supposed to be. |
| 10593 | Bug #224271 - New check 'IUSE.undefined', renamed from |
| zmedico | generic 'ebuild.minorsyn'. |
| 10594 | Make load_emerge_config() filter out empty |
| zmedico | PORTAGE_CONFIGROOT and ROOT values, and those containing |
| | only whitespace. |
| 10596 | Validate ROOT from make.conf. |
| zmedico | |
| 10598 | Inside, create_trees(), pass target_root="/" into the |
| zmedico | config constructor when necessary to override the setting |
| | in make.conf. |
| 10600 | Make repoman pass Package instances into run_checks(), so |
| zmedico | that the checks can use the Package.mtime and inherited |
| | attributes. |
| 10601 | Fix typo. |
| zmedico | |
| 10602 | Add additional functions such as eaclocal and eautoheader |
| zmedico | to the inherit.autotools regex. Thanks to Arfrever. |
| 10603 | Make portdbapi.aux_get() return float type for _mtime_. |
| zmedico | |
| 10604 | Bug #225285 - Allow digestcheck() to succeed when the |
| zmedico | Manifest is missing and strict mode is disabled. |
svn path=/main/branches/prefix/; revision=10605
Fabian Groffen [Thu, 5 Jun 2008 17:17:49 +0000 (17:17 -0000)]
Merged from trunk 10577:10582
| 10578 | Use sets for more accurate cache modification counts |
| zmedico | BlockerCache and vardbapi. |
| 10580 | Mention PORTAGE_RO_DISTDIRS in the DISTDIR docs. |
| zmedico | |
| 10582 | Bug #224713 - Avoid TypeError when make.conf is missing: |
| zmedico | TypeError: argument of type 'NoneType' is not iterable |
svn path=/main/branches/prefix/; revision=10585
Fabian Groffen [Wed, 4 Jun 2008 20:05:47 +0000 (20:05 -0000)]
fix syntax error
svn path=/main/branches/prefix/; revision=10577
Fabian Groffen [Wed, 4 Jun 2008 19:39:20 +0000 (19:39 -0000)]
Merged from trunk 10557:10566
| 10558 | Fix regex for compatibility with the regex implementation |
| zmedico | from FreeBSD's libc (used by bash on FreeBSD). Thanks to |
| | Alexis Ballier <aballier@g.o> for the patch. |
| 10560 | Avoid an unhandled IndexError thrown from the |
| zmedico | PackagesSystemSet constructor when neither /etc/make.profile |
| | nor /etc/portage/profile exist. |
| 10561 | Make PackagesSystemSet.description refer to the real profile |
| zmedico | rather than /etc/portage/profile when possible. |
| 10563 | Update --depclean and package.provided docs to indicate |
| zmedico | interaction between them. |
| 10564 | Use a distdir_writable variable in fetch(), for better |
| zmedico | control of write operations inside ${DISTDIR}. |
| 10566 | Fix typo. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10576
Fabian Groffen [Tue, 3 Jun 2008 20:45:01 +0000 (20:45 -0000)]
minimal cosmetics
svn path=/main/branches/prefix/; revision=10562
Fabian Groffen [Tue, 3 Jun 2008 20:19:45 +0000 (20:19 -0000)]
reduce diffs, PORTAGE_CONFIGROOT does not include EPREFIX
svn path=/main/branches/prefix/; revision=10559
Fabian Groffen [Tue, 3 Jun 2008 19:52:11 +0000 (19:52 -0000)]
Fix wrong path being attempted to be created (missing /)
svn path=/main/branches/prefix/; revision=10557
Fabian Groffen [Tue, 3 Jun 2008 15:46:05 +0000 (15:46 -0000)]
Merged from trunk 10545:10553
| 10546 | Don't unset PORTAGE_BINPKG_FILE because it's readonly. |
| zmedico | |
| 10547 | Add support for a PORTAGE_RO_DISTDIRS variable. When a given |
| zmedico | file does not exist in DISTDIR, search for the file in this |
| | list of directories. Search order is from left to right. |
| | Note that the current implementation works by creating a |
| | symlink inside DISTDIR, but that may change in the future. |
| 10548 | Fix vardbapi.flush_cache() so that it only updates the cache |
| zmedico | when the number of uncached packages reaches a certain |
| | threshold (currently 5). The cache file can be several |
| | megabytes in size, so updating it for every vdb change is |
| | wasteful. |
| 10549 | Add modification threshold for BlockerCache.flush(), to |
| zmedico | avoid wasteful IO. |
| 10550 | Use float mtime instead of int for finer granularity in |
| zmedico | vardbapi.match() cache staleness checks. |
| 10551 | When pruning the digests to optimize parallel-fetch, use a |
| zmedico | separate dict so that the original digests are still |
| | available if a file needs to be downloaded. |
| 10552 | Fix typo. |
| zmedico | |
| 10553 | Tweak the installed masked code from bug #223447 so that it |
| zmedico | less noisy by suppressing masking messages for packages that |
| | haven't been pulled into the current dependency graph. |
svn path=/main/branches/prefix/; revision=10556
Fabian Groffen [Tue, 3 Jun 2008 15:40:36 +0000 (15:40 -0000)]
Use platform module to make it clear what we're displaying. Instead of an 'uname -mrp' call use platform.platform() to describe the system in emerge --info. Should be merged in the trunk if r10554 is merged too.
svn path=/main/branches/prefix/; revision=10555
Fabian Groffen [Tue, 3 Jun 2008 12:28:15 +0000 (12:28 -0000)]
Use "platform" module instead of os.uname, or -- even worse -- a system
call to uname. Change repoman's identification string not to use
"processor" on Linux (where it is huge), Interix (where it doesn't
exist) and AIX/HP-UX (where it prints "unknown"), but "machine" instead.
This patch is eligable for merging in "trunk".
svn path=/main/branches/prefix/; revision=10554
Fabian Groffen [Mon, 2 Jun 2008 20:40:08 +0000 (20:40 -0000)]
Merged from trunk 10521:10541
| 10523 | Make PackageSet._setAtoms() use existing Atom instances when |
| zmedico | available. |
| 10525 | Fix EditablePackageSet.update() to create Atom instances |
| zmedico | when necessary. |
| 10526 | Make --skipfirst tolerate masked packages by dropping them |
| zmedico | (similar to how it would drop a package that has an |
| | unsatisfied dependency). |
| 10528 | Revert changes wrt argument atoms in the previous commit |
| zmedico | since it's not really useful. |
| 10529 | Update the UnsatisfiedResumeDep display to distinguish |
| zmedico | masked packages from those with unsatisfied dependencies. |
| 10532 | Update the --skipfirst dropped packages warning to mention |
| zmedico | "masking" in addition to unsatisfied dependencies. |
| 10533 | Reference depgraph.UnsatisfiedResumeDep instead of |
| zmedico | mydepgraph since the latter can trigger an UnboundLocalError |
| | in some cases (^C for example). |
| 10535 | Mention masked packages in another --resume message. |
| zmedico | |
| 10538 | Fix typo. |
| zmedico | |
| 10541 | Filter PORTAGE_BINPKG_FILE in save_ebuild_env(). |
| zmedico | |
svn path=/main/branches/prefix/; revision=10545
Fabian Groffen [Mon, 2 Jun 2008 20:38:21 +0000 (20:38 -0000)]
Merged from trunk 10509:10521
| 10511 | Fix PackageSet.findAtomForPackage() to find the most |
| zmedico | specific atom since it can affect behavior when deciding |
| | whether or not to add a slot atom to the world file. |
| 10513 | Optimize the new --skipfirst code so that in only has to |
| zmedico | build a new depgraph one time when there are unsatisfied |
| | deps. This works by recursively traversing the digraph to |
| | remove the parent packages whose deps become unsatisfied |
| | when their dependencies are pruned from the mergelist. |
| 10514 | Clean up reference to parts of the first graph for |
| zmedico | --skipfirst. |
| 10516 | * Tweak isvalidatom() to treat "null" category as valid, but |
| zmedico | missing category as invalid (previously both where treated |
| | as invalid). * Fix a spot inside emerge's unmerge() function |
| | that sometimes generates invalid atoms by adding an |
| | unnecessary "=" to the front. Even when in cases that |
| | resulted in a valid atom here, adding the "=" was redundant |
| | because dep_expand() does that automatically now (for |
| | backward compat). |
| 10518 | Fix TypeError: 'tuple' object does not support item |
| zmedico | assignment |
| 10519 | Add some isvalidatom() test cases with "null" and missing |
| zmedico | category. |
| 10521 | Fix create_world_atom() to take a Package instance in it's |
| zmedico | arguments. |
svn path=/main/branches/prefix/; revision=10544
Fabian Groffen [Mon, 2 Jun 2008 20:35:28 +0000 (20:35 -0000)]
Merged from trunk 10480:10509
| 10481 | Clean up reference to dropped_tasks when finished. |
| zmedico | |
| 10482 | Clean up references to unsatisfied_parents. |
| zmedico | |
| 10485 | Use izip() to eliminate temporary dict instances. |
| zmedico | |
| 10487 | Fix typo. |
| zmedico | |
| 10489 | Use a frozenset instead of a list for containment tests. |
| zmedico | |
| 10491 | Use Package.metadata instead of calling dbapi.aux_get(). |
| zmedico | |
| 10493 | When dropping deps from the resume list, make sure that the |
| zmedico | loop can't be infinite. |
| 10495 | Create Atom instances earlier to avoid redundant validation. |
| zmedico | |
| 10497 | Fix Atom attribute handling in get_operator() and |
| zmedico | dep_getslot() to account for None return values. |
| 10499 | Simplify None Package.slot handling in match_from_list(). |
| zmedico | |
| 10501 | Make PackageSet.findAtomForPackage() just return the first |
| zmedico | atom found since best_match_to_list() won't work correctly |
| | for atoms matched via PROVIDE. |
| 10503 | Pass a mutable config instance into get_masking_status(). |
| zmedico | Currently it doesn't matter for installed packages but it's |
| | safer to be consistent to avoid accidental breakage in the |
| | future. |
| 10505 | Make the use_cache=0 listdir() implementation inside |
| zmedico | vardbapi.cpv_all() rains a PermissionDenied error when |
| | appropriate. |
| 10507 | For consistency, make sure that a normal iterator is always |
| zmedico | returned from dbapi._iter_match() (and never a list). This |
| | way the caller can be sure that the returned object has a |
| | next() method. |
| 10509 | Now that dbapi._iter_match() is guaranteed to return a real |
| zmedico | iterator with a next method(), we can just call next() and |
| | handle StopIteration. |
svn path=/main/branches/prefix/; revision=10543
Fabian Groffen [Mon, 2 Jun 2008 20:33:01 +0000 (20:33 -0000)]
Merged from trunk 10458:10480
| 10459 | Bug #222439 - Add doman support for foo.lang.N filenames. |
| zmedico | Behavior is as follows: foo.1 -> man/man1/foo.1 foo.lang.1 |
| | -> man/lang/man1/foo.1 Thanks to Yuri Vasilevski for the |
| | initial patch. I've modified it to use bash's =~ operator |
| | and corresponding $BASH_REMATCH array. |
| 10460 | Convert doman to use bash's =~ operator instead of calling |
| zmedico | egrep. |
| 10461 | Make set_term_size() handle the CommandNotFound exception if |
| zmedico | stty is missing for some reason. |
| 10462 | Make the new behavior from bug #222439 conditional on EAPI |
| zmedico | being something other than 0 or 1. |
| 10465 | Bug #223447 - Adjust the "installed packages are masked" |
| zmedico | display to recognize packages that are masked by keywords |
| | and are eligible for uninstallation by depclean. This is a |
| | workaround for the fact that depclean may fail to recognize |
| | that the package is eligible for uninstall due to |
| | differences in visibility filtering which can lead to |
| | differences in || dep evaluation. TODO: Share visibility |
| | code to fix this inconsistency. |
| 10467 | Update the fix from bug #220341 to protect USE deps from |
| zmedico | being neglected. |
| 10468 | Skip redundant Atom construction in select_package(). |
| zmedico | |
| 10470 | Fix the code from bug #220341 so that it matches the atom |
| zmedico | against the installed package, like it's supposed to. |
| 10471 | Filter out installed keyword masked packages when populating |
| zmedico | RootConfig.visible_pkgs since otherwise such packages can |
| | trigger undesireable results inside |
| | depgraph._iter_atoms_for_pkg(). |
| 10474 | Make the unmerge time CONFIG_MEMORY_FILE pruning slightly |
| zmedico | more aggressive, so that anything not claimed by another |
| | package in the same slot is pruned. |
| 10476 | Save the content of CONFIG_MEMORY_FILE in dblink.treewalk() |
| zmedico | _before_ unmerging other instances, in order to avoid |
| | overwritting/undoing the pruning that's done during unmerge. |
| 10478 | Make --skipfirst handle missing dependencies by dropping the |
| zmedico | merge tasks that have missing dependencies. This involves |
| | creating an entirely new depgraph each time that a missing |
| | dependency is discovered. This isn't the most efficient |
| | approach but it's simple and it works well. This new |
| | behavior can server as a fix for bug #12768 by calling |
| | emerge --resume --skipfirst each time that emerge exits |
| | unsuccessfully. This was possible before, but now packages |
| | with unsatisfied dependencies will be properly identified |
| | and dropped from the list. |
| 10479 | Clean up exception reference from previous commit. |
| zmedico | |
| 10480 | When --skipfirst drops packages due to unsatisfied |
| zmedico | dependencies, display a warning message with the list of |
| | dropped packages. |
svn path=/main/branches/prefix/; revision=10542
Fabian Groffen [Tue, 27 May 2008 15:41:48 +0000 (15:41 -0000)]
Merged from trunk 10438:10455
| 10440 | Fix USE dep matching support in match_from_list() so that it |
| zmedico | checks to make sure the package supports all specified IUSE. |
| | This involves updating all Package, FakeVartree, and |
| | BlockerDB constructor arguments to implement a |
| | Package.root_config attribute that's used to access implicit |
| | IUSE. |
| 10441 | Define __slots__ for the _use_dep class. |
| zmedico | |
| 10443 | Fix breakage in the BlockerDB constructor. |
| zmedico | |
| 10445 | Fix dbapi._iter_match_use() to escape IUSE values when |
| zmedico | necessary. |
| 10446 | Repoman only checks IUSE for USE deps, so don't evaluate |
| zmedico | conditional USE deps in this case. |
| 10447 | Set Atom.use = None when there are no USE deps (instead of |
| zmedico | the empty tuple returned from dep_getusedeps()). |
| 10448 | Use new Package.use and iuse attributes to avoid extra |
| zmedico | split() calls. |
| 10450 | Fix a typo from the previous commit. |
| zmedico | |
| 10452 | Make config._init_dirs() preserver /tmp and /var/tmp |
| zmedico | permissions if those directories already exist. This gives |
| | freedom to the user to adjust permissions to suit their |
| | taste. |
| 10453 | Fix typo. |
| zmedico | |
| 10455 | Fix breakage due to frozenset being immutable. |
| zmedico | |
svn path=/main/branches/prefix/; revision=10458
Fabian Groffen [Tue, 27 May 2008 15:30:44 +0000 (15:30 -0000)]
Merged from trunk 10418:10438
| 10419 | * Add support for Package instances and USE deps in |
| zmedico | match_from_list(). * Add USE dep matching support to |
| | depgraph._iter_atoms_for_pkg(). |
| 10420 | Remove the Package.cpv_slot attribute. |
| zmedico | |
| 10421 | Use the metadata wrapper to initialize Package slot and use |
| zmedico | attributes. |
| 10422 | Remove unused code. |
| zmedico | |
| 10423 | Fix breakage in Package constructor attribute |
| zmedico | initialization. |
| 10425 | Fix a broken reference to the Package.cpv_slot attribute. |
| zmedico | |
| 10427 | * Enable config.setcpv() to use a Package instance in place |
| zmedico | of a cpv. * Make depgraph._select_package() pass Package |
| | instances into setcpv() calls. * Enable the Package |
| | constructor to use an iterable for metadata items. |
| 10429 | Skip source_all_bashrcs() when $EBUILD_PHASE is not set. |
| zmedico | |
| 10431 | Avoid triggering "cPickle.UnpicklingError: Global and |
| zmedico | instance pickles are not supported." errors that are |
| | triggered when the pickle contains custom classes. |
| 10433 | Don't silently swallow instances of UnpicklingError since |
| zmedico | they are easily triggered by storing instances of custom |
| | classes in a pickle. |
| 10434 | Don't silently swallow instances of UnpicklingError since |
| zmedico | they are easily triggered by storing instances of custom |
| | classes in a pickle. |
| 10436 | Add some debug output for arguments and their associated |
| zmedico | atoms, to help in debugging problems similar to bug #223735. |
| 10438 | Bug #223685 - Use the finally clause to collect elog |
| zmedico | messages just before releasing the build dir lock, so they |
| | never get missed. |
svn path=/main/branches/prefix/; revision=10457
Fabian Groffen [Sun, 25 May 2008 17:54:21 +0000 (17:54 -0000)]
Merged from trunk 10393:10415
| 10394 | For dep_expand() backward compatibility, handle atoms with |
| zmedico | missing '=' prefix which did not raise an error here before |
| | the portage.dep.Atom class was introduced. |
| 10395 | Fix broken dep_getusedeps() cache behavior so that it |
| zmedico | returns the correct type. |
| 10396 | Add support for conditionals inside USE dependencies. This |
| zmedico | is useful for cases in which the package satisfying a |
| | dependency should have identical or opposite flag state |
| | relative to the parent package. Conditionals are evaluated |
| | as follows: parent state conditional result x [x?] [x] -x |
| | [x?] [-x] x [-x?] [-x] -x [-x?] [x] |
| 10398 | * Fix dep_getusedeps() test to work with tuples. * Add test |
| zmedico | cases for conditional USE deps. |
| 10399 | Fix isvalidatom() so tests pass, and add a USE deps case to |
| zmedico | the tests. |
| 10400 | Remove category validation cruft from catpkgsplit(). |
| zmedico | |
| 10410 | Remove redundant SLOT dep code in portdbapi.xmatch() since |
| zmedico | it's now handled by dbapi._iter_match(). |
| 10413 | Facilitate creation of Atom instances in a few obvious |
| zmedico | places: * PackageSet._setAtoms() * AtomArg and PackageArg |
| | constructors. |
| 10415 | * Fix PackageSet.findAtomForPackage() to take a Package |
| zmedico | instance as an argument. * Simplify |
| | PackageSet.findAtomForPackage() by implementing it on top of |
| | iterAtomsForPackage(). |
svn path=/main/branches/prefix/; revision=10418
Fabian Groffen [Sun, 25 May 2008 17:51:33 +0000 (17:51 -0000)]
Merged from trunk 10382:10393
| 10383 | Raise an error if the named repository doesn't exist |
| genone | |
| 10387 | Bug #2272 - Extend dependency atom sytax to specify enabled |
| zmedico | or disabled states of USE flags. Matching with the new |
| | syntax is currently only supported in the dbapi classes and |
| | dependency resolver (use matching does not work yet in |
| | config files such as package.mask). |
| 10388 | Bug #220671 - Fix 'RuntimeError: Set changed size during |
| zmedico | iteration' error. |
| 10389 | Bug #223417 - use floating point mtime for finer grained |
| zmedico | validation in cachedir(). |
| 10390 | Bug #223417 - Make the vardbapi.cpv_all() use_cache |
| zmedico | parameter useful for forcing direct os.listdir() calls. This |
| | is more of an issue now that these listdir() calls are |
| | frequently triggered when merging packages (due to things |
| | like blocker and preserve-libs handling). |
| 10391 | Fix use_reduce() so that it appropriately raises an |
| zmedico | InvalidDependString instead of an IndexError in some cases |
| | (avoid IndexError by using slice notation). |
| 10392 | Fix paren_reduce() so that it appropriately raises an |
| zmedico | InvalidDependString() in some cases, instead of a nonsense |
| | AttributeError. |
| 10393 | Fix paren_reduce() so that it appropriately raises an |
| zmedico | InvalidDependString() in some cases, instead of a nonsense |
| | ValueError. |
svn path=/main/branches/prefix/; revision=10417
Fabian Groffen [Wed, 21 May 2008 17:37:05 +0000 (17:37 -0000)]
Merged from trunk 10359:10377
| 10360 | Tweak vardbapi.aux_get() cache logic a bit. |
| zmedico | |
| 10361 | In unmerge(), flush the vardbapi aux_get() cache to disk |
| zmedico | before releasing the vardb lock. |
| 10364 | Exclude "env" from use in variable substitution since we |
| zmedico | want to avoid any interaction with the calling environment |
| | that might lead to unexpected results. |
| 10367 | Fix vardbapi.aux_get() logic so that it will correctly pull |
| zmedico | the metadata value corresponding to an unrecognized metadata |
| | key. |
| 10369 | Validate and normalize target_root earlier in the config |
| zmedico | constructor. |
| 10372 | Adjust code order to organize it a bit. (branches/2.1.2 |
| zmedico | r10371) |
| 10373 | Inside vardbapi.aux_get(), do more validation on the cache |
| zmedico | data to ensure it contains the expected data types. |
| 10375 | In vardbapi.aux_get(), don't mark cacheed metadata invalid |
| zmedico | just because some of the values are missing. |
| 10377 | Simplify cache code in vardbapi.aux_get(). |
| zmedico | |
svn path=/main/branches/prefix/; revision=10385
Fabian Groffen [Wed, 21 May 2008 17:30:12 +0000 (17:30 -0000)]
Merged from trunk 10348:10359
| 10349 | Add back the "install new portage asap" behavior that got |
| zmedico | lost when that area of code was rewritten. |
| 10350 | Fix th logic from the previous commit. |
| zmedico | |
| 10351 | Add the environment and some more files to the existing |
| zmedico | make.defaults variable substitution support. Variable |
| | substitution occurs in the following order: * env.d * env * |
| | make.globals * make.defaults * make.conf |
| 10357 | Bug #222623 - Use "regardless" instead of "irregardless" |
| zmedico | since the latter is considered to be incorrect. |
| 10359 | * To avoid excessive IO on each call to |
| zmedico | LinkageMap.rebuild(), cache NEEDED.* files via |
| | vardbapi.aux_get(). * Make vardbapi.aux_get() preserve |
| | newlines in multi-line metadata such as NEEDED.* and |
| | CONTENTS. |
| | Prefix: hacked in MACHO cache support
svn path=/main/branches/prefix/; revision=10384
Fabian Groffen [Tue, 20 May 2008 14:20:45 +0000 (14:20 -0000)]
When using vecho or eqawarn it comes in handy when isolated-functions have been sourced. IMO trunk misses these includes as well.
svn path=/main/branches/prefix/; revision=10380
Fabian Groffen [Tue, 20 May 2008 12:59:04 +0000 (12:59 -0000)]
add sparcv9 as 64-bits host, as we use it instead of sparc64
svn path=/main/branches/prefix/; revision=10379
Fabian Groffen [Sat, 17 May 2008 14:16:29 +0000 (14:16 -0000)]
only break on newlines, not on 'n'
svn path=/main/branches/prefix/; revision=10348
Fabian Groffen [Fri, 16 May 2008 21:50:14 +0000 (21:50 -0000)]
Merged from trunk 10345:10346
| 10346 | Detect and filter ebuilds that have invalid versions in |
| zmedico | portdbapi.cp_list(). |
svn path=/main/branches/prefix/; revision=10347