From: "Paul Varner" <fuzzyray@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoolkit:master commit in: /
Date: Thu, 15 Oct 2015 16:44:17 +0000 (UTC) [thread overview]
Message-ID: <1293582614.879cf3ce1f3041854c9dc886b59ac7e136ae9b9b.fuzzyray@gentoo> (raw)
commit: 879cf3ce1f3041854c9dc886b59ac7e136ae9b9b
Author: Paul Varner <fuzzyray <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 29 00:30:14 2010 +0000
Commit: Paul Varner <fuzzyray <AT> gentoo <DOT> org>
CommitDate: Wed Dec 29 00:30:14 2010 +0000
URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=879cf3ce
Merge branch 'gentoolkit' into euse
Conflicts:
bin/euse
AUTHORS | 8 +-
CREDITS | 16 +
ChangeLog | 96 ++
DEVELOPING | 161 ++++
MANIFEST.in | 12 +-
Makefile | 25 -
NEWS | 40 +
README.dev | 39 +
TODO | 37 +-
VERSION | 1 -
bin/analyse | 48 +
bin/eclean | 849 +---------------
bin/epkginfo | 284 +-----
bin/equery | 28 +-
bin/eshowkw | 9 +
bin/euse | 137 ++-
bin/glsa-check | 126 +--
bin/revdep-rebuild | 192 ++--
man/analyse.1 | 210 ++++
man/eclean.1 | 31 +-
man/epkginfo.1 | 60 +-
man/equery.1 | 862 ++++++++++++-----
man/eshowkw.1 | 47 +
man/glsa-check.1 | 14 +-
man/revdep-rebuild.1 | 9 +-
pylintrc | 321 ++++++
pym/gentoolkit/__init__.py | 45 +-
pym/gentoolkit/analyse/__init__.py | 128 +++
pym/gentoolkit/analyse/analyse.py | 378 ++++++++
pym/gentoolkit/analyse/base.py | 134 +++
pym/gentoolkit/analyse/lib.py | 352 +++++++
pym/gentoolkit/analyse/output.py | 213 ++++
pym/gentoolkit/analyse/rebuild.py | 235 +++++
pym/gentoolkit/atom.py | 347 +++++++
pym/gentoolkit/base.py | 149 +++
pym/gentoolkit/cpv.py | 256 +++++
pym/gentoolkit/dbapi.py | 17 +
pym/gentoolkit/dependencies.py | 330 +++++++
pym/gentoolkit/{ => deprecated}/helpers.py | 61 +-
pym/gentoolkit/eclean/__init__.py | 4 +
pym/gentoolkit/eclean/clean.py | 149 +++
pym/gentoolkit/eclean/cli.py | 504 ++++++++++
pym/gentoolkit/eclean/exclude.py | 262 +++++
pym/gentoolkit/eclean/output.py | 187 ++++
pym/gentoolkit/eclean/pkgindex.py | 91 ++
pym/gentoolkit/eclean/search.py | 569 +++++++++++
pym/gentoolkit/eprefix.py | 34 +
pym/gentoolkit/equery/__init__.py | 198 ++--
pym/gentoolkit/equery/belongs.py | 168 ++--
pym/gentoolkit/equery/changes.py | 310 ++----
pym/gentoolkit/equery/check.py | 370 ++++---
pym/gentoolkit/equery/depends.py | 283 +++---
pym/gentoolkit/equery/depgraph.py | 265 +++--
pym/gentoolkit/equery/files.py | 180 ++--
pym/gentoolkit/equery/has.py | 213 ++++
pym/gentoolkit/equery/hasuse.py | 152 +--
pym/gentoolkit/equery/keywords.py | 8 +
pym/gentoolkit/equery/list_.py | 203 ++--
pym/gentoolkit/equery/meta.py | 609 ++++++------
pym/gentoolkit/equery/size.py | 137 ++-
pym/gentoolkit/equery/uses.py | 240 ++---
pym/gentoolkit/equery/which.py | 51 +-
pym/gentoolkit/errors.py | 164 ++--
pym/gentoolkit/eshowkw/__init__.py | 130 +++
pym/gentoolkit/eshowkw/display_pretty.py | 103 ++
pym/gentoolkit/eshowkw/keywords_content.py | 325 +++++++
pym/gentoolkit/eshowkw/keywords_header.py | 100 ++
pym/gentoolkit/flag.py | 165 ++++
pym/gentoolkit/formatters.py | 99 ++
pym/gentoolkit/glsa/__init__.py | 149 +--
pym/gentoolkit/helpers.py | 616 +++++++++---
pym/gentoolkit/helpers2.py | 437 ---------
pym/gentoolkit/keyword.py | 144 +++
pym/gentoolkit/metadata.py | 307 ++++++
pym/gentoolkit/package.py | 860 +++++++++--------
pym/gentoolkit/pprinter.py | 265 +++--
pym/gentoolkit/query.py | 382 ++++++++
pym/gentoolkit/sets.py | 57 ++
pym/gentoolkit/test/__init__.py | 25 +
pym/gentoolkit/test/eclean/Packages | 1017 ++++++++++++++++++++
pym/gentoolkit/test/eclean/__init__.py | 6 +
pym/gentoolkit/test/eclean/creator.py | 242 +++++
pym/gentoolkit/test/eclean/distfiles.exclude | 11 +
pym/gentoolkit/test/eclean/distsupport.py | 482 ++++++++++
pym/gentoolkit/test/eclean/test_clean.py | 152 +++
pym/gentoolkit/test/eclean/test_search.py | 632 ++++++++++++
pym/gentoolkit/test/equery/__init__.py | 6 +
pym/gentoolkit/{tests => test}/equery/test_init.py | 10 +-
pym/gentoolkit/test/test_atom.py | 153 +++
pym/gentoolkit/test/test_cpv.py | 142 +++
pym/gentoolkit/test/test_helpers.py | 122 +++
pym/gentoolkit/test/test_keyword.py | 57 ++
pym/gentoolkit/test/test_query.py | 109 +++
pym/gentoolkit/test/test_syntax.py | 34 +
pym/gentoolkit/tests/test_helpers2.py | 39 -
pym/gentoolkit/tests/test_template.py | 38 -
pym/gentoolkit/textwrap_.py | 108 ++-
pym/gentoolkit/versionmatch.py | 153 +--
setup.py | 156 ++-
99 files changed, 14772 insertions(+), 4719 deletions(-)
diff --cc bin/euse
index fc9d60f,297d4f6..c54135f
--- a/bin/euse
+++ b/bin/euse
@@@ -7,13 -7,44 +7,53 @@@
# Licensed under the GPL v2
PROGRAM_NAME=euse
- PROGRAM_VERSION=$(cat /usr/share/gentoolkit/VERSION)
+ VERSION="svn"
- MAKE_CONF_PATH=/etc/make.conf
- MAKE_GLOBALS_PATH=/etc/make.globals
- MAKE_PROFILE_PATH=/etc/make.profile
- MAKE_CONF_BACKUP_PATH=/etc/make.conf.euse_backup
- PACKAGE_USE_PATH=/etc/portage/package.use
+ EPREFIX=${EPREFIX:-$(portageq envvar EPREFIX)}
+ ETC="${EPREFIX}/etc"
+ USR_SHARE_PORTAGE="${EPREFIX}/usr/share/portage"
+
-# define error function so it can be used immediately
-error() {
- echo "ERROR: ${1}"
++# define error functions so they can be used immediately
++fatal() {
++ echo -e "ERROR: ${*}"
+ set +f
+ exit 1
+ }
+
++error() {
++ echo -e "ERROR: ${*}"
++}
++
++warn() {
++ echo -e "WARNING: ${*}"
++}
++
+ # /etc/make.conf can now exist in /etc/portage/make.conf, prefer it over /etc/make.conf for changes
+ if [ -e "${ETC}/portage/make.conf" ]; then
+ MAKE_CONF_PATH="${ETC}/portage/make.conf"
+ elif [ -e "${ETC}/make.conf" ]; then
+ MAKE_CONF_PATH="${ETC}/make.conf"
+ else
- error "make.conf does not exist"
++ fatal "make.conf does not exist"
+ fi
+ MAKE_CONF_BACKUP_PATH="${MAKE_CONF_PATH}.euse_backup"
+
+ # /etc/make.globals has been moved to /usr/share/portage/config/make.globals
+ if [ -e "${USR_SHARE_PORTAGE}/config/make.globals" ]; then
+ MAKE_GLOBALS_PATH="${USR_SHARE_PORTAGE}/config/make.globals"
+ else
+ MAKE_GLOBALS_PATH="${ETC}/make.globals"
+ fi
+
+ # /etc/make.profile or /etc/portage/make.profile, if /etc/make.profile exists, it will be used
+ if [ -e "${ETC}/make.profile" ]; then
+ MAKE_PROFILE_PATH="${ETC}/make.profile"
+ elif [ -e "${ETC}/portage/make.profile" ]; then
+ MAKE_PROFILE_PATH="${ETC}/portage/make.profile"
+ else
- error "make.profile does not exist"
++ fatal "make.profile does not exist"
+ fi
++PACKAGE_USE_PATH=${ETC}/portage/package.use
[ -z "${MODE}" ] && MODE="showhelp" # available operation modes: showhelp, showversion, showdesc, showflags, modify
@@@ -79,22 -93,27 +105,28 @@@ check_sanity()
# file permission tests
local descdir
local make_defaults
-
+ local make_conf
+
+ [[ ! -d "${MAKE_PROFILE_PATH}" || ! -r "${MAKE_PROFILE_PATH}" ]] && error "${MAKE_PROFILE_PATH} is not readable"
+ #
+ for make_conf in $(get_all_make_conf); do
- [ ! -r "${make_conf}" ] && error "${make_conf} is not readable"
++ [ ! -r "${make_conf}" ] && fatal "${make_conf} is not readable"
+ done
+
descdir="$(get_portdir)/profiles"
+
- [ ! -r "${MAKE_CONF_PATH}" ] && fatal "${MAKE_CONF_PATH} is not readable"
+ [ ! -r "${MAKE_GLOBALS_PATH}" ] && fatal "${MAKE_GLOBALS_PATH} is not readable"
- [ ! -h "${MAKE_PROFILE_PATH}" ] && fatal "${MAKE_PROFILE_PATH} is not a symlink"
+ [ -z "$(get_portdir)" ] && fatal "\$PORTDIR couldn't be determined"
+ [ ! -d "${descdir}" ] && fatal "${descdir} does not exist or is not a directory"
+ [ ! -r "${descdir}/use.desc" ] && fatal "${descdir}/use.desc is not readable"
+ [ ! -r "${descdir}/use.local.desc" ] && fatal "${descdir}/use.local.desc is not readable"
+
- [ ! -r "${MAKE_GLOBALS_PATH}" ] && error "${MAKE_GLOBALS_PATH} is not readable"
- [ -z "$(get_portdir)" ] && error "\$PORTDIR couldn't be determined"
- [ ! -d "${descdir}" ] && error "${descdir} does not exist or is not a directory"
- [ ! -r "${descdir}/use.desc" ] && error "${descdir}/use.desc is not readable"
- [ ! -r "${descdir}/use.local.desc" ] && error "${descdir}/use.local.desc is not readable"
for make_defaults in $(get_all_make_defaults); do
- [ ! -r "$make_defaults" ] && error "$_make_defaults is not readable"
+ [ ! -r "$make_defaults" ] && fatal "$_make_defaults is not readable"
done
-# [ ! -r "$(get_make_defaults)" ] && error "$(get_make_defaults) is not readable"
- [ "${MODE}" == "modify" -a ! -w "${MAKE_CONF_PATH}" ] && error ""${MAKE_CONF_PATH}" is not writable"
-}
+ [ "${MODE}" == "modify" -a ! -w "${MAKE_CONF_PATH}" ] && fatal ""${MAKE_CONF_PATH}" is not writable"
+ [ "${MODE}" == "modify" -a -s "${PACKAGE_USE_PATH}" -a ! -w "${PACKAGE_USE_PATH}" ] && fatal ""${PACKAGE_USE_PATH}" is not writable"
+} # }}}
showhelp() {
cat << HELP
@@@ -235,11 -187,13 +267,13 @@@ get_useflags()
# backup portdir so get_portdir() doesn't give false results later
portdir_backup="${PORTDIR}"
-
+
ACTIVE_FLAGS[0]="$(reduce_incrementals ${USE})"
USE=""
- source "${MAKE_CONF_PATH}"
- ACTIVE_FLAGS[1]="$(reduce_incrementals ${USE})"
+ for x in $(get_all_make_conf); do
+ source "${x}"
+ ACTIVE_FLAGS[1]="$(reduce_incrementals ${ACTIVE_FLAGS[1]} ${USE})"
+ done
USE=""
for x in $(get_all_make_defaults); do
source "${x}"
@@@ -254,139 -207,36 +288,146 @@@
USE="${ACTIVE_FLAGS[0]}"
PORTDIR="${portdir_backup}"
+ #
+ # Traverse through use.mask and use.force (0.5s)
+ # Flip signs of use.mask (it's interpreted oppositely),
+ ACTIVE_FLAGS[6]=$(reduce_incrementals_trump \
+ $(cat $(traverse_profile "use.mask") | sed -re "/^#.*$/{d}") \
+ | sed -re "s/(^| )-[^ ]*//g" -e "s/(^| )([a-z0-9])/ -\2/g")
+ ACTIVE_FLAGS[7]=$(reduce_incrementals \
+ $(cat $(traverse_profile "use.force") \
+ | sed -re "/^#.*$/ {d}"))
+
+ USE_FLAGS_CALCULATED=1
+} # }}}
+
+# Function: get_portageuseflags # {{{
+# Fetch USE flags reported active by Portage
+get_portageuseflags() {
+ # only calculate once as calling emerge is painfully slow
+ [ -n "${_PORTAGE_USE_FLAGS_CALCULATED}" ] && return
# get the currently active USE flags as seen by portage, this has to be after
# restoring USE or portage won't see the original environment
+ # Bug 181309, emerge may complain if EMERGE_DEFAULT_OPTS="--ask" is set
- ACTIVE_FLAGS[9]="$(emerge --ignore-default-opts --info | grep 'USE=' | cut -b 5- | sed -e 's:"::g')" #'
+ ACTIVE_FLAGS[9]="$(portageq envvar USE)" #'
- USE_FLAGS_CALCULATED=1
-}
-
-# get the list of all known USE flags by reading use.desc and/or use.local.desc
-# (depending on the value of $SCOPE)
+ _PORTAGE_USE_FLAGS_CALCULATED=1
+} # }}}
+
+# Function: get_useflaglist {{{
+# Get the list of all known USE flags by reading use.desc and/or
+# use.local.desc (depending on the value of $SCOPE). Also searches any
+# registered overlays after searching the main portage tree first.
+# Use flags visible in both the main tree and overlays are trumped by
+# the main tree. Overlays are indicated by brackets [xxx] at the
+# beginning of the description.
+#
+# Returns:
+# (written to stdout) Sorted, unique list of system-wide USE flags and
+# descriptions. Flags defined in overlays have the overlay in brackets
+# prepended to the descriptions.
+#
+# Environment:
+# SCOPE - [local|global] constrain search to local (use.local.desc) or
+# global (use.desc)
get_useflaglist() {
local descdir
-
- descdir="$(get_portdir)/profiles"
-
- if [ -z "${SCOPE}" -o "${SCOPE}" == "global" ]; then
- egrep "^[^# ]+ +-" "${descdir}/use.desc" | cut -d\ -f 1
- fi
- if [ -z "${SCOPE}" -o "${SCOPE}" == "local" ]; then
- egrep "^[^# :]+:[^ ]+ +-" "${descdir}/use.local.desc" | cut -d: -f 2 | cut -d\ -f 1
+ local overlay
+ for profiledir in ${ALL_PORTDIRS[@]}; do
+ descdir="${profiledir}/profiles"
+ if [[ -z ${SCOPE} || ${SCOPE} == "global" ]]; then
+ [[ ! -s "${descdir}/use.desc" ]] && continue
+ egrep "^[^# ]+ +-" "${descdir}/use.desc"
+ fi
+ if [[ -z ${SCOPE} || ${SCOPE} == "local" ]]; then
+ [[ ! -s "${descdir}/use.local.desc" ]] && continue
+ egrep "^[^# :]+:[^ ]+ +-" "${descdir}/use.local.desc" \
+ | cut -d: -f 2
+ fi
+ done | cut -d " " -f1 | sort --field=":" --key=1,1 --unique
+} # }}}
+
+# Function: get_useflaglist_ebuild {{{
+# Builds USE flag information for specified package atom into
+# ACTIVE_FLAGS[5]. For the atom, the versions available are found, and
+# for each, the corresponding SLOT, IUSE are stored along with which
+# overlay the ebuild lives in. Considering that the pieces of information
+# may be required in any order or any subsets, it is intended for the
+# function to cache the information and it be retrieved from
+# ACTIVE_FLAGS[5]. So the format of ACTIVE_FLAGS[5] is newline-separated
+# list of:
+#
+# category/packge;version;SLOT;IUSE;overlay
+#
+# Arguments:
+# $1 - Package atom to lookup (app-editor/vim)
+#
+# Returns:
+# Nothing significant
+#
+# Environment:
+# PORTDIR - Root of portage tree
+# ACTIVE_FLAGS - Array of current use flag info
+#
+get_useflaglist_ebuild() {
+ local known=$(echo "${ACTIVE_FLAGS[5]}" | egrep "^${1}")
+ if [[ -n $known ]]; then
+ # No need to recache
+ return
fi
-}
+ local pkg=$(echo ${1} | cut -d/ -f2)
+ declare append
+ for portdir in ${ALL_PORTDIRS[@]}; do
+ # Open the ebuild file and retrieve defined USE flags
+ [[ ! -d "$portdir/${1}" ]] && continue
+ append=$(echo -n $portdir/${1}/*.ebuild "" \
+ | perl -pne "s:$portdir/${1}/${pkg}-(([^.]|\.(?!e))+)\.ebuild:\1:g" \
+ | while read -d " " version; do
+ IFS=$'\n'
+ if [[ $portdir == $PORTDIR ]]; then
+ overlay=""
+ else
+ if [[ -s $(dirname ${portdir}/repo_name) ]]; then
+ overlay="$(cat "${portdir}/profiles/repo_name")"
+ else
+ # XXX: May be better to use full path
+ overlay="$(basename "${portdir}")"
+ fi
+ fi
+ if [[ ! -d "$portdir/metadata/cache" ]]; then
+ echo "!!! Metadata cache not found. You need to run " >&2
+ echo "!!! 'egencache --repo=$overlay --update'" >&2
+ echo "!!! to generate metadata for your overlays" >&2
+ return 1
+ elif [[ ! -e "$portdir/metadata/cache/${1}-$version" ]]; then
+ # Repo does not have this particular package
+ continue
+ fi
+ iuse=$(head -11 "$portdir/metadata/cache/${1}-$version"|tail -1)
+ slot=$(head -3 "$portdir/metadata/cache/${1}-$version"|tail -1)
+ echo "${1};${version};${slot};${iuse};${overlay}"
+ done
+ )
+ if [[ -z ${ACTIVE_FLAGS[5]} ]]; then ACTIVE_FLAGS[5]="$append"
+ else ACTIVE_FLAGS[5]="${ACTIVE_FLAGS[5]}"$'\n'"$append"
+ fi
+ done
+} # }}}
+ # get all make.conf files that exist on the system
+ get_all_make_conf() {
+ # At least one of the files exists or we would not have made it this far
+ for x in ${ETC}/make.conf ${ETC}/portage/make.conf; do
+ [ -e "${x}" ] && echo "${x}"
+ done
+ }
-# get all make.defaults by traversing the cascaded profile directories
-get_all_make_defaults() {
+# Function: traverse_profile {{{
+# General method of collecting the contents of a profile
+# component by traversing through the cascading profile
+#
+# Arguments:
+# $1 - Filename (make.profile)
+# [$2] - Current directory (unspecified means to start at the top)
+traverse_profile() {
local curdir
local parent
local rvalue
@@@ -684,10 -326,9 +727,10 @@@ showdesc()
local current_desc
local found_one
local args
-
+
+ set -f
args="${*:-*}"
-
+
if [ -z "${SCOPE}" ]; then
SCOPE="global" showdesc ${args}
echo
@@@ -700,49 -341,37 +743,49 @@@
[ "${SCOPE}" == "global" ] && echo "global use flags (searching: ${args})"
[ "${SCOPE}" == "local" ] && echo "local use flags (searching: ${args})"
echo "************************************************************"
-
+ set +f
if [ "${args}" == "*" ]; then
- args="$(get_useflaglist | sort -u)"
+ args="${useflags[*]}"
fi
-
+
set ${args}
foundone=0
- while [ -n "${1}" ]; do
- if [ "${SCOPE}" == "global" ]; then
- if grep "^${1} *-" "${descdir}/use.desc" > /dev/null; then
+ while [[ -n "${1}" ]]; do
+ if [[ "${SCOPE}" == "global" ]]; then
+ if array_contains "${useflags[*]}" "$1"; then
get_flagstatus "${1}"
+ # XXX: Handle overlay
+ grep "^${1} *-" ${ALL_PORTDIRS[@]/%//profiles/use.desc} 2> /dev/null \
+ | sed -re "s/^([^:]+)://"
foundone=1
fi
- grep "^${1} *-" "${descdir}/use.desc"
fi
- # local flags are a bit more complicated as there can be multiple
+ # local flags are a bit more complicated as there can be multiple
# entries per flag and we can't pipe into printf
- if [ "${SCOPE}" == "local" ]; then
- if grep ":${1} *-" "${descdir}/use.local.desc" > /dev/null; then
+ if [[ "${SCOPE}" == "local" ]]; then
+ if array_contains "${useflags[*]}" "$1"; then
foundone=1
fi
- grep ":${1} *-" "${descdir}/use.local.desc" \
- | sed -e "s/^\([^:]\+\):\(${1}\) *- *\(.\+\)/\1|\2|\3/g" \
- | while read line; do
- pkg="$(echo $line | cut -d\| -f 1)"
- flag="$(echo $line | cut -d\| -f 2)"
- desc="$(echo $line | cut -d\| -f 3)"
- get_flagstatus "${flag}"
- printf "%s (%s):\n%s\n\n" "${flag}" "${pkg}" "${desc}"
- done
+ # Fetch all the packages data using this flag
+ infos=$( grep ":${1} *-" ${ALL_PORTDIRS[@]/%//profiles/use.local.desc} 2> /dev/null \
+ | sed -re "s/^([^:]+):([^:]+):(${1}) *- *(.+)/\1|\2|\3|\4/g")
+ OIFS=$IFS; IFS=$'\n'; infos=($infos); IFS=$OIFS;
+ for line in "${infos[@]}"; do
+ OIFS=$IFS; IFS="|"; line=($line); IFS=$OIFS
+ pkg=${line[1]}
+ flag=${line[2]}
+ desc=${line[3]}
+ if get_flagstatus "${flag}"; then
+ ACTIVE="+"
+ else
+ ACTIVE="-"
+ fi
+ printf "%s\n" "${flag}"
+ printf "%s: %s\n" "${pkg}" "${desc}" \
+ | fold --width=$((${COLUMNS:-80}-10)) -s | sed -e "s/^/ /g"
+ get_flagstatus_pkg "${flag}" "${pkg}" "${ACTIVE}"
+ done
fi
shift
done
@@@ -853,10 -466,9 +896,10 @@@ showflags()
if [ "${args}" == "*" ]; then
args="$(get_useflaglist | sort -u)"
fi
-
+
set ${args}
-
+ get_portageuseflags
+
while [ -n "${1}" ]; do
if echo " ${ACTIVE_FLAGS[9]} " | grep " ${1} " > /dev/null; then
printf "%-20s" ${1}
@@@ -1226,9 -578,9 +1269,9 @@@ modify()
echo -ne "${NEW_MAKE_CONF_USE_2%% }"
echo '"'
fi ) < "${MAKE_CONF_BACKUP_PATH}" | sed -e 's:\\ $:\\:' > "${MAKE_CONF_PATH}"
-
+
echo "${MAKE_CONF_PATH} was modified, a backup copy has been placed at ${MAKE_CONF_BACKUP_PATH}"
-}
+} # }}}
##### main program comes now #####
next reply other threads:[~2015-10-15 16:44 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-15 16:44 Paul Varner [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-09-10 2:28 [gentoo-commits] proj/gentoolkit:master commit in: / Matt Turner
2024-05-08 21:43 Sam James
2024-04-25 20:37 Sam James
2024-03-12 21:43 Sam James
2024-03-12 21:43 Sam James
2024-03-12 21:43 Sam James
2024-02-16 20:39 Sam James
2024-01-19 6:37 Sam James
2024-01-19 4:54 Sam James
2024-01-18 20:57 Matt Turner
2024-01-18 20:57 Matt Turner
2023-12-03 7:51 Sam James
2023-03-24 2:50 Sam James
2023-03-20 4:41 Sam James
2022-07-10 20:49 Brian Dolbec
2022-07-10 18:59 Brian Dolbec
2022-07-10 18:41 Brian Dolbec
2022-07-10 17:20 Brian Dolbec
2022-03-16 18:19 Matt Turner
2022-03-16 18:19 Matt Turner
2022-02-09 10:48 Sam James
2021-09-21 21:01 Matt Turner
2021-09-20 23:02 Matt Turner
2021-09-20 22:57 Matt Turner
2021-09-20 22:57 Matt Turner
2021-09-20 22:57 Matt Turner
2021-03-02 3:31 Matt Turner
2020-04-24 8:34 Michał Górny
2020-04-24 8:06 Michał Górny
2020-03-12 16:51 Matt Turner
2020-02-19 5:44 Michał Górny
2020-01-26 15:20 Michał Górny
2019-08-19 3:51 Zac Medico
2019-05-11 23:09 Virgil Dupras
2019-04-01 1:51 Virgil Dupras
2018-08-14 16:01 Virgil Dupras
2017-03-23 1:40 Mike Frysinger
2017-03-22 20:54 Brian Dolbec
2017-03-22 20:13 Brian Dolbec
2017-03-22 12:51 Brian Dolbec
2016-08-01 4:10 Brian Dolbec
2016-08-01 4:10 Brian Dolbec
2016-03-13 15:11 Mike Gilbert
2015-12-20 20:33 Mike Gilbert
2015-11-24 18:14 Paul Varner
2015-11-24 18:12 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2015-10-15 16:44 Paul Varner
2014-11-03 22:59 Mike Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1293582614.879cf3ce1f3041854c9dc886b59ac7e136ae9b9b.fuzzyray@gentoo \
--to=fuzzyray@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox