Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 378761 - dev-util/dialog-1.1.20110707-r1 : popd: directory stack empty
Summary: dev-util/dialog-1.1.20110707-r1 : popd: directory stack empty
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo LiveCD Package Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-11 12:09 UTC by avx
Modified: 2011-08-18 20:44 UTC (History)
2 users (show)

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


Attachments
build.log (build.log,10.72 KB, text/plain)
2011-08-12 20:45 UTC, avx
Details
environment (gzip -9 'd) (environment.gz,25.25 KB, application/x-gzip)
2011-08-13 16:04 UTC, avx
Details

Note You need to log in before you can comment on or make changes to this bug.
Description avx 2011-08-11 12:09:53 UTC
According to `emerge`, dev-util/dialog-1.1.20110707-r1 should be re-builded ( [ R ] ), but fails with:

--snip--
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-util/dialog-1.1.20110707-r1/work/dialog-1.1-20110707 ...
>>> Working in BUILD_DIR: "/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/work/dialog-1.1.20110707_build"
/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/temp/environment: line 357: pushd: /var/tmp/portage/dev-util/dialog-1.1.20110707-r1/work/dialog-1.1.20110707_build: No such file or directory
make -j9 --quiet 
/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/temp/environment: line 359: popd: directory stack empty
>>> Source compiled.
>>> Test phase [not enabled]: dev-util/dialog-1.1.20110707-r1

>>> Install dialog-1.1.20110707-r1 into /var/tmp/portage/dev-util/dialog-1.1.20110707-r1/image/ category dev-util
make -j9 --quiet DESTDIR=/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/image/ install 
making install
** installing dialog.1
installing de.gmo as /var/tmp/portage/dev-util/dialog-1.1.20110707-r1/image//usr/share/locale/de/LC_MESSAGES/dialog.mo
made install
rm: cannot remove `/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/image/usr/lib64/libdialog.a': No such file or directory
rm: cannot remove `/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/image/usr/lib64/libdialog.la': No such file or directory
 * ERROR: dev-util/dialog-1.1.20110707-r1 failed (install phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  56:  Called src_install
 *   environment, line 2948:  Called die
 * The specific snippet of code:
 *           rm "${D}"usr/$(get_libdir)/libdialog.a "${D}"usr/$(get_libdir)/libdialog.la || die;
 * 
 * If you need support, post the output of 'emerge --info =dev-util/dialog-1.1.20110707-r1',
 * the complete build log and the output of 'emerge -pqv =dev-util/dialog-1.1.20110707-r1'.
 * The complete build log is located at '/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/temp/environment'.
 * S: '/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/work/dialog-1.1-20110707'

>>> Failed to emerge dev-util/dialog-1.1.20110707-r1
--snap--
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2011-08-12 17:25:05 UTC
1) Please attach the entire build log.
2) Please post your `emerge --info' output.
Comment 2 avx 2011-08-12 20:45:32 UTC
Created attachment 283091 [details]
build.log
Comment 3 avx 2011-08-12 20:47:04 UTC
emerge --info

--snip--
Portage 2.1.10.11 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.13-r4, 2.6.39-gentoo-r1 x86_64)
=================================================================
System uname: Linux-2.6.39-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.3
Timestamp of tree: Fri, 12 Aug 2011 19:15:01 +0000
app-shells/bash:          4.2_p10
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r2, 3.2-r2
dev-util/cmake:           2.8.5-r2
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.8.3-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1
sys-devel/gcc:            4.5.3
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.38 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo vmware enlightenment phorcix x-yubikey
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -msse4 -mcx16 -msahf -mpopcnt -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -mtune=native -msse4 -mcx16 -msahf -mpopcnt -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles fixpackages metadata-transfer news parallel-fetch parallel-install protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS=""
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://distfiles.gentoo.org"
LANG="de_DE.utf8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed -Wl,--sort-common"
LINGUAS="de de_DE en en_US"
MAKEOPTS="-j9 --quiet"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage/gentoo"
PORTDIR_OVERLAY="/var/lib/layman/vmware /var/lib/layman/enlightenment /usr/portage/phorcix /usr/portage/yubikey"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 attr caps crypt idn mmx multilib nls nptl openmp pam pic sse sse2 sse3 ssl ssse3 unicode xcomposite xinerama xrandr" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="*" 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" CAMERAS="casio_qv" ELIBC="glibc" INPUT_DEVICES="evdev joystick wacom" KERNEL="linux" LINGUAS="de de_DE en en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS
--snap--
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2011-08-13 14:03:44 UTC
Looks like it is one of the eclasses.
Please attach this file too:

/var/tmp/portage/dev-util/dialog-1.1.20110707-r1/temp/environment
Comment 5 avx 2011-08-13 16:04:05 UTC
Created attachment 283199 [details]
environment (gzip -9 'd)
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2011-08-13 16:18:38 UTC
Ah, now it makes sense. CC'ing autotools-utils.eclass maintainer.

It looks like inheriting (an old version of?) that eclass makes it fail somehow when autotools-utils_src_configure (or some phase before src_compile) wasn't run.
Comment 7 Maciej Mrozowski gentoo-dev 2011-08-15 00:17:26 UTC
autotools-utils is used improperly (usage example in eclass manual page)

autotools-utils is *not* (never was and is going to be) drop-in replacement for autotools eclass as it exports ebuild phases, handles some flags in IUSE automatically and defaults to out-of-source build.
Comment 8 Jeroen Roovers (RETIRED) gentoo-dev 2011-08-15 02:48:42 UTC
(In reply to comment #7)
> autotools-utils is used improperly (usage example in eclass manual page)
> 
> autotools-utils is *not* (never was and is going to be) drop-in replacement for
> autotools eclass as it exports ebuild phases, handles some flags in IUSE
> automatically and defaults to out-of-source build.

What on Earth are you talking about?

First of all, inheriting autotools-utils.eclass appears to have been a leftover from an effort to get the dialog build system to accept to not install an .la file when there is no .a file (and then use remove_libtool_files from said eclass). I have removed the inherit now as remove_libtool_files was not fit for this purpose.

But I haven't seen your confirmation as to why it fails for you (when it does not for me, for instance - I cannot reproduce this bug and I am not aware of the conditions that always should produce it).

The point here is that the only reason it fails is that the eclass's src_configure mistakenly expects another of the eclass's build phase to have run and set something up. I would guess that's not a situation you want to have an ebuild developer deal with.
Comment 9 Dan Goodliffe 2011-08-16 18:28:37 UTC
I think I know why it fails for some, not for others.
Seems that USE=minimal causes the failure, I've just tried a previously failing install with "USE=-minimal emerge -1 dialog" and it installs just fine.
While I don't see minimal in the post of emerge --info, it does appear in the attached build.log... perhaps you could try switching see it has the same effect for you as me.
Comment 10 Maciej Mrozowski gentoo-dev 2011-08-16 21:41:51 UTC
(In reply to comment #8)

> The point here is that the only reason it fails is that the eclass's
> src_configure mistakenly expects another of the eclass's build phase to have
> run and set something up. I would guess that's not a situation you want to have
> an ebuild developer deal with.

I haven't tried to reproduce it myself but bug is immediately obvious to me looking at ebuild.

In ebuild, src_configure is overriden (and eclass one is not called), then autotools_utils_src_compile is called (as ebuild doesn't override it), then it misbehaves as out-of-source build dir is neither known or set up (autotools-utils_src_configure does that) and autotools-utils_src_compile doesn't know where to pushd, nor where to popd from, hence error messages in build log.

This is eclass misuse I'm taking about.
I don't think I'm going to put recovery logic to support scenarios, where one is free to pick eclass phases to invoke and ignore. Eclass exports phases for reason = they need to be called unless someone knows implementation internals. But then again nobody should rely on implementation internals as it's in general suspect to change (while still keeping API and desired behaviour).

Hope that helps.
Comment 11 Maciej Mrozowski gentoo-dev 2011-08-18 20:44:47 UTC
15 Aug 2011; Jeroen Roovers <xxx@yyyyyyyy> dialog-1.1.20110707-r1.ebuild:
  Do not inherit unused autotools-utils.eclass (bug #378761).

In tree, closing.
Please reopen if the issue somehow reappears again.