From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Cc: Sylvain Rabot <sylvain@abstraction.fr>,
"Robin H. Johnson" <robbat2@gentoo.org>,
"Fernando J. Pereda" <ferdy@ferdyx.org>,
Lea Wiemann <lewiemann@gmail.com>,
Panagiotis Issaris <takis@issaris.org>,
Mike Hommey <mh@glandium.org>, Marco Nelissen <marcone@xs4all.nl>
Subject: [PATCH 3/3] Permit tests to be run as a (fake) root user
Date: Wed, 21 Apr 2010 09:20:59 -0500 [thread overview]
Message-ID: <20100421142058.GC5595@progeny.tock> (raw)
In-Reply-To: <20100421131255.GA2750@progeny.tock>
Skip tests that require sane behavior wrt permissions if the current
uid is 0.
So now if you run
fakeroot sh -c '
make all test install install-doc prefix=/usr/local \
DESTDIR=wherever >packaged-git.log 2>&1 &&
cd wherever &&
tar -cf - . |
gzip
' >packaged-git.tar.gz
then this should successfully build a binary tarball for git, running
some tests while at it.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Goals
-----
Before the POSIXPERM mechanism existed (which makes this change too
easy to avoid considering), I think many people wanted to discourage
running tests as root to avoid hosing people’s machines. Which makes
some sense.
But it is possible and may even be valuable to run tests in a
sandbox. [1] [8] If that were the only reason to run tests as root, I
would suggest requiring some particular environment variable to be
set as a safety.
In Debian, I think it might be policy to allow building as “root”. In
this context, that almost always happens through some sort of ptrace or
LD_PRELOAD hack like fakeroot. If a user knows to, it is easy to fall
back to building as an unprivileged user, but really I think a user
should not have to know to. [2] [3] If some non-POSIXPERM test fails
when run as (fake) root, that is something that would be nice to
know. [4]
Which prerequisite?
-------------------
It is possible to use autoconf-style tests to check for each
capability we would like to lack. [5] Certainly, POSIXPERM does not
actually describe the exact set of abilities one gains by running as
an unprivileged user. [6] But unsetting POSIXPERM does successfully
convey a simple truth: if you run tests as root, you have lost the ability
to pay attention to permissions and keep your sanity. [7]
[1] http://thread.gmane.org/gmane.comp.version-control.git/86885/focus=87664
[2] http://thread.gmane.org/gmane.comp.version-control.git/140128
[3] http://thread.gmane.org/gmane.comp.version-control.git/17904/focus=17910
[4] http://thread.gmane.org/gmane.comp.version-control.git/75561/focus=75568
[5] http://thread.gmane.org/gmane.comp.version-control.git/18667
[6] http://thread.gmane.org/gmane.comp.version-control.git/121502/focus=121531
[7] http://thread.gmane.org/gmane.comp.version-control.git/116729/focus=118385
[8] http://thread.gmane.org/gmane.comp.version-control.git/52654/focus=52689
Holy cow, that Solaris bug is still not fixed [9]. Maybe it
would be worthwhile to make an unlink() wrapper in compat/ to
avoid new uses leaving users on such operating systems in danger.
[9] http://bugs.opensolaris.org/view_bug.do?bug_id=6581318
Thanks for reading. I hope the story was not too dull.
t/test-lib.sh | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index a53b6cf..0f51757 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -782,7 +782,10 @@ case $(uname -s) in
# exec does not inherit the PID
;;
*)
- test_set_prereq POSIXPERM
+ if test $(id -u) != 0
+ then
+ test_set_prereq POSIXPERM
+ fi
test_set_prereq BSLASHPSPEC
test_set_prereq EXECKEEPSPID
;;
--
1.7.1.rc1
prev parent reply other threads:[~2010-04-21 14:21 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-21 13:12 [PATCH 0/3] running tests as fakeroot Jonathan Nieder
2010-04-21 13:38 ` [PATCH 1/3] test-lib: tests can have multiple prerequisites Jonathan Nieder
2010-04-21 14:57 ` Jonathan Nieder
2010-04-26 19:17 ` Jeff King
2010-04-27 0:06 ` Junio C Hamano
2010-04-27 1:25 ` Jeff King
2010-04-21 13:44 ` [PATCH 2/3] t1004 (read-tree): the unremovable symlink test requires POSIXPERM Jonathan Nieder
2010-04-21 14:20 ` Jonathan Nieder [this message]
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=20100421142058.GC5595@progeny.tock \
--to=jrnieder@gmail.com \
--cc=ferdy@ferdyx.org \
--cc=git@vger.kernel.org \
--cc=lewiemann@gmail.com \
--cc=marcone@xs4all.nl \
--cc=mh@glandium.org \
--cc=robbat2@gentoo.org \
--cc=sylvain@abstraction.fr \
--cc=takis@issaris.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;
as well as URLs for NNTP newsgroup(s).