update failing after sync $ emerge -pqv =app-portage/eix-0.25.3 [ebuild U ] app-portage/eix-0.25.3 [0.23.4] USE="dep%* -debug -doc -nls (-optimization) -security -sqlite (-strong-optimization) -tools -zsh-completion" $ emerge --info =app-portage/eix-0.25.3 Portage 2.2.01.20271-prefix (prefix/windows/interix/6.1/x86, gcc-4.2.4, unavailable, 6.1 x86) ================================================================= System Settings ================================================================= System uname: Interix-6.1-x86-32bit Timestamp of tree: Fri, 30 Mar 2012 02:11:39 +0000 app-shells/bash: 4.2_p10::gentoo_prefix dev-lang/python: 2.7.2::gentoo_prefix dev-util/pkgconfig: 0.25-r2::gentoo_prefix sys-devel/autoconf: 2.68::gentoo_prefix sys-devel/automake: 1.11.1::gentoo_prefix sys-devel/binutils: 2.22::gentoo_prefix sys-devel/gcc: 4.2.4-r01.4::gentoo_prefix sys-devel/gcc-config: 1.5-r2::gentoo_prefix sys-devel/libtool: 2.4-r01.1::gentoo_prefix sys-devel/make: 3.82::gentoo_prefix Repositories: gentoo_prefix Installed sets: ACCEPT_KEYWORDS="~x86-interix" ACCEPT_LICENSE="* -@EULA" CBUILD="i586-pc-interix6.1" CFLAGS="" CHOST="i586-pc-interix6.1" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/portage /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="" DISTDIR="/opt/gentoo/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles force-prefix news nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://gentoo.ynet.sk/pub http://gentoo.inode.at" LDFLAGS="" MAKEOPTS="-j2" PKGDIR="/opt/gentoo/usr/portage/packages" PORTAGE_CONFIGROOT="/opt/gentoo/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/opt/gentoo/var/tmp" PORTDIR="/opt/gentoo/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix" USE="X cracklib cxx modules ncurses prefix readline ssl x86-interix zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="Interix" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="Interix" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" 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: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Please attach the build.log
Created attachment 307159 [details] build log
various/drop_permissions.cc: In function 'void drop_permissions(EixRc&)': various/drop_permissions.cc:44: error: 'setegid' was not declared in this scope various/drop_permissions.cc:74: error: 'seteuid' was not declared in this scope
Thanks. Since interix is not well supported there is a change that Mr Väth will not fix the issue (or can't).
(In reply to comment #4) > Thanks. Since interix is not well supported I think that it should not be hard to fix, I just need some information: The ./configure test about seteuid()/setegid() succeeded, so interix should possess these functions, but it fails anyway when compiling: I guess the seteuid/setgid() functions are declared in some unusual header file: The standard #include <unistd.h> and <sys/types.h> does not seem to be sufficient under interix. Can you find out which is the correct header file to #include for seteuid() and setegid() for interix? On the manpage I found here http://www.suacommunity.com/man/2/seteuid.2.html this information seems to be missing
the page source of that page seems more helpful :) #include <sys/types.h> #include <unistd.h>
I'm affraid interix does not provide definitions of these functions. Googling suggests the functions don't work that well either, but that may have been the particular use-cases as well.
It looks like Interix prefers you call setuser() instead: "Use the API setuser() instead. One of the flags you can pass to the setuser() API is SU_CHECK to verify a password. When you want to actually change the user we recommend you use setuser() with the SU_COMPLETE flag rather than a set of setuid(), seteuid(), setgid() and setegid() API calls because it is faster and with create a better security token." There's some info in this thread about a package for adding the missing seteuid and setegid. http://www.suacommunity.com/forum/tm.aspx?m=13150
(In reply to comment #7) > I'm affraid interix does not provide definitions of these functions. As I understand, it provides definitions (otherwise the autoconf test could not succeed) but no declarations (i.e. no prototypes). I added a test whether a corresponding prototype must be added (and in this case whether just adding the POSIX declaration works). (In reply to comment #8) > It looks like Interix prefers you call setuser() instead I also added a call to setuser(), although perhaps this is not so important, since the intended purpose of the calls is to *drop* permissions (and not to get additional permission tokens). You can find both changes in the eix git master on BerliOS (>=eix-0.25.4); a corresponding live ebuild is available in the mv overlay (which is in the layman list); please report whether it works. Thanks in advance.
Created attachment 310607 [details] build log for app-portage/eix-99999999 from mv ERROR: app-portage/eix-99999999 failed (prepare phase): Failed Running automake ! Call stack: ebuild.sh, line 85: Called call-ebuildshell 'src_prepare' environment, line 635: Called src_prepare environment, line 3158: Called eautoreconf environment, line 838: Called eautomake environment, line 807: Called autotools_run_tool 'automake' '--add-missing' '--copy' '--foreign' environment, line 453: Called die The specific snippet of code: die "Failed Running $1 !";
oops! nevermind that, my Automerge was out of date. app-portage/eix-99999999 from mv emerged successfully thanks Martin!
+*eix-0.25.4 (06 May 2012) + + 06 May 2012; Jeremy Olexa <darkside@gentoo.org> -eix-0.25.0.ebuild, + +eix-0.25.4.ebuild: + Version bump, mostly bug fixes. Closes Gentoo bugs 410205 & 408509