Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 236649 - [QA] eclass/gnome2-utils.eclass triggering automake "maintainer mode" build file regenaration
Summary: [QA] eclass/gnome2-utils.eclass triggering automake "maintainer mode" build f...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High minor (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-04 04:58 UTC by Sandro Bonazzola
Modified: 2008-09-27 11:44 UTC (History)
0 users

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


Attachments
full emerge log (dev-python:gnome-python-base-2.22.1:20080904-200200.log,14.92 KB, text/plain)
2008-09-04 20:07 UTC, Sandro Bonazzola
Details
copy-pasted from terminal build log of libgnome-python (libgnome-python-build.log,53.20 KB, text/plain)
2008-09-26 12:27 UTC, Mart Raudsepp
Details
Patch against gnome2-utils.eclass (fix_maintainer_mode_rebuild.patch,718 bytes, patch)
2008-09-26 12:57 UTC, Mart Raudsepp
Details | Diff
A better version of the patch after talks on #gentoo-desktop (fix_maintainer_mode_rebuild_try2.patch,795 bytes, patch)
2008-09-26 14:00 UTC, Mart Raudsepp
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sandro Bonazzola 2008-09-04 04:58:30 UTC
QA Notice: Automake "maintainer mode" detected:

         cd . && /bin/sh /var/tmp/portage/dev-python/gnome-python-base-2.22.1/work/gnome-python-2.22.1/missing --run automake-1.10 --gnu  Makefile
         cd .. && /bin/sh /var/tmp/portage/dev-python/gnome-python-base-2.22.1/work/gnome-python-2.22.1/missing --run automake-1.10 --gnu  docs/Makefile
         cd .. && /bin/sh /var/tmp/portage/dev-python/gnome-python-base-2.22.1/work/gnome-python-2.22.1/missing --run automake-1.10 --gnu  tests/Makefile

If you patch Makefile.am, configure.in,  or configure.ac then you
should use autotools.eclass and eautomake or eautoreconf. Exceptions
are limited to system packages for which it is impossible to run
autotools during stage building. See
http://www.gentoo.org/proj/en/qa/autofailure.xml for more information.
Comment 1 Arun Raghavan (RETIRED) gentoo-dev 2008-09-04 18:18:46 UTC
I don't see this, and it should not happen. Are you mixing and matching something with the g-py-split overlay?
Comment 2 Sandro Bonazzola 2008-09-04 19:48:38 UTC
AFAIK no.
PORTDIR_OVERLAY="/usr/local/overlays/portage /home/sandro/cvstree/tinyos-2-overlay" in my emerge info refers to https://naurel.org/svn/tinyos-2-overlay and to my personal overlay for cross-avr and cross-msp toolchains

# emerge -pv dev-python/gnome-python-base
[ebuild   R   ] dev-python/gnome-python-base-2.22.1  USE="-debug" 

# emerge --info
Portage 2.2_rc8 (default/linux/amd64/2008.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.26-gentoo-r1 x86_64)
=================================================================
System uname: Linux-2.6.26-gentoo-r1-x86_64-AMD_Athlon-tm-_64_Processor_3500+-with-glibc2.2.5
Timestamp of tree: Thu, 04 Sep 2008 17:04:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.5
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.62-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.26
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/initng/daemon /etc/initng/net /etc/initng/system /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -pipe"
DISTDIR="/home/media/dist"
FEATURES="collision-protect cvs distlocks elog java-strict metadata-transfer multilib-strict parallel-fetch sandbox sfperms sign strict stricter unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"
LANG="it_IT.UTF-8"
LC_ALL="it_IT.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="it"
PKGDIR="/home/ftp/packages"
PORTAGE_COMPRESS="bzip2"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_RSYNC_EXTRA_OPTS=" --timeout=800 --progress "
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"
PORTDIR_OVERLAY="/usr/local/overlays/portage /home/sandro/cvstree/tinyos-2-overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 3ds 7zip X a52 aac acl acpi alsa amd64 amr apache2 arts audiofile avahi bash-completion berkdb bl branding bzip2 cairo cal3d caps ccache cdb cddb cdparanoia cdr cg chroot cli cpudetection cracklib crypt css cups curl custom-cflags dbus devhelp dga directfb disk-partition djvu dmi dovecot-sasl dri dts dv dvd dvdr dvdread emboss emerald encode epydoc erandom esd evo exif expat extrafilters fam fame ffmpeg firefox flac fltk foomaticdb fortran gd gdbm ggi gif gimp glib glibc-omitfp glitz glut gmp gnokii gnome gnutls gphoto2 gpm graphviz gsm gstreamer gtk gtkhtml guile hal hbci howl-compat iconv idn ieee1394 imagemagick imlib ipv6 isc isdnlog ithreads java javacomm javascript jbig jce jikes jpeg jpeg2k justify kde kdeenablefinal kdehiddenvisibility kqemu lcms ldap libcaca libnotify linuxthreads-tls lm_sensors logitech-mouse logrotate lzo mad mailwrapper matroska mbox mdb mhash midi mikmod mjpeg mmap mmx mmxext mng motif mozdevelop mp3 mpeg mppe-mppc msn mudflap multilib musepack musicbrainz mysql ncurses nfs nls nptl nptlonly nsplugin numeric nvidia odbc ode offensive ofx ogg ogre openexr opengl openmp oss pam parport pch pcre pdf perl php png povray ppds pppd print pulseaudio python qa qt3 qt3support qt4 quicktime quotes rdesktop readline reflection resolvconf restrict-javascript rtc samba scanner sdl session slang slp smime sndfile snmp speex spell spl sse sse2 ssl startup-notification subversion svg sysfs syslog tcpd test tetex tga theora threads tidy tiff timidity tk truetype unicode usb userlocales utempter v4l v4l2 vcd vda vorbis vorbis-psy wma wmf wmp xattr xcomposite xforms xine xinerama xml xorg xpm xprint xscreensaver xulrunner xv xvid xvmc yv12 zeroconf zlib" ALSA_CARDS="intel8x0" 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_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache 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" APACHE2_MPMS="worker" CAMERAS="canon directory panasonic pccam300 " ELIBC="glibc" FOO2ZJS_DEVICES="hp1005 hpp1005" INPUT_DEVICES="mouse evdev keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" USERLAND="GNU" VIDEO_CARDS="nvidia nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, MAKEOPTS
Comment 3 Sandro Bonazzola 2008-09-04 20:07:23 UTC
Created attachment 164613 [details]
full emerge log
Comment 4 Sandro Bonazzola 2008-09-04 20:35:38 UTC
After some tests under Arun supervision:
commenting gnome2_omf_fix in gnome2_src_unpack() from gnome2.eclass removes the QA notice. 

grepping scrollkeeper into workdir produce no output.
Comment 5 Arun Raghavan (RETIRED) gentoo-dev 2008-09-13 15:07:59 UTC
Okay, I've switched the entire gnome-python set to use gnome2_src_unpack (will commit in a bit) and this is not happening on any of the packages, so unless someone can come up with an explanation for this, I'm going to resolve this as "works for me".
Comment 6 Gilles Dartiguelongue (RETIRED) gentoo-dev 2008-09-26 12:18:10 UTC
btw, I don't see "QA Notice" anywhere in the log, can you reproduce this bug in any way ?
Comment 7 Mart Raudsepp gentoo-dev 2008-09-26 12:27:27 UTC
Created attachment 166502 [details]
copy-pasted from terminal build log of libgnome-python
Comment 8 Mart Raudsepp gentoo-dev 2008-09-26 12:57:32 UTC
Created attachment 166508 [details, diff]
Patch against gnome2-utils.eclass

This patch fixes it for me.

Before only Makefile.in would be patched (with sed), and not Makefile.am.
With this patch both of them get patched - also importantly Makefile.am BEFORE Makefile.in (the other way around the regeneration is still triggered)
Comment 9 Mart Raudsepp gentoo-dev 2008-09-26 14:00:58 UTC
Created attachment 166511 [details, diff]
A better version of the patch after talks on #gentoo-desktop
Comment 10 Mart Raudsepp gentoo-dev 2008-09-26 14:44:49 UTC
So here's an explanation what was happening (especially why some experience this and others not):

In some cases the find run would return Makefile.in's before their respective Makefile.am's - might be dependent on inodes, filesystem way of allocating them, and how a directory walk ordered them or whatever, and in what order tarball lists them. So Makefile.am gets touched after Makefile.in sometimes.
But that doesn't explain why some systems always have problems, and others never have problems. I figured it might be caused by modtime granularity instead, and sure enough this is what I see after re-emerging libgnome-python without the eclass patch when cancelling it after OMF fix is done but before configure is done (so that the timestamps don't change from ./missing --run):

