aboutsummaryrefslogtreecommitdiff
path: root/man
Commit message (Collapse)AuthorAgeFilesLines
* Change README to markdown. Also add badge and info for black formatting.Wolfgang E. Sanyer2021-09-191-1/+1
| | | | | Signed-off-by: Wolfgang E. Sanyer <WolfgangESanyer@gmail.com> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* dispatch-conf: Add support for conf-update.d hook directoryFlorian Schmaus2021-08-221-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Those hooks can be used by tools that manage /etc to get notified about updated configuration files. For example, etckeeper could hook this mechanism like the following: /etc/portage/conf-update.d/etckeeper case "${1}" in pre-update) etckeeper pre-install ;; post-update) etckeeper post-install ;; esac Currently conf-update.d hooks are called with 4 different events: - pre-session - post-session - pre-update - post-update The *-session events are emitted prior starting a new configuration update sesssion, and when it is finished. That is, the pre-session event is emitted just before dispatch-conf displays the first configuration file, and right before it exists. The *-update events are emitted before and after a configuration file has been updated. The path of the configuration file is provided as second hook argument. Signed-off-by: Florian Schmaus <flo@geekplace.eu> Closes: https://bugs.gentoo.org/698316 Bug: https://bugs.gentoo.org/260623 Closes: https://github.com/gentoo/portage/pull/689 Signed-off-by: Michał Górny <mgorny@gentoo.org>
* pid-ns-init: Consider autogroup schedulingFlorian Schmaus2021-08-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With Linux's autogroup scheduling feature (CONFIG_SCHED_AUTOGROUP) setting a nice value on a per-process base has only an effect for scheduling decisions relative to the other threads in the same session (typically: the same terminal window). See the section "The nice value and group scheduling" in the sched(7) man page. Basically this means that portage "just" setting the nice value, has no effect in presence of autogroup scheduling being active (which is probably true for most (desktop) user systems). This commit changes pid-ns-init to set the autogroup's nice value in case autogroups are present (detected by the existence of /proc/self/autogroup). My initial attempt to consider autogroup scheduling revolved around nice() in actions.py setting the autogroup nice value and restoring the original value with an atexit handler. See 055abe523c2c ("PORTAGE_NICENESS: Consider autogroup scheduling"). However this is fragile if the performing process is unprivileged (think of a user calling "ebuild foo-1.0.0.ebuild manifest") as Linux employs a rate limiting to autogroup changes by unprivileged processes [1]. Eventually this means portage can only reliable set the autogroup value within the pid-ns-init helper, where a new session is created. We only set the autogroup value within the new session, which relieves portage from restoring the original value, as the autogroup will cease to exist once the session exists, i.e. with the termination of the pid-ns-init helper. Note that the pid-ns-init helper is an optional portage feature 'pid-sandbox'. Only if this is enabled, portage will set the autogroup's nice value. 1: https://github.com/torvalds/linux/blob/fd0aa1a4567d0f09e1bfe367a950b004f99ac290/kernel/sched/autogroup.c#L226-L227 Bug: https://bugs.gentoo.org/777492 Signed-off-by: Florian Schmaus <flow@gentoo.org> Closes: https://github.com/gentoo/portage/pull/728 Signed-off-by: Michał Górny <mgorny@gentoo.org>
* man/emerge.1: Fix typo in --with-bdeps descriptionSam James2021-08-151-1/+1
| | | | | Closes: https://github.com/gentoo/portage/pull/730 Signed-off-by: Sam James <sam@gentoo.org>
* man/make.conf.5: remove mention of zlib USE flagThymo van Beers2021-07-041-2/+1
| | | | | | | | | Both sys-devel/binutils and sys-devel/gdb are built with system zlib by default for some time now. This commit removes the mention of USE=zlib to avoid confusion. Signed-off-by: Thymo van Beers <thymovanbeers@gmail.com> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Revert "PORTAGE_NICENESS: Consider autogroup scheduling"Zac Medico2021-06-171-9/+1
| | | | | | | | | | This reverts commit 055abe523c2c3f6c8f1dccfb53565209222f90c1 due to another regression. See: https://github.com/gentoo/portage/pull/728 Bug: https://bugs.gentoo.org/777492 Bug: https://bugs.gentoo.org/785484 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* PORTAGE_NICENESS: Consider autogroup schedulingFlorian Schmaus2021-06-141-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With Linux's autogroup scheduling feature (CONFIG_SCHED_AUTOGROUP) setting a nice value on a per-process base has only an effect for scheduling decisions relative to the other threads in the same session (typically: the same terminal window). See the section "The nice value and group scheduling" in the sched(7) man page. Basically this means that portage "just" setting the nice value, has no effect in presence of autogroup scheduling being active (which is probably true for most (desktop) user systems). This commit changes emerge to set the autogroup's nice value, instead of the processes' nice value, in case autogroups are present (detected by the existence of /proc/self/autogroup). The tricky part about autogroup nice values is that we want restore the orignal nice value once we are finished. As otherwise, the session, e.g. your terminal, would continue using this value, and so would subsequently executed processes. For that we use Python's atexit functinaly, to register a function that will restore the orignal nice value of the autogroup. Users may have set PORTAGE_NICENESS to a value outside of the range of valid nice values [-20, 19]. Calling os.nice() with such a value will simply cap the process's nice value, but writing this invalid value to the autogoup pseudo-file will fail with "Invalid argument". Since os.nice() returns the current nice value, we simply use the returned value to set the autogroup nice value. Portage would previously always change the nice value to zero, even if the user did not explicitly request so. Now we do not change the nice value unless requested. Closes: https://github.com/gentoo/portage/pull/727 Bug: https://bugs.gentoo.org/777492 Signed-off-by: Florian Schmaus <flo@geekplace.eu> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Revert "PORTAGE_NICENESS: Consider autogroup scheduling"Zac Medico2021-06-131-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a4d882964ee1931462f911d0c46a80e27e59fa48. It triggered this regression: # PORTAGE_NICENESS=20 emerge -av --depclean OSError: [Errno 22] Invalid argument During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python-exec/python3.9/emerge", line 51, in <module> retval = emerge_main() File "/usr/lib/python3.9/site-packages/_emerge/main.py", line 1319, in emerge_main return run_action(emerge_config) File "/usr/lib/python3.9/site-packages/_emerge/actions.py", line 2999, in run_action apply_priorities(emerge_config.target_config.settings) File "/usr/lib/python3.9/site-packages/_emerge/actions.py", line 2635, in apply_priorities nice(settings) File "/usr/lib/python3.9/site-packages/_emerge/actions.py", line 2672, in nice out.eerror("%s\n" % str(e)) OSError: [Errno 22] Invalid argument Bug: https://bugs.gentoo.org/777492#c4 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* PORTAGE_NICENESS: Consider autogroup schedulingFlorian Schmaus2021-06-131-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | With Linux's autogroup scheduling feature (CONFIG_SCHED_AUTOGROUP) setting a nice value on a per-process base has only an effect for scheduling decisions relative to the other threads in the same session (typically: the same terminal window). See the section "The nice value and group scheduling" in the sched(7) man page. Basically this means that portage "just" setting the nice value, has no effect in presence of autogroup scheduling being active (which is probably true for most (desktop) user systems). This commit changes emerge to set the autogroup's nice value, instead of the processes' nice value, in case autogroups are present (detected by the existence of /proc/self/autogroup). The tricky part about autogroup nice values is that we want restore the orignal nice value once we are finished. As otherwise, the session, e.g. your terminal, would continue using this value, and so would subsequently executed processes. For that we use Python's atexit functinaly, to register a function that will restore the orignal nice value of the autogroup. Bug: https://bugs.gentoo.org/777492 Signed-off-by: Florian Schmaus <flo@geekplace.eu> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* make.conf.5: Suggest PORTAGE_LOG_FILTER_FILE_CMD supervisor for cat fallback ↵Zac Medico2021-05-231-1/+12
| | | | | | | | | | | (bug 781854) If PORTAGE_LOG_FILTER_FILE_CMD fails after exec, then output will be lost. Therefore, suggest to use bash as a supervisor, with fallback to cat. Bug: https://bugs.gentoo.org/781854 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Initial IDEPEND support (for EAPI 8)Michał Górny2021-05-231-1/+12
| | | | | Signed-off-by: Michał Górny <mgorny@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Implement PROPERTIES=test_network and ALLOW_TESTMichał Górny2021-05-191-1/+20
| | | | | | | | | | | | | | | | | | The 'test_network' property can be used to indicate that the test phase requires access to the Internet (but RESTRICT=test should still be used). If present, network-sandbox will be disabled throughout the test phase. This opens up the possibility of adding further 'test_*' properties. Additionally, ALLOW_TEST can be used to ignore RESTRICT=test in a subset of packages. When the value includes 'network' token, tests using 'test_network' property are reenabled. When the value includes 'all' token, all instances of RESTRICT=test are ignored. Bug: https://bugs.gentoo.org/553696 Reviewed-by: Zac Medico <zmedico@gentoo.org> Acked-by: Ulrich Müller <ulm@gentoo.org> Signed-off-by: Michał Górny <mgorny@gentoo.org>
* ebuild.5: Add eapply documentationNekun2021-04-241-1/+21
| | | | | | Bug: https://bugs.gentoo.org/698244 Signed-off-by: Nekun <nekokun@firemail.cc> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/portage.5: Add userpatch documentationNekun2021-04-241-1/+32
| | | | | | Bug: https://bugs.gentoo.org/698244 Signed-off-by: Nekun <nekokun@firemail.cc> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/emerge.1: fix typosThomas Deutschmann2021-04-051-1/+1
| | | | | | | Fixes: 3253686e9438 ("emerge: make --binpkg-respect-use=y imply --autounmask-use=n") Bug: https://bugs.gentoo.org/773469 Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Add profile format extension for repo atomsFelix Bier2021-03-281-2/+4
| | | | | | | | | | This commit adds a profile format extension that allows to use repo atoms in profile files. Bug: https://bugs.gentoo.org/651208 Closes: https://github.com/gentoo/portage/pull/687 Signed-off-by: Felix Bier <felix.bier@rohde-schwarz.com> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: add -W option short for --deselectGreg Kubaryk2021-03-271-1/+1
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/make.conf.5: fix typosSam James2021-03-061-4/+4
| | | | | | Closes: https://github.com/gentoo/portage/pull/681 Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: make --binpkg-respect-use=y imply --autounmask-use=nZac Medico2021-03-021-3/+6
| | | | | | | | | If --binpkg-respect-use=y is given explicitly, then it implies --autounmask-use=n, because these options naturally oppose eachother. Bug: https://bugs.gentoo.org/773469 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/emirrordist.1: fix --content-db descriptionZac Medico2021-02-261-1/+1
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emirrordist: add --content-db option required for content-hash layout (bug ↵Zac Medico2021-02-261-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | 756778) Add a --content-db option which is required for the content-hash layout because its file listings return content digests instead of distfile names. The content db serves to translate content digests to distfiles names, and distfiles names to content digests. All keys have one or more prefixes separated by colons. For a digest key, the first prefix is "digest" and the second prefix is the hash algorithm name. For a filename key, the prefix is "filename". The value associated with a digest key is a set of file names. The value associated with a distfile key is a set of content revisions. Each content revision is expressed as a dictionary of digests which is suitable for construction of a DistfileName instance. A given content digest will translate to multiple distfile names if multiple associations have been created via the content db add method. The relationship between a content digest and a distfile name is similar to the relationship between an inode and a hardlink. Bug: https://bugs.gentoo.org/756778 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* make.globals: default enable FEATURES=binpkg-multi-instanceZac Medico2021-02-221-0/+1
| | | | | Bug: https://bugs.gentoo.org/715112 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/make.conf.5: mention eclean-pkg for binpkg-multi-instanceZac Medico2021-02-221-2/+2
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: disable --autounmask-license by defaultZac Medico2021-02-071-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | Disable --autounmask-license by default, in order to limit user exposure to risks associated with package.license changes. The changes that this option suggests are only intended to be accepted when a user has made a conscious decision to accept the corresponding license(s). Creation of package.license changes introduces a risk that users may erroneously accept the changes due to some kind of accident or misunderstanding, rather than due to conscious decisions about licenses. These risks provide motivation to disable --autounmask-license by default. The --autounmask-use option will remain as the only autounmask option that is still enabled by default. The unit tests demonstrate interactions between --autounmask and --autounmask-license options. The --autounmask option enables --autounmask-license unless --autounmask-license=n has been specified. If --autounmask=n is used to disable autounmask, then --autounmask-license=y has no effect. Bug: https://bugs.gentoo.org/766773 Reviewed-by: Brian Dolbec <dolsen@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emaint --fix merges: add -y, --yes optionZac Medico2021-02-071-1/+5
| | | | | | | | | Since the emaint --fix merges uses emerge --ask, add a -y, --yes option to use --ask=n instead. Bug: https://bugs.gentoo.org/766767 Reviewed-by: Brian Dolbec <dolsen@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/make.conf.5: FETCHCOMMAND DIGESTS placeholder uses colonsDaniel M. Weeks2021-02-011-2/+2
| | | | | | | Closes: https://github.com/gentoo/portage/pull/668 Fixes: f04dae7728b5 ("Make digests available to fetch command") Signed-off-by: Daniel M. Weeks <dan@danweeks.net> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/make.conf.5: Fix typo in markupUlrich Müller2021-01-181-1/+1
| | | | | Fixes: bcf12c6f26cf ("Add a note that PORTDIR is a repository ...") Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Make digests available to fetch commandDaniel M. Weeks2021-01-091-1/+13
| | | | | | | | | This makes it possible for the fetch command to utilize a protocol/service that identifies files by their hash. Closes: https://github.com/gentoo/portage/pull/655 Signed-off-by: Daniel M. Weeks <dan@danweeks.net> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Typofix: Use just one definite articlePetr Šabata2020-11-211-1/+1
| | | | | | | | | I first noticed this in make.conf(5) but it turned out there were many more occurences of these; fixed with find & sed. Closes: https://github.com/gentoo/portage/pull/634 Signed-off-by: Petr Šabata <contyk@redhat.com> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: add --quickpkg-direct-root optionZac Medico2020-11-011-2/+8
| | | | | | | | | Specify the root to use as the --quickpkg-direct package source. This root is assumed to be immutable during the entire emerge operation. The default is set to "/". Bug: https://bugs.gentoo.org/752066 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Add mercurial sync supportBrian Evans2020-09-201-1/+23
| | | | | Bug: https://bugs.gentoo.org/644246 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* egencache: add --external-cache-only option (bug 737470)Zac Medico2020-09-131-1/+8
| | | | | | | | | | | | | The --external-cache-only option is useful for client-side use cases where writing cache files inside the repository itself may interfere with repository verification. This option is currently supported for --update and --update-pkg-desc-index actions, for which consumers of the corresponding cache or index files are already capable of consuming files from the external cache directory (/var/cache/edb/dep). Bug: https://bugs.gentoo.org/737470 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* binrepos.conf: support fetchcommand customization (bug 668302)Zac Medico2020-09-071-0/+14
| | | | | | | | | Support customization of fetchcommand and resumecommand in binrepos.conf, allowing customized authentication mechanisms for each repository. Bug: https://bugs.gentoo.org/668302 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Add binrepos.conf to replace PORTAGE_BINHOST (bug 668334)Zac Medico2020-09-072-1/+40
| | | | | | | | | | | | | | | | | | Support /etc/portage/binrepos.conf as a replacement for the PORTAGE_BINHOST variable. Behavior is similar to repos.conf, initially supporting just the sync-uri attribute. Both binrepos.conf and PORTAGE_BINHOST can be used simultaneously, in the same way that repos.conf and PORTDIR_OVERLAY can be used simultaneously. The emerge --info output for binrepos.conf looks like this: Binary Repositories: example-binhost sync-uri: https://example.com/binhost Bug: https://bugs.gentoo.org/668334 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/portage.5: Fix man2html rendering in repos.conf sectionZac Medico2020-09-071-2/+2
| | | | Signed-off-by: Zac Medico <zmedico@gentoo.org>
* make.conf: Treat __* variables as local and do not propagate them.Arfrever Frehtes Taifersar Arahesis2020-09-071-1/+3
| | | | | | Bug: https://bugs.gentoo.org/740588 Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* egencache --update-pkg-desc-index: emulate esync --verbose output (bug 737470)Zac Medico2020-09-071-0/+3
| | | | | | | | | | | | | | | | When the --verbose flag is given, make --update-pkg-desc-index emulate esync --verbose output. Example: * Searching for changes [ N] acct-group/ultimaker (0): Group for ultimaker [ N] acct-user/ultimaker (0): User for ultimaker [ U] www-client/opera (70.0.3728.144): A fast and secure web browser [MU] www-client/opera-developer (72.0.3798.0): A fast and secure web browser [ U] x11-libs/gtksourceview (4.6.1-r1): A text widget implementing syntax highlighting and other features Bug: https://bugs.gentoo.org/737470 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge --search: auto-detect regular expressions (bug 737480)Zac Medico2020-09-071-1/+11
| | | | | | | | | | | | | | | | | | | | | Automatically detect regular expressions when the search string contains any of these regular expression characters or character sequences: ^ $ * [ ] { } | ? .+ This simplifies usage, so that users no longer have to remember to prefix regular expressions with the % character. The new behavior can be disabled by --regex-search-auto=n, in case the regular expressions interpretation causes some kind of problem. Note that fuzzy search and regular expression search are mutually exclusive, and fuzzy search remains the default for search strings that do not contain any regular expression characters. Bug: https://bugs.gentoo.org/737480 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/{portage,make.conf}.5: Files in subdirs are parsed in lexical orderMichael Everitt2020-09-072-10/+9
| | | | | | | | | | Most files in packages.*, make.conf/*, *.postsync.d/* are parsed not just in ascending alphabetical order, but actually in lexographical (lexical) order, which means alpha-numerically + symbols. Closes: https://github.com/gentoo/portage/pull/616 Signed-off-by: Michael Everitt <gentoo@veremit.xyz> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/portage.5: Tidy up some long (>80 char) linesMichael Everitt2020-09-051-10/+13
| | | | | | Closes: https://github.com/gentoo/portage/pull/615 Signed-off-by: Michael Everitt <gentoo@veremit.xyz> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: Add short -l option for --load-average (bug 699256)Zac Medico2020-08-161-1/+1
| | | | | | | | | Add a short -l option for --load-average just like make(1) has. Bug: https://bugs.gentoo.org/699256 Reviewed-by: Brian Dolbec <dolsen@gentoo.org> Reviewed-by: Matt Turner <mattst88@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* emerge: Remove deprecated --changelog option (bug 699256)Zac Medico2020-08-161-6/+0
| | | | | Bug: https://bugs.gentoo.org/699256 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man/ebuild.5: Fix $P and $PN exampleFlorian Schmaus2020-07-071-2/+2
| | | | | | | | | | | | | | | | | | | | | Both variables do *not* include the package's category. So $PN, instead of x11-base/xorg-server returns xorg-server Same goes for $P. This commit fixes the error which was introduced by 84b9b5c2a ("man/ebuild.5: Improvements to the ebuild(5) man page"). Bug: https://bugs.gentoo.org/731246 Closes: https://github.com/gentoo/portage/pull/567 Signed-off-by: Florian Schmaus <flo@geekplace.eu> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repos.conf: Use consistent list of values for boolean optionsWynn Wolf Arbor2020-07-021-25/+22
| | | | | | | | | | | | | | | | | | Valid values for boolean options in repos.conf are currently not managed in a consistent manner. Some options only support 'true' and 'false', whilst others additionally support 'yes' and 'no'. Using the latter forms on options that do not support them will lead to unexpected behaviour. For example, an option checking for 'true' will be disabled when 'yes' is used. This is counter-intuitive and adds additional burden: the user has to look up in the manual which form is accepted by which option. Have all boolean options consistently accept 'yes', 'no', 'true', and 'false' and make sure to document this in the portage(5) manual. Additionally, document the default value for each. Signed-off-by: Wynn Wolf Arbor <wolf@oriole.systems> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* man: fix syntax for page refsMike Frysinger2020-06-302-6/+6
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746)Zac Medico2020-06-221-1/+6
| | | | | | | | | | | | | | | | | | | | This variable specifies a command that filters build log output to a log file. The plan is to extend this to support a separate filter for tty output in the future. In order to enable the EbuildPhase class to write elog messages to the build log with PORTAGE_LOG_FILTER_FILE_CMD support, convert its _elog method to a coroutine, and add a SchedulerInterface async_output method for it to use. Use a new BuildLogger class to manage log output (with or without a filter command), with compression support provided by PipeLogger. BuildLogger has a stdin property which provides access to a writable binary file stream (refers to a pipe) that log content is written to. Bug: https://bugs.gentoo.org/709746 Reviewed-by: Brian Dolbec <dolsen@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Revert "Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746)"Zac Medico2020-06-151-6/+1
| | | | | | | | This reverts commit ab7556a5c0df418d61148a05347f4c73115e5747. We've had reports of emerge hangs, so reverting this for now. Bug: https://bugs.gentoo.org/709746 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746)Zac Medico2020-06-141-1/+6
| | | | | | | | | | | | | | | | | | | This variable specifies a command that filters build log output to a log file. The plan is to extend this to support a separate filter for tty output in the future. In order to enable the EbuildPhase class to write elog messages to the build log with PORTAGE_LOG_FILTER_FILE_CMD support, convert its _elog method to a coroutine, and add a SchedulerInterface async_output method for it to use. Use a new BuildLogger class to manage log output (with or without a filter command), with compression support provided by PipeLogger. BuildLogger has a stdin property which provides access to a writable binary file stream (refers to a pipe) that log content is written to. Bug: https://bugs.gentoo.org/709746 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* repos.conf: add bool sync-openpgp-key-refresh option (bug 661518)Zac Medico2020-06-141-1/+8
| | | | | | | | | | | | | | | | | | Add a sync-openpgp-key-refresh option that makes it possible to disable key refresh, which may be useful in cases when it is not possible to refresh keys. Key refresh is enabled by default, and if it is disabled then the SyncBase._refresh_keys method will output an ewarn message like this when the --quiet option is not enabled: * Key refresh is disabled via a repos.conf sync-openpgp-key-refresh * setting, and this is a security vulnerability because it prevents * detection of revoked keys! Tested-by: Rick Farina <zerochaos@gentoo.org> Bug: https://bugs.gentoo.org/661518 Signed-off-by: Zac Medico <zmedico@gentoo.org>
* Default BINPKG_COMPRESSION to zstd (bug 715108)Zac Medico2020-05-241-2/+2
| | | | | | | | | | | This includes a _compat_upgrade.binpkg_compression script that the ebuild can call in pkg_preinst in order to maintain a backward-compatible bzip2 default when appropriate, ensuring that binary package consumers are not caught off guard. Bug: https://bugs.gentoo.org/715108 Reviewed-by: Brian Dolbec <dolsen@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>