Skip to content
Advertisement

running buildroot as root. still error after setting FORCE_UNSAFE_CONFIGURE=1 in environment variable

I am trying to run buildroot with root user. Even after setting FORCE_UNSAFE_CONFIGURE=1 as export FORCE_UNSAFE_CONFIGURE=1 I still get configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check).

When I try to run buildroot without root user I get some error related to fakeroot

Can some please guide me if running as root why even after running command export FORCE_UNSAFE_CONFIGURE=1 I still getting configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See config.log’ for more details`

How to fix it with root user so I can run buildroot

the error message also says look at the config.log file.What I like to know I ran export FORCE_UNSAFE_CONFIGURE=1 command but I could not find FORCE_UNSAFE_CONFIGURE=1 in cache variables of config.log

This is also printed in config.log

#define GNULIB_TEST_MKFIFOAT 1
| #define GNULIB_TEST_MKNODAT 1
| /* end confdefs.h.  */
| #include <sys/stat.h>
|              #include <unistd.h>
| 
|              /* Copied from root-uid.h.  FIXME: Just use root-uid.h.  */
|              #ifdef __TANDEM
|              # define ROOT_UID 65535
|              #else
|              # define ROOT_UID 0
|              #endif
| 
| int
| main ()
| {
| /* Indeterminate for super-user, assume no.  Why are you running
|          configure as root, anyway?  */
|       if (geteuid () == ROOT_UID) return 99;
|       if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
|   ;
|   return 0;
| }
configure:25690: error: in `/home/ubuntu/qemuD/build/output/build/host-tar-1.29':
configure:25692: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details

##

Can I remove check root varification and allow root running buildroot in some buildroot code like in some python file or something.

Also please tell what is fakeroot. if I dont run as root user then it cause some error about fakeroot. Is it an additional thing that I need to install in ubuntu where I am running and executing buildroot. Or is it part of buildroot. So for that just few words

Update

If I do not run as root and run commands

make host-tar-dirclean
make

I get following error. I like to know how to debug or troubleshoot this error. I mean if following error u would have faced what would u do. And any explanation. Tnanks

In file included from libfakeroot.c:60:
communicate.h:209:44: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat *’
  209 | extern void send_get_stat64(struct stat64 *buf);
      |                             ~~~~~~~~~~~~~~~^~~
libtool: link: /usr/bin/gcc -O2 -I/home/ubuntu/abc/buildroot-2020.02.3/output/host/include -Wl,-rpath -Wl,/home/ubuntu/abc/buildroot-2020.02.3/output/host/lib -o simple simple.o  -L/home/ubuntu/abc/buildroot-2020.02.3/output/host/lib -ldl
make[4]: *** [Makefile:652: libfakeroot.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
libtool: link: /usr/bin/ar cru .libs/libmacosx.a .libs/libfakeroot_inode64.o .libs/libfakeroot_unix2003.o 
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: /usr/bin/ranlib .libs/libmacosx.a
libtool: link: ( cd ".libs" && rm -f "libmacosx.la" && ln -s "../libmacosx.la" "libmacosx.la" )
make[3]: *** [Makefile:670: all-recursive] Error 1
make[2]: *** [Makefile:445: all] Error 2
make[1]: *** [package/pkg-generic.mk:269: /home/ubuntu/abc/buildroot-2020.02.3/output/build/host-fakeroot-1.20.2/.stamp_built] Error 2
make: *** [Makefile:84: _all] Error 2
ubuntu@this:~/abc/buildroot-2020.02.3$ 

Advertisement

Answer

First of all: don’t build as root. It’s just a bad idea.

The error doesn’t come from Buildroot, it comes from the tar package.

FORCE_UNSAFE_CONFIG is not a cache variable so it doesn’t appear in config.log.

It should work with that environment variable set. Have you tried:

export FORCE_UNSAFE_CONFIGURE=1
make host-tar-dirclean
make

fakeroot is a tool do be able to fake a few things that normally only root can do: set file ownership, create device nodes, etc. The faked files can then be added to a tar archive or to a generated filesystem.

fakeroot had a “bug” that it was using the glibc-internal macro _STAT_VER. This macro was removed in glibc-2.33. Ubuntu 21.04 (hirsute) is using glibc-2.33. A patch to fix this is included in the maintained Buildroot branches. Update to a supported Buildroot release to fix this problem (or downgrade your build environment to an Ubuntu version that was current in 2020).

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement