summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove extended package set configuration docs.v2.1.10.48Zac Medico2012-02-204-25/+9
| | | | Extended package sets configuration is disabled in the stable branch.
* Remove FEATURES=preserve-libs config/docs.Zac Medico2012-02-203-20/+6
| | | | Support for FEATURES=preserve-libs is disabled in the stable branch.
* portage.const: toggle constants for stable branchZac Medico2012-02-201-4/+4
| | | | | | | _ENABLE_DYN_LINK_MAP = False _ENABLE_PRESERVE_LIBS = False _ENABLE_REPO_NAME_WARN = False _ENABLE_SET_CONFIG = False
* Scheduler: hang in _schedule_tasks, bug 404995v2.2.0_alpha88Zac Medico2012-02-201-1/+2
| | | | | This is triggered whenever emerge bails out while parallel-fetch is running in the background.
* _eventloop: use explicit relative importsv2.2.0_alpha87Zac Medico2012-02-173-7/+6
|
* MtimeDB: add JSON read/writeZac Medico2012-02-171-14/+55
| | | | | | | | Support serialization as JSON instead of pickle, so that /var/cache/edb/mtimedb is human readable/writable, for those rare cases where it may be useful. Currently, pickle is still used for writes. The plan is to migrate to JSON after JSON read has been supported for some time.
* MtimeDB._load: explicitly close fileZac Medico2012-02-171-3/+5
|
* PreservedLibsRegistry: add JSON read/writeZac Medico2012-02-171-10/+51
| | | | | | | | Support serialization as JSON instead of pickle, so that /var/lib/portage/preserved_libs_registry is human readable/writable, for those rare cases where it may be useful. Currently, pickle is still used for writes. The plan is to migrate to JSON after JSON read has been supported for some time.
* repoman: make virtual.oldstyle an errorZac Medico2012-02-173-5/+13
| | | | | Also, add "allow-provide-virtuals = true" setting for metadata/layout.conf which reduces it to a warning.
* portage.5: layout.conf manifest-hashes exampleZac Medico2012-02-171-0/+2
|
* PollSelectAdapter: don't inherit PollConstantsZac Medico2012-02-171-1/+1
|
* Move Poll{Constants,SelectAdapter} to _eventloop.Zac Medico2012-02-173-5/+5
|
* Move _emerge.SlotObject to portage.util.Zac Medico2012-02-1711-17/+23
|
* SlotObject: validate __slots__ and keyword argsZac Medico2012-02-171-2/+11
|
* Remove redundant inherited __slots__ values.Zac Medico2012-02-172-2/+2
|
* EventLoop: fix _io_handler_class "f" attributeZac Medico2012-02-171-1/+1
|
* portage.package.ebuild.fetch.fetch(): Fix ResourceWarning with Python 3.2.Arfrever Frehtes Taifersar Arahesis2012-02-171-9/+10
|
* EventLoop.iteration: run timeouts lastZac Medico2012-02-171-12/+12
| | | | | Run timeouts last, in order to minimize latency in termination of iteration loops that they may control.
* SubProcess._waitpid_cb: fix args for glib compatZac Medico2012-02-171-1/+1
|
* EventLoop: prune obsolete codeZac Medico2012-02-171-70/+18
|
* EventLoop.iteration: poll for blocking, not sleepZac Medico2012-02-161-2/+5
| | | | | The effect is be mostly the same, but it's more conistent to use _do_poll for all blocking, plus it has EINTR handling.
* EventLoop.child_watch_add: dynamic IO watchZac Medico2012-02-161-10/+22
| | | | | | | | | The IO watch is dynamically registered and unregistered as needed, since we don't want to consider it as a valid source of events when there are no child listeners. It's important to distinguish when there are no valid sources of IO events, in order to avoid an endless poll call if there's no timeout. This fixes possbible endless poll calls since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.
* EventLoop: wakeup poll loop to receive sigchildZac Medico2012-02-161-1/+12
| | | | | | TODO: Find out why SIGCHLD signals aren't delivered during poll calls, forcing us to wakeup in order to receive them. This fixes random hangs in poll calls since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.
* EventLoop: fix signal race in _sigchld_initZac Medico2012-02-161-1/+1
|
* EventLoop: fix _sigchld_io_cb to return TrueZac Medico2012-02-161-0/+1
| | | | | This fixes an infinite loop since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.
* SubProcess: use child_watch_addZac Medico2012-02-161-29/+7
| | | | | This fixes performance issues introduced by commit 9c664779a16f6cbca8a5ffe7f6b0c68572819723.
* EventLoop: implement child_watch_addZac Medico2012-02-163-1/+99
|
* portage.update.fixdbentries(): Fix ResourceWarnings with Python 3.2.Arfrever Frehtes Taifersar Arahesis2012-02-161-2/+3
|
* SubProcess: use non-blocking waitpidZac Medico2012-02-151-12/+27
| | | | | This ensures that the EventLoop will not stop due to a waitpid call blocking forever.
* EventLoop.iteration: sleep if no IO handlersZac Medico2012-02-151-1/+13
| | | | | | | Sleep so that we don't waste cpu time by looping too quickly. This makes EventLoop useful for code that needs to wait for timeout callbacks regardless of whether or not any IO handlers are currently registered.
* EventLoop.timeout_add: fix inverted min intervalZac Medico2012-02-151-1/+1
|
* Comment about _setup_pipes / PyPy GC interaction.Zac Medico2012-02-152-2/+10
|
* SpawnProcess: use os.open for /dev/null inputZac Medico2012-02-151-3/+3
|
* MergeProcess: inherit stdin for use with pdbZac Medico2012-02-151-0/+7
|
* treewalk: handle EAGAIN from listdir for PyPy 1.8Zac Medico2012-02-151-2/+15
|
* get_open_fds: handle EAGAIN for PyPy 1.8Zac Medico2012-02-151-1/+15
|
* Scheduler: PyPy WeakValueDictionary.pop KeyErrorZac Medico2012-02-141-1/+8
| | | | | | | KeyError observed from WeakValueDictionary.pop() with PyPy 1.8, despite None given as default. Note that PyPy 1.8 has the same WeakValueDictionary code as CPython 2.7, so it may be possible for CPython to raise KeyError here as well.
* SpawnProcess: for stdout use os.write, not fdopenZac Medico2012-02-141-6/+5
|
* repoman: fix ebuild.badheader for bug #403705Zac Medico2012-02-141-0/+1
|
* SubProcess._wait: add debug code for bug #403697Zac Medico2012-02-141-0/+6
|
* Assert that fork returns int for bug 403697.Zac Medico2012-02-142-0/+7
| | | | | These cases should have been included with commit 6a94a074aa0475173a51f3f726377d4c407e986b.
* AsynchronousTask: skip cancelled check in _startZac Medico2012-02-142-6/+0
| | | | | These checks should be irrelevant, since the cancel() method is never called on anything that hasn't been started already.
* EventLoop: allow IO event handler re-entranceZac Medico2012-02-141-11/+6
| | | | | | IO event handlers may be re-entrant, in case something like AbstractPollTask._wait_loop(), needs to be called inside a handler for some reason.
* After python fork, don't close fds for PyPy 1.8.Zac Medico2012-02-143-11/+22
| | | | | | | | | | | | | | | | If we close all open file descriptors after a fork, with PyPy 1.8 it triggers "[Errno 9] Bad file descriptor" later in the subprocess. Apparently it is holding references to file descriptors and closing them after they've already been closed and re-opened for other purposes. As a workaround, we don't close the file descriptors, so that they won't be re-used and therefore we won't be vulnerable to this kind of interference. The obvious caveat of not closing the fds is that the subprocess can hold locks that belonged to the parent process, even after the parent process has released the locks. Hopefully this won't be a major problem though, since the subprocess has to exit at release the lock eventually, when the EbuildFetcher or _MergeProcess task is complete.
* EventLoop._do_poll: tweak EINTR handlingZac Medico2012-02-131-13/+14
| | | | | | | Silently handle EINTR, which is normal when we have received a signal such as SIGINT. Also, raise StopIteration in order to break out of our current iteration and respond appropriately to the signal as soon as possible.
* AsynchronousTask: don't wait for exit statusZac Medico2012-02-139-15/+35
| | | | | | Synchronous waiting for status is not supported, since it would be vulnerable to hitting the recursion limit when a large number of tasks need to be terminated simultaneously, like in bug #402335.
* EventLoop: make _poll/_run_timeouts re-entrantZac Medico2012-02-131-62/+73
| | | | | | | This fixes infinite loops triggered by Ctrl-C, where timeout calls would exhaust the poll event queue because _poll was not re-entrant. Now, re-entrance is only prohibited for individual callback functions, in order to protect against infinite recursion.
* runtests.sh: test PyPy 1.8, and support prefixZac Medico2012-02-131-4/+10
|
* Handle missing os.setgroups for PyPy.Zac Medico2012-02-133-2/+21
| | | | See https://bugs.pypy.org/issue833 for details.
* checksum.py: remove PyPy 1.7 workaroundsZac Medico2012-02-131-30/+1
| | | | | | The corresponding hashlib issues are fixed in PyPy 1.8: https://bugs.pypy.org/issue957