# stat --format="%n: %y" Makefile.*
Makefile.am: 2008-09-26 17:20:48.059223170 +0300
Makefile.in: 2008-09-26 17:20:48.055897328 +0300

The reason this doesn't happen for many others is that we are talking about a 3 millisecond difference, and reiserfs, ext3 and the like only have a second granularity, so if I would have PORTDIR_TMPDIR on reiserfs or ext3 I would have gotten this instead:

# stat --format="%n: %y" Makefile.*
Makefile.am: 2008-09-26 17:20:48.000000000 +0300
Makefile.in: 2008-09-26 17:20:48.000000000 +0300

... and everything is fine for most, as most use ext3, reiserfs or filesystems that only have second granularity for the modtime. But I have PORTDIR_TMPDIR pointed to /tmp, which I have mounted as tmpfs, and that has jiffies-granularity, not only second-granularity, so the standard GNU make dependency checking (that is used for deciding if the rule that triggers the am--refresh rule is triggered or not) is able to know that Makefile.am is newer than Makefile.in, and it becomes obvious why it breaks for some.

Sandro has PORTAGE_TMPDIR in standard /var/tmp location though -- Sandro, do you have that mounted as tmpfs or what fs?
Comment 11 Mart Raudsepp gentoo-dev 2008-09-27 09:17:49 UTC
Patch committed into portage tree
Comment 12 Sandro Bonazzola 2008-09-27 11:35:37 UTC
(In reply to comment #10)
> Sandro has PORTAGE_TMPDIR in standard /var/tmp location though -- Sandro, do
> you have that mounted as tmpfs or what fs?

I have /var/tmp/portage mounted in tmpfs.

Comment 13 Mart Raudsepp gentoo-dev 2008-09-27 11:44:40 UTC
ok, then I assume this bug is fixed for you too now :)