From: "Fabian Groffen" <grobian@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:prefix commit in: /
Date: Sun, 23 Dec 2018 11:14:02 +0000 (UTC) [thread overview]
Message-ID: <1545563578.6d68e3cef901f3322a80525b472fb04d1304de5a.grobian@gentoo> (raw)
commit: 6d68e3cef901f3322a80525b472fb04d1304de5a
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 23 11:12:58 2018 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Dec 23 11:12:58 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=6d68e3ce
Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
This also removes DEFAULT_PATH as part of merging daeb75b.
Bug: https://bugs.gentoo.org/585986
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
.travis.yml | 1 -
NEWS | 8 +++-
bin/ebuild-helpers/portageq | 2 +-
bin/save-ebuild-env.sh | 5 ++-
cnf/make.conf.example | 12 +++---
cnf/make.globals | 15 +++----
configure.ac | 5 ---
lib/_emerge/post_emerge.py | 2 +-
lib/portage/dbapi/vartree.py | 2 +-
lib/portage/elog/mod_echo.py | 2 +-
lib/portage/elog/mod_save.py | 4 +-
lib/portage/elog/mod_save_summary.py | 4 +-
lib/portage/emaint/modules/logs/__init__.py | 2 +-
lib/portage/emaint/modules/logs/logs.py | 22 +++++------
.../package/ebuild/_config/special_env_vars.py | 7 ++--
lib/portage/package/ebuild/config.py | 11 ++++++
lib/portage/package/ebuild/doebuild.py | 28 ++++++++-----
lib/portage/package/ebuild/prepare_build_dirs.py | 26 ++++++------
lib/portage/tests/emerge/test_simple.py | 2 +-
lib/portage/tests/resolver/ResolverPlayground.py | 34 ++++++++++++++++
lib/portage/util/ExtractKernelVersion.py | 17 ++++++--
man/ebuild.5 | 2 +-
man/emaint.1 | 6 +--
man/emerge.1 | 8 ++--
man/make.conf.5 | 46 ++++++++++++----------
man/portage.5 | 2 +-
subst-install.in | 1 -
travis.sh | 1 -
28 files changed, 173 insertions(+), 104 deletions(-)
diff --cc .travis.yml
index 16eaafc43,ab0b8d304..4f94e36a3
--- a/.travis.yml
+++ b/.travis.yml
@@@ -19,21 -19,6 +19,20 @@@ install
script:
- printf "[build_ext]\nportage-ext-modules=true" >> setup.cfg
+ - find . -type f -exec
+ sed -e "s|@PORTAGE_EPREFIX@||"
+ -e "s|@PORTAGE_BASE@|${PWD}|"
+ -e "s|@PORTAGE_MV@|$(type -P mv)|"
+ -e "s|@PORTAGE_BASH@|$(type -P bash)|"
+ -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|"
- -e "s|@DEFAULT_PATH@|/usr/bin:/bin|"
+ -e "s|@EXTRA_PATH@|/usr/sbin:/sbin|"
+ -e "s|@portagegroup@|$(id -gn)|"
+ -e "s|@portageuser@|$(id -un)|"
+ -e "s|@rootuser@|$(id -un)|"
+ -e "s|@rootuid@|$(id -u)|"
+ -e "s|@rootgid@|$(id -g)|"
+ -e "s|@sysconfdir@|/etc|"
+ -i '{}' +
- ./setup.py test
- ./setup.py install --root=/tmp/install-root
- if [[ ${TRAVIS_PYTHON_VERSION} == ?.? ]]; then
diff --cc bin/save-ebuild-env.sh
index bb17382d4,947ac79d5..1cfd79f23
mode 100755,100644..100755
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@@ -122,9 -118,6 +122,10 @@@ __save_ebuild_env()
# user config variables
unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK
- # Prefix additions
- unset DEFAULT_PATH EXTRA_PATH PORTAGE_GROUP PORTAGE_USER
++ # PREFIX LOCAL: Prefix additions
++ unset EXTRA_PATH PORTAGE_GROUP PORTAGE_USER
++ # END PREFIX LOCAL
+
declare -p
declare -fp
if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
diff --cc cnf/make.conf.example
index ad290c7e6,ffebd24d4..81b9c0328
--- a/cnf/make.conf.example
+++ b/cnf/make.conf.example
@@@ -128,9 -128,9 +128,9 @@@
# up to several hundred megs, or even a few gigs. Note that
# locations under /usr/portage are not necessarily safe for data
# storage. See the PORTDIR documentation for more information.
-#PKGDIR=/usr/portage/packages
+#PKGDIR=@PORTAGE_EPREFIX@/usr/portage/packages
#
- # PORT_LOGDIR is the location where portage will store all the logs it
+ # PORTAGE_LOGDIR is the location where portage will store all the logs it
# creates from each individual merge. They are stored as
# ${CATEGORY}:${PF}:YYYYMMDD-HHMMSS.log in the directory specified.
# If the directory does not exist, it will be created automatically and
diff --cc cnf/make.globals
index 24a42cba6,5a3015ae2..5013957ea
--- a/cnf/make.globals
+++ b/cnf/make.globals
@@@ -103,35 -101,15 +104,35 @@@ PORTAGE_RSYNC_OPTS="--recursive --link
PORTAGE_SYNC_STALE="30"
# Executed before emerge exit if FEATURES=clean-logs is enabled.
- PORT_LOGDIR_CLEAN="find \"\${PORT_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"
+ PORTAGE_LOGDIR_CLEAN="find \"\${PORTAGE_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"
# Minimal CONFIG_PROTECT
+# NOTE: in Prefix, these are NOT prefixed on purpose, because the
+# profiles define them too
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d"
# Disable auto-use
USE_ORDER="env:pkg:conf:defaults:pkginternal:features:repo:env.d"
++# PREFIX LOCAL: additional vars set during install
+# Default portage user/group
+PORTAGE_USER='@portageuser@'
+PORTAGE_GROUP='@portagegroup@'
+PORTAGE_ROOT_USER='@rootuser@'
+
+# Default ownership of installed files.
+PORTAGE_INST_UID="@rootuid@"
+PORTAGE_INST_GID="@rootgid@"
+
- # Default PATH for ebuild env
- DEFAULT_PATH="@DEFAULT_PATH@"
+# Any extra PATHs to add to the ebuild environment's PATH (if any)
+EXTRA_PATH="@EXTRA_PATH@"
+
+# The offset prefix this Portage was configured with (not used by
+# Portage itself)
+CONFIGURE_EPREFIX="@PORTAGE_EPREFIX@"
++# END PREFIX LOCAL
+
# Mode bits for ${WORKDIR} (see ebuild.5).
PORTAGE_WORKDIR_MODE="0700"
diff --cc configure.ac
index 6b8021ec6,000000000..9083824eb
mode 100644,000000..100644
--- a/configure.ac
+++ b/configure.ac
@@@ -1,140 -1,0 +1,135 @@@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT(portage-prefix, @version@, prefix@gentoo.org)
+
+AC_PREREQ([2.61])
+
+case "${prefix}" in
+ '') AC_MSG_ERROR([bad value ${prefix} for --prefix, must not be empty]) ;;
+ */) AC_MSG_ERROR([bad value ${prefix} for --prefix, must not end with '/']) ;;
+ /*|NONE) ;;
+ *) AC_MSG_ERROR([bad value ${prefix} for --prefix, must start with /]) ;;
+esac
+
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
+
+AM_INIT_AUTOMAKE
+
+dnl Checks for programs.
+dnl store cflags prior, otherwise it's not propagated.
+if test "x$CFLAGS" != "x"
+then
+ CFLAGS=$CFLAGS
+fi
+
+AC_PREFIX_DEFAULT([/usr])
+
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_EGREP
+
+GENTOO_PATH_XCU_ID()
+GENTOO_PATH_PYTHON([2.7])
+
+AC_PATH_PROG(PORTAGE_RM, [rm], no)
+AC_PATH_PROG(PORTAGE_MV, [mv], no)
+AC_PATH_PROG(PORTAGE_BASENAME, [basename], no)
+AC_PATH_PROG(PORTAGE_DIRNAME, [dirname], no)
+dnl avoid bash internal variable messing up things here
+GENTOO_PATH_GNUPROG(PORTAGE_BASH, [bash])
+GENTOO_PATH_GNUPROG(PORTAGE_SED, [sed])
+GENTOO_PATH_GNUPROG(PORTAGE_WGET, [wget])
+GENTOO_PATH_GNUPROG(PORTAGE_FIND, [find])
+GENTOO_PATH_GNUPROG(PORTAGE_XARGS, [xargs])
+GENTOO_PATH_GNUPROG(PORTAGE_GREP, [grep])
+
+AC_ARG_WITH(portage-user,
+AC_HELP_STRING([--with-portage-user=myuser],[use user 'myuser' as portage owner (default portage)]),
+[case "${withval}" in
+ ""|yes) AC_MSG_ERROR(bad value ${withval} for --with-portage-user);;
+ *) portageuser="${withval}";;
+esac],
+[portageuser="portage"])
+
+AC_ARG_WITH(portage-group,
+AC_HELP_STRING([--with-portage-group=mygroup],[use group 'mygroup' as portage users group (default portage)]),
+[case "${withval}" in
+ ""|yes) AC_MSG_ERROR(bad value ${withval} for --with-portage-group);;
+ *) portagegroup="${withval}";;
+esac],
+[portagegroup="portage"])
+
+AC_ARG_WITH(root-user,
+AC_HELP_STRING([--with-root-user=myuser],[uses 'myuser' as owner of installed files (default is portage-user)]),
+[case "${withval}" in
+ ""|yes) AC_MSG_ERROR(bad value ${withval} for --with-root-user);;
+ *) rootuser="${withval}";;
+esac],
+[rootuser="${portageuser}"])
+
+AC_MSG_CHECKING([for user id of ${rootuser}])
+dnl grab uid of rootuser
+rootuid=`${XCU_ID} -u "${rootuser}"`
+if test "x`echo ${rootuid} | ${EGREP} '^[[0-9]]+$'`" != "x"
+then
+ AC_MSG_RESULT([${rootuid}])
+else
+ AC_MSG_ERROR([error finding the user id of ${rootuser}])
+fi
+AC_MSG_CHECKING([for group id of ${rootuser}])
+rootgid=`${XCU_ID} -g "${rootuser}"`
+if test "x`echo ${rootgid} | ${EGREP} '^[[0-9]]+$'`" != "x"
+then
+ AC_MSG_RESULT([${rootgid}])
+else
+ AC_MSG_ERROR([error finding the group id of ${rootuser}])
+fi
+
+AC_ARG_WITH(offset-prefix,
+AC_HELP_STRING([--with-offset-prefix],
+ [specify the installation prefix for all packages, defaults to an empty string]),
+ [PORTAGE_EPREFIX=$withval],
+ [PORTAGE_EPREFIX=''])
+
+if test "x$PORTAGE_EPREFIX" != "x"
+then
+ PORTAGE_EPREFIX=`${PREFIX_PORTAGE_PYTHON} -c "import os; print(os.path.normpath('$PORTAGE_EPREFIX'))"`
- DEFAULT_PATH="${PORTAGE_EPREFIX}/usr/sbin:${PORTAGE_EPREFIX}/usr/bin:${PORTAGE_EPREFIX}/sbin:${PORTAGE_EPREFIX}/bin"
- else
- # this is what trunk uses in ebuild.sh
- DEFAULT_PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+fi
+
+AC_ARG_WITH(extra-path,
+AC_HELP_STRING([--with-extra-path], [specify additional PATHs available to the portage build environment (use with care)]),
+[EXTRA_PATH="$withval"],
+[EXTRA_PATH=""])
+
+AC_SUBST(portageuser)
+AC_SUBST(portagegroup)
+AC_SUBST(rootuser)
+AC_SUBST(rootuid)
+AC_SUBST(rootgid)
+AC_SUBST(PORTAGE_EPREFIX)
- AC_SUBST(DEFAULT_PATH)
+AC_SUBST(EXTRA_PATH)
+AC_SUBST(PORTAGE_BASE,['${exec_prefix}/lib/portage'])
+
+AC_SUBST(PORTAGE_RM)
+AC_SUBST(PORTAGE_MV)
+AC_SUBST(PORTAGE_BASENAME)
+AC_SUBST(PORTAGE_DIRNAME)
+AC_SUBST(PORTAGE_BASH)
+AC_SUBST(PORTAGE_SED)
+AC_SUBST(PORTAGE_WGET)
+AC_SUBST(PORTAGE_FIND)
+AC_SUBST(PORTAGE_XARGS)
+AC_SUBST(PORTAGE_GREP)
+
+AC_CONFIG_FILES([subst-install], [chmod +x subst-install])
+AC_CONFIG_FILES([
+ Makefile
+ man/Makefile
+ bin/Makefile
+ lib/Makefile
+ cnf/Makefile
+])
+
+AC_OUTPUT
diff --cc lib/portage/package/ebuild/_config/special_env_vars.py
index e2ea8c393,f4f2bec2c..70a9c83c1
--- a/lib/portage/package/ebuild/_config/special_env_vars.py
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py
@@@ -80,8 -80,6 +80,9 @@@ environ_whitelist +=
"ROOT", "ROOTPATH", "SYSROOT", "T", "TMP", "TMPDIR",
"USE_EXPAND", "USE_ORDER", "WORKDIR",
"XARGS", "__PORTAGE_TEST_HARDLINK_LOCKS",
- "DEFAULT_PATH", "EXTRA_PATH",
- "PORTAGE_GROUP", "PORTAGE_USER",
++ # PREFIX LOCAL
++ "EXTRA_PATH", "PORTAGE_GROUP", "PORTAGE_USER",
++ # END PREFIX LOCAL
]
# user config variables
diff --cc lib/portage/package/ebuild/doebuild.py
index 83b1f66a9,47c69967c..77c9c713a
--- a/lib/portage/package/ebuild/doebuild.py
+++ b/lib/portage/package/ebuild/doebuild.py
@@@ -247,11 -243,16 +244,22 @@@ def _doebuild_path(settings, eapi=None)
for x in portage_bin_path:
path.append(os.path.join(x, "ebuild-helpers"))
path.extend(prerootpath)
- path.extend(defaultpath)
+
+ for prefix in prefixes:
+ prefix = prefix if prefix else "/"
+ for x in ("usr/local/sbin", "usr/local/bin", "usr/sbin", "usr/bin", "sbin", "bin"):
+ # Respect order defined in ROOTPATH
+ x_abs = os.path.join(prefix, x)
+ if x_abs not in rootpath_set:
+ path.append(x_abs)
+
path.extend(rootpath)
++
++ # PREFIX LOCAL: append EXTRA_PATH from make.globals
++ extrapath = [x for x in settings.get("EXTRA_PATH", "").split(":") if x]
+ path.extend(extrapath)
+ # END PREFIX LOCAL
+
settings["PATH"] = ":".join(path)
def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
diff --cc subst-install.in
index 033fa981b,000000000..e9f375d76
mode 100644,000000..100644
--- a/subst-install.in
+++ b/subst-install.in
@@@ -1,75 -1,0 +1,74 @@@
+#!@PORTAGE_BASH@
+
+# for expansion below we need some things to be defined
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+
+# For bug #279550 we have to do some nasty trick to make sure that sed
+# doesn't strip the backslash in the replacement value (because it can
+# be a backreference) and hence escape those. Eventually in strings we
+# need to escape the backslash too, such that the single backslash
+# doesn't get lost when considered an invalid escape
+rootuser='@rootuser@'
+portagegroup='@portagegroup@'
+portageuser='@portageuser@'
+rootuser=${rootuser//\\/\\\\}
+portagegroup=${portagegroup//\\/\\\\\\\\}
+portageuser=${portageuser//\\/\\\\\\\\}
+
+# there are many ways to do this all dynamic, but we only care for raw
+# speed here, so let configure fill in this list and be done with it
+at='@'
+sedexp=(
- -e "s,${at}DEFAULT_PATH${at},@DEFAULT_PATH@,g"
+ -e "s,${at}EXTRA_PATH${at},@EXTRA_PATH@,g"
+ -e "s,${at}PORTAGE_BASE${at},@PORTAGE_BASE@,g"
+ -e "s,${at}PORTAGE_BASH${at},@PORTAGE_BASH@,g"
+ -e "s,${at}PORTAGE_EPREFIX${at},@PORTAGE_EPREFIX@,g"
+ -e "s,${at}PORTAGE_MV${at},@PORTAGE_MV@,g"
+ -e "s,${at}PREFIX_PORTAGE_PYTHON${at},@PREFIX_PORTAGE_PYTHON@,g"
+ -e "s,${at}datadir${at},@datadir@,g"
+ -e "s,${at}portagegroup${at},${portagegroup},g"
+ -e "s,${at}portageuser${at},${portageuser},g"
+ -e "s,${at}rootgid${at},@rootgid@,g"
+ -e "s,${at}rootuid${at},@rootuid@,g"
+ -e "s,${at}rootuser${at},${rootuser},g"
+ -e "s,${at}sysconfdir${at},@sysconfdir@,g"
+)
+
+sources=( )
+target=
+args=( "$@" )
+
+while [[ ${#@} != 0 ]] ; do
+ case "$1" in
+ -t)
+ [[ -n ${target} ]] && sources=( "${sources[@]}" "${target##*/}" )
+ shift
+ target=":${1}"
+ ;;
+ -*)
+ shift
+ ;;
+ *)
+ if [[ -z ${target} ]] ; then
+ target="${1}"
+ elif [[ ${target} != ":"* ]] ; then
+ sources=( "${sources[@]}" "${target##*/}" )
+ target="${1}"
+ else
+ sources=( "${sources[@]}" "${1##*/}" )
+ fi
+ ;;
+ esac
+ shift
+done
+
+target=${target#:}
+INSTALL="@INSTALL@"
+echo @INSTALL_DATA@ "${args[@]}"
+if [[ ! -d ${target} ]] ; then
+ # either install will die, or it was just a single file copy
+ @INSTALL_DATA@ "${args[@]}" && sed -i "${sedexp[@]}" "${target}"
+else
+ @INSTALL_DATA@ "${args[@]}" && sed -i "${sedexp[@]}" "${sources[@]/#/${target}/}"
+fi
diff --cc travis.sh
index 3c03149e6,000000000..bcb95a9cb
mode 100755,000000..100755
--- a/travis.sh
+++ b/travis.sh
@@@ -1,32 -1,0 +1,31 @@@
+#!/usr/bin/env bash
+
+# this script runs the tests as Travis would do (.travis.yml) and can be
+# used to test the Prefix branch of portage on a non-Prefix system
+
+: ${TMPDIR=/var/tmp}
+
+HERE=$(dirname $(realpath ${BASH_SOURCE[0]}))
+REPO=${HERE##*/}.$$
+
+cd ${TMPDIR}
+git clone ${HERE} ${REPO}
+
+cd ${REPO}
+printf "[build_ext]\nportage-ext-modules=true" >> setup.cfg
+find . -type f -exec \
+ sed -e "s|@PORTAGE_EPREFIX@||" \
+ -e "s|@PORTAGE_BASE@|${PWD}|" \
+ -e "s|@PORTAGE_MV@|$(type -P mv)|" \
+ -e "s|@PORTAGE_BASH@|$(type -P bash)|" \
+ -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
- -e "s|@DEFAULT_PATH@|${EPREFIX}/usr/bin:${EPREFIX}/bin|" \
+ -e "s|@EXTRA_PATH@|${EPREFIX}/usr/sbin:${EPREFIX}/sbin|" \
+ -e "s|@portagegroup@|$(id -gn)|" \
+ -e "s|@portageuser@|$(id -un)|" \
+ -e "s|@rootuser@|$(id -un)|" \
+ -e "s|@rootuid@|$(id -u)|" \
+ -e "s|@rootgid@|$(id -g)|" \
+ -e "s|@sysconfdir@|${EPREFIX}/etc|" \
+ -i '{}' +
+unset EPREFIX
+./setup.py test
next reply other threads:[~2018-12-23 11:14 UTC|newest]
Thread overview: 195+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-23 11:14 Fabian Groffen [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-02-25 9:40 [gentoo-commits] proj/portage:prefix commit in: / Fabian Groffen
2024-02-22 7:27 Fabian Groffen
2024-01-18 10:22 Fabian Groffen
2024-01-18 9:36 Fabian Groffen
2023-12-03 10:10 Fabian Groffen
2023-12-03 9:54 Fabian Groffen
2023-12-03 9:54 Fabian Groffen
2023-12-03 9:54 Fabian Groffen
2023-11-24 20:18 Fabian Groffen
2023-11-24 20:06 Fabian Groffen
2023-11-24 20:06 Fabian Groffen
2023-06-22 8:47 Fabian Groffen
2023-06-17 9:04 Fabian Groffen
2023-06-17 8:41 Fabian Groffen
2022-07-28 17:38 Fabian Groffen
2022-07-27 19:20 Fabian Groffen
2022-07-26 19:39 Fabian Groffen
2022-07-25 15:20 Fabian Groffen
2022-07-24 19:27 Fabian Groffen
2022-07-24 14:01 Fabian Groffen
2022-07-24 9:45 Fabian Groffen
2022-01-14 10:40 Fabian Groffen
2022-01-14 10:32 Fabian Groffen
2021-07-06 7:10 Fabian Groffen
2021-04-16 13:37 Fabian Groffen
2021-01-24 9:02 Fabian Groffen
2021-01-04 10:48 Fabian Groffen
2020-12-07 17:28 Fabian Groffen
2020-12-07 16:46 Fabian Groffen
2020-11-23 7:48 Fabian Groffen
2020-11-22 11:15 Fabian Groffen
2020-09-26 11:29 Fabian Groffen
2020-08-02 12:33 Fabian Groffen
2020-06-02 18:55 Fabian Groffen
2020-01-08 19:14 Fabian Groffen
2019-07-01 13:11 Fabian Groffen
2019-05-30 9:20 Fabian Groffen
2019-02-28 12:31 Fabian Groffen
2019-01-11 10:19 Fabian Groffen
2019-01-07 10:22 Fabian Groffen
2018-12-12 18:54 Fabian Groffen
2018-08-04 6:56 Fabian Groffen
2018-06-25 8:34 Fabian Groffen
2018-06-17 14:38 Fabian Groffen
2018-06-17 14:38 Fabian Groffen
2018-05-28 15:24 Fabian Groffen
2018-05-25 19:44 Fabian Groffen
2018-05-25 19:44 Fabian Groffen
2018-05-18 19:46 Fabian Groffen
2017-12-12 8:19 Fabian Groffen
2017-10-29 14:51 Fabian Groffen
2017-10-03 7:32 Fabian Groffen
2017-09-22 10:08 Fabian Groffen
2017-08-21 13:27 Fabian Groffen
2017-08-13 7:21 Fabian Groffen
2017-05-23 13:34 Fabian Groffen
2017-03-25 9:12 Fabian Groffen
2017-03-24 19:09 Fabian Groffen
2017-03-24 7:43 Fabian Groffen
2017-03-23 17:46 Fabian Groffen
2017-03-23 17:32 Fabian Groffen
2017-03-23 17:23 Fabian Groffen
2017-03-23 15:38 Fabian Groffen
2017-03-17 8:25 Fabian Groffen
2017-03-02 8:48 Fabian Groffen
2017-03-02 8:18 Fabian Groffen
2017-02-23 14:05 Fabian Groffen
2017-01-27 15:08 Fabian Groffen
2017-01-27 15:08 Fabian Groffen
2016-03-20 19:31 Fabian Groffen
2016-02-21 16:17 Fabian Groffen
2016-02-21 16:17 Fabian Groffen
2016-02-18 19:35 Fabian Groffen
2016-02-18 19:35 Fabian Groffen
2015-06-20 7:12 Fabian Groffen
2015-06-09 18:30 Fabian Groffen
2015-06-09 18:01 Fabian Groffen
2015-06-04 19:47 Fabian Groffen
2015-04-05 9:15 Fabian Groffen
2014-11-12 17:31 Fabian Groffen
2014-10-02 18:48 Fabian Groffen
2014-09-28 17:52 Fabian Groffen
2014-05-06 19:32 Fabian Groffen
2014-05-06 19:18 Fabian Groffen
2014-04-22 19:52 Fabian Groffen
2014-02-06 21:09 Fabian Groffen
2014-01-06 9:47 Fabian Groffen
2013-09-24 17:29 Fabian Groffen
2013-09-20 17:59 Fabian Groffen
2013-09-18 18:34 Fabian Groffen
2013-09-13 18:02 Fabian Groffen
2013-08-10 20:54 Fabian Groffen
2013-07-10 5:31 Fabian Groffen
2013-07-08 19:32 Fabian Groffen
2013-06-29 5:41 Fabian Groffen
2013-06-27 17:20 Fabian Groffen
2013-06-12 9:02 Fabian Groffen
2013-06-09 15:53 Fabian Groffen
2013-05-04 18:55 Fabian Groffen
2013-04-02 16:57 Fabian Groffen
2013-03-31 19:03 Fabian Groffen
2013-03-31 19:00 Fabian Groffen
2013-03-24 8:36 Fabian Groffen
2013-03-23 19:54 Fabian Groffen
2013-02-28 19:29 Fabian Groffen
2013-02-07 20:01 Fabian Groffen
2013-01-27 21:41 Fabian Groffen
2013-01-27 21:41 Fabian Groffen
2013-01-13 10:26 Fabian Groffen
2013-01-10 21:02 Fabian Groffen
2013-01-05 18:14 Fabian Groffen
2012-12-26 14:48 Fabian Groffen
2012-12-02 15:47 Fabian Groffen
2012-12-02 15:36 Fabian Groffen
2012-12-02 15:33 Fabian Groffen
2012-12-02 15:33 Fabian Groffen
2012-12-02 15:33 Fabian Groffen
2012-12-02 13:12 Fabian Groffen
2012-12-02 12:59 Fabian Groffen
2012-11-04 10:48 Fabian Groffen
2012-10-22 17:25 Fabian Groffen
2012-10-02 12:02 Fabian Groffen
2012-09-30 11:22 Fabian Groffen
2012-09-26 18:26 Fabian Groffen
2012-09-12 18:18 Fabian Groffen
2012-09-09 7:40 Fabian Groffen
2012-09-06 18:14 Fabian Groffen
2012-08-27 6:44 Fabian Groffen
2012-08-12 7:50 Fabian Groffen
2012-07-19 16:25 Fabian Groffen
2012-07-06 7:05 Fabian Groffen
2012-04-23 19:23 Fabian Groffen
2012-04-03 18:04 Fabian Groffen
2012-03-31 19:31 Fabian Groffen
2012-03-01 20:32 Fabian Groffen
2012-02-19 9:58 Fabian Groffen
2012-02-09 8:01 Fabian Groffen
2012-01-10 17:45 Fabian Groffen
2011-12-31 16:45 Fabian Groffen
2011-12-26 9:12 Fabian Groffen
2011-12-23 9:51 Fabian Groffen
2011-12-22 9:51 Fabian Groffen
2011-12-19 18:30 Fabian Groffen
2011-12-14 15:25 Fabian Groffen
2011-12-10 11:28 Fabian Groffen
2011-12-09 20:33 Fabian Groffen
2011-12-02 20:31 Fabian Groffen
2011-12-02 19:20 Fabian Groffen
2011-12-02 19:19 Fabian Groffen
2011-12-02 19:18 Fabian Groffen
2011-12-02 18:03 Fabian Groffen
2011-10-21 17:34 Fabian Groffen
2011-10-21 17:34 Fabian Groffen
2011-10-20 20:28 Fabian Groffen
2011-10-20 17:08 Fabian Groffen
2011-10-20 16:38 Fabian Groffen
2011-10-17 18:36 Fabian Groffen
2011-10-16 13:59 Fabian Groffen
2011-10-15 18:27 Fabian Groffen
2011-10-13 6:52 Fabian Groffen
2011-09-23 18:38 Fabian Groffen
2011-09-23 18:23 Fabian Groffen
2011-09-20 18:25 Fabian Groffen
2011-09-14 18:43 Fabian Groffen
2011-09-14 18:38 Fabian Groffen
2011-09-13 17:41 Fabian Groffen
2011-08-31 18:39 Fabian Groffen
2011-08-30 18:45 Fabian Groffen
2011-08-29 19:03 Fabian Groffen
2011-08-25 20:25 Fabian Groffen
2011-08-20 17:50 Fabian Groffen
2011-07-26 17:35 Fabian Groffen
2011-07-17 9:48 Fabian Groffen
2011-07-17 8:12 Fabian Groffen
2011-07-01 17:44 Fabian Groffen
2011-06-14 15:39 Fabian Groffen
2011-06-06 17:12 Fabian Groffen
2011-05-28 8:29 Fabian Groffen
2011-05-27 17:41 Fabian Groffen
2011-05-14 13:59 Fabian Groffen
2011-05-02 17:41 Fabian Groffen
2011-04-24 12:08 Fabian Groffen
2011-04-15 18:27 Fabian Groffen
2011-04-15 18:27 Fabian Groffen
2011-03-28 16:52 Fabian Groffen
2011-03-23 19:26 Fabian Groffen
2011-03-17 19:08 Fabian Groffen
2011-03-13 14:45 Fabian Groffen
2011-03-09 19:44 Fabian Groffen
2011-02-26 21:15 Fabian Groffen
2011-02-10 18:46 Fabian Groffen
2011-02-10 18:44 Fabian Groffen
2011-02-10 18:20 Fabian Groffen
2011-02-05 12:25 Fabian Groffen
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=1545563578.6d68e3cef901f3322a80525b472fb04d1304de5a.grobian@gentoo \
--to=grobian@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