added a FAKEROOT define allowing to use pacman in a fakeroot enivronment (for tests purpose)

This commit is contained in:
Aurelien Foret 2006-01-21 16:50:01 +00:00
parent cf94007aed
commit 2d08e902ef
3 changed files with 22 additions and 0 deletions

View File

@ -52,6 +52,11 @@ AC_ARG_ENABLE(debug,
AC_HELP_STRING([--disable-debug], [Disable debugging support]),
[debug=$enableval], [debug=yes])
dnl Help line for fakeroot
AC_ARG_ENABLE(fakeroot,
AC_HELP_STRING([--disable-fakeoot], [Disable fakeroot proof support]),
[fakeroot=$enableval], [fakeroot=yes])
dnl Check for man2html binary
AC_MSG_CHECKING(for support man2html)
if test x$wantman2html = xyes ; then
@ -111,6 +116,15 @@ else
AC_MSG_RESULT(no)
fi
dnl Enable or disable fakeroot code
AC_MSG_CHECKING(for fakeroot proof support)
if test x$fakeroot = xyes ; then
AC_MSG_RESULT(yes)
else
CFLAGS="$CFLAGS -DFAKEROOT"
AC_MSG_RESULT(no)
fi
dnl Check for zlib
AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])])
if test -n "$LIBZ"; then

View File

@ -55,13 +55,19 @@ pmhandle_t *handle_new()
#ifndef CYGWIN
/* see if we're root or not */
handle->uid = geteuid();
#ifndef FAKEROOT
if(!handle->uid && getenv("FAKEROOTKEY")) {
/* fakeroot doesn't count, we're non-root */
handle->uid = 99;
}
#endif
/* see if we're root or not (fakeroot does not count) */
#ifndef FAKEROOT
if(handle->uid == 0 && !getenv("FAKEROOTKEY")) {
#else
if(handle->uid == 0) {
#endif
handle->access = PM_ACCESS_RW;
} else {
handle->access = PM_ACCESS_RO;

View File

@ -101,10 +101,12 @@ int main(int argc, char *argv[])
#ifndef CYGWIN
/* see if we're root or not */
myuid = geteuid();
#ifndef FAKEROOT
if(!myuid && getenv("FAKEROOTKEY")) {
/* fakeroot doesn't count, we're non-root */
myuid = 99;
}
#endif
/* check if we have sufficient permission for the requested operation */
if(myuid > 0) {