Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 410205 - app-portage/eix-0.25.3 failed (compile phase)
Summary: app-portage/eix-0.25.3 failed (compile phase)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 Interix
: Normal normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-30 03:44 UTC by Gordon Cowie
Modified: 2012-05-06 20:31 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (build.log,10.05 KB, text/plain)
2012-03-30 04:04 UTC, Gordon Cowie
Details
build log for app-portage/eix-99999999 from mv (build.log,11.32 KB, text/plain)
2012-05-02 03:19 UTC, Gordon Cowie
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gordon Cowie 2012-03-30 03:44:36 UTC
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
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-03-30 03:52:37 UTC
Please attach the build.log
Comment 2 Gordon Cowie 2012-03-30 04:04:02 UTC
Created attachment 307159 [details]
build log
Comment 3 Gordon Cowie 2012-03-30 04:04:18 UTC
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
Comment 4 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-03-30 04:08:31 UTC
Thanks. Since interix is not well supported there is a change that Mr Väth will not fix the issue (or can't).
Comment 5 Martin Väth 2012-04-01 11:56:02 UTC
(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
Comment 6 Fabian Groffen gentoo-dev 2012-04-30 18:36:19 UTC
the page source of that page seems more helpful :)

    #include <sys/types.h>
    #include <unistd.h>
Comment 7 Fabian Groffen gentoo-dev 2012-04-30 18:40:04 UTC
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.
Comment 8 Gordon Cowie 2012-05-01 01:16:19 UTC
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
Comment 9 Martin Väth 2012-05-01 07:17:27 UTC
(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.
Comment 10 Gordon Cowie 2012-05-02 03:19:43 UTC
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 !";
Comment 11 Gordon Cowie 2012-05-02 03:43:34 UTC
oops! nevermind that, my Automerge was out of date.

app-portage/eix-99999999 from mv emerged successfully thanks Martin!
Comment 12 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-05-06 20:31:31 UTC
+*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