After bootstrapping prefix on cygwin, I am trying to emerge emacs. That pulls in net-libs/liblockfile-1.14, which fails during install with the error "invalid group 'root'" Below are build.log, emerge --info and emerge -pqv. Note: I have bootstrapped the prefix in a cygwin directory that was installed without administrator priviledges (--no-admin option). This package seems famous for similar problems: see the old and closed bugs: * 236317 net-libs/liblockfile fails without a 'mail' group * 350763 net-libs/liblockfile cannot use my group on install (OS X) dcolle@yoga ~ $ cat /prefix/var/tmp/portage/net-libs/liblockfile-1.14/temp/build.log * Package: net-libs/liblockfile-1.14 * Repository: gentoo_prefix * Maintainer: net-mail@gentoo.org * USE: elibc_Cygwin kernel_Winnt prefix prefix-guest userland_GNU x64-cygwin * FEATURES: nostrip preserve-libs * 'enewgroup()' disabled in Gentoo Prefix with non-root user (by design) * Group: 'mail' not created >>> Unpacking source... >>> Unpacking liblockfile_1.14.orig.tar.gz to /prefix/var/tmp/portage/net-libs/liblockfile-1.14/work >>> Source unpacked in /prefix/var/tmp/portage/net-libs/liblockfile-1.14/work >>> Preparing source in /prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile ... * Applying liblockfile-1.13-makefile.patch ... [ ok ] * Running eautoreconf in '/prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile' ... * Running aclocal ... [ ok ] * This package has a configure.in file which has long been deprecated. Please * update it to use configure.ac instead as newer versions of autotools will die * when it finds this file. See https://bugs.gentoo.org/426262 for details. * Running autoconf --force ... [ ok ] * Running autoheader ... [ ok ] * Running elibtoolize in: liblockfile/ >>> Source prepared. >>> Configuring source in /prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile ... ./configure --prefix=/prefix/usr --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --mandir=/prefix/usr/share/man --infodir=/prefix/usr/share/info --datadir=/prefix/usr/share --sysconfdir=/prefix/etc --localstatedir=/prefix/var/lib --docdir=/prefix/usr/share/doc/liblockfile-1.14 --htmldir=/prefix/usr/share/doc/liblockfile-1.14/html --libdir=/prefix/usr/lib --with-mailgroup=197121 --enable-shared checking for x86_64-pc-cygwin-gcc... x86_64-pc-cygwin-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.exe checking for suffix of executables... .exe checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-cygwin-gcc accepts -g... yes checking for x86_64-pc-cygwin-gcc option to accept ISO C89... none needed checking build shared libs... yes checking build libnfslock... no checking for ldconfig... /prefix/bin/true checking how to run the C preprocessor... x86_64-pc-cygwin-gcc -E checking for grep that handles long lines and -e... /prefix/usr/bin/grep checking for egrep... /prefix/usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking paths.h usability... yes checking paths.h presence... yes checking for paths.h... yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking for utime... yes checking for utimes... yes configure: creating ./config.status config.status: creating ./Makefile config.status: creating ./maillock.h config.status: creating autoconf.h >>> Source configured. >>> Compiling source in /prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile ... make SHELL=/prefix/bin/bash -j3 x86_64-pc-cygwin-gcc -O2 -pipe -Wall -D_GNU_SOURCE -fPIC -D_REENTRANT -I. -DLIB -DLOCKPROG=\"/prefix/usr/bin/dotlockfile\" \ -c lockfile.c x86_64-pc-cygwin-gcc -O2 -pipe -Wall -D_GNU_SOURCE -fPIC -D_REENTRANT -I. -c -o dotlockfile.o dotlockfile.c x86_64-pc-cygwin-gcc -O2 -pipe -Wall -D_GNU_SOURCE -fPIC -D_REENTRANT -I. -c lockfile.c -o xlockfile.o lockfile.c:1:0: warning: -fPIC ignored for target (all code is position independent) /* ^ dotlockfile.c:1:0: warning: -fPIC ignored for target (all code is position independent) /* ^ lockfile.c:1:0: warning: -fPIC ignored for target (all code is position independent) /* ^ x86_64-pc-cygwin-gcc -o dotlockfile dotlockfile.o xlockfile.o ar rv liblockfile.a lockfile.o ar: creating liblockfile.a a - lockfile.o x86_64-pc-cygwin-gcc -fPIC -shared -Wl,-soname,liblockfile.so.1 \ -o liblockfile.so lockfile.o -lc >>> Source compiled. >>> Test phase [not enabled]: net-libs/liblockfile-1.14 >>> Install liblockfile-1.14 into /prefix/var/tmp/portage/net-libs/liblockfile-1.14/image/ category net-libs make SHELL=/prefix/bin/bash -j3 DESTDIR=/prefix/var/tmp/portage/net-libs/liblockfile-1.14/image/ install install -d -m 755 -g root -p /prefix/var/tmp/portage/net-libs/liblockfile-1.14/image//prefix/usr/include install: invalid group 'root' make: *** [Makefile:64: install_common] Error 1 * ERROR: net-libs/liblockfile-1.14::gentoo_prefix failed (install phase): * emake failed * * If you need support, post the output of `emerge --info '=net-libs/liblockfile-1.14::gentoo_prefix'`, * the complete build log and the output of `emerge -pqv '=net-libs/liblockfile-1.14::gentoo_prefix'`. * The complete build log is located at '/prefix/var/tmp/portage/net-libs/liblockfile-1.14/temp/build.log'. * The ebuild environment file is located at '/prefix/var/tmp/portage/net-libs/liblockfile-1.14/temp/environment'. * Working directory: '/prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile' * S: '/prefix/var/tmp/portage/net-libs/liblockfile-1.14/work/liblockfile' dcolle@yoga ~ $ emerge --info =net-libs/liblockfile-1.14 Portage 2.3.8-prefix (python 2.7.12-final-0, prefix/windows/cygwin/x64, gcc-5.3.0, unavailable, 2.8.2-gentoo-r0 x86_64) ================================================================= System Settings ================================================================= System uname: CYGWIN_NT-6.3-2.8.2-gentoo-r0-x86_64-64bit Timestamp of repository gentoo_prefix: Fri, 01 Sep 2017 11:57:57 +0000 sh bash 4.3_p48-r1 ld GNU ld (Gentoo 2.27 p1.0) 2.27 app-shells/bash: 4.3_p48-r1::gentoo_prefix dev-lang/perl: 5.24.2::gentoo_prefix dev-lang/python: 2.7.12::gentoo_prefix dev-util/pkgconfig: 0.29.1::gentoo_prefix sys-devel/autoconf: 2.69-r4::gentoo_prefix sys-devel/automake: 1.15.1-r1::gentoo_prefix sys-devel/binutils: 2.27::gentoo_prefix sys-devel/gcc: 5.3.0::gentoo_prefix sys-devel/gcc-config: 1.8-r01.1::gentoo_prefix sys-devel/libtool: 2.4.6-r4::gentoo_prefix sys-devel/make: 4.2.1-r1::gentoo_prefix Repositories: gentoo_prefix location: /prefix/usr/portage sync-type: rsync sync-uri: rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix priority: -1000 ACCEPT_KEYWORDS="~x64-cygwin" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-cygwin" CFLAGS=" -O2 -pipe" CHOST="x86_64-pc-cygwin" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/terminfo" CXXFLAGS=" -O2 -pipe" DISTDIR="/prefix/usr/portage/distfiles" FCFLAGS="" FEATURES="assume-digests binpkg-logs case-insensitive-fs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles force-prefix merge-sync multilib-strict news nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans unprivileged" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="" MAKEOPTS="-j3" PKGDIR="/prefix/usr/portage/packages" PORTAGE_CONFIGROOT="/prefix/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/prefix/var/tmp" USE="cracklib cxx modules ncurses nls prefix prefix-guest readline ssl unicode x64-cygwin zlib" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="Cygwin" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse" KERNEL="Winnt" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby22 ruby24" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS dcolle@yoga ~ $ emerge -pqv =net-libs/liblockfile-1.14 [ebuild N ] net-libs/liblockfile-1.14
This happens to work with liblockfile-1.09. Anything newer does set '-g root' for everything to install, not just for $(bindir)/dotlockfile, where '-g $(MAILGROUP)' is used eventually. For Prefix we do need something to replace "-g root" by "-g $(id -g)", like with MAILGROUP already. I can think of something like these ones: *) replace "root" in Makefile.in by src_prepare, without upstreaming *) introduce something like ROOTGROUP similar to MAILGROUP, for upstreaming *) work with upstream for something different @net-mail: Any preference? @Didier: Would you mind to (help us out and) work on a patch?
*** This bug has been marked as a duplicate of bug 605298 ***