grub switched to bzr, so did the ebuild. But now the ebuild is broken, again. Here's the log. * CPV: sys-boot/grub-9999 * REPO: gentoo * USE: custom-cflags elibc_glibc kernel_linux userland_GNU x86 >>> Unpacking source... * bzr fetch start --> * repository: http://bzr.savannah.gnu.org/r/grub/trunk/grub => /mnt/schedasd/portage/distfiles/bzr-src/grub * exporting ... * Revision 1917 is now in /var/tmp/portage/sys-boot/grub-9999/work/grub-9999 * Applying grub-1.96-genkernel.patch ... [ ok ] * QA Notice: 'aclocal' called by source: sys-boot/grub-9999 * Use autotools.eclass instead of calling 'aclocal' directly. am-wrapper: warning: invalid WANT_AUTOMAKE 'latest'; ignoring. acinclude.m4:17: warning: underquoted definition of grub_PROG_TARGET_CC acinclude.m4:17: run info '(automake)Extending aclocal' acinclude.m4:17: or see http://sources.redhat.com/automake/automake.html#Extending-aclocal ac-wrapper: warning: invalid WANT_AUTOCONF 'latest'; ignoring. configure.ac:42: warning: AC_ARG_PROGRAM was called before AC_CANONICAL_TARGET ../../lib/autoconf/general.m4:1839: AC_CANONICAL_TARGET is expanded from... configure.ac:42: the top level * Running autoconf ... [ ok ] * Running autoheader ... [ ok ] WARNING: C file isn't a module: rsa.c WARNING: C file isn't a module: pubkey.c WARNING: C file isn't a module: primegen.c WARNING: C file isn't a module: md.c WARNING: C file isn't a module: hmac-tests.c WARNING: C file isn't a module: hash-common.c WARNING: C file isn't a module: elgamal.c WARNING: C file isn't a module: ecc.c WARNING: C file isn't a module: dsa.c WARNING: C file isn't a module: cipher.c WARNING: C file isn't a module: ac.c >>> Source unpacked in /var/tmp/portage/sys-boot/grub-9999/work >>> Compiling source in /var/tmp/portage/sys-boot/grub-9999/work/grub-9999 ... ./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-werror --sbindir=/sbin --bindir=/bin --libdir=/lib --disable-efiemu --enable-grub-mkfont --disable-mm-debug --disable-grub-emu --disable-grub-emu-usb --disable-grub-fstest configure: WARNING: unrecognized options: --disable-grub-emu configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.." !!! Please attach the following file when seeking support: !!! /var/tmp/portage/sys-boot/grub-9999/work/grub-9999/config.log * ERROR: sys-boot/grub-9999 failed: * econf failed * * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3284: Called econf '--disable-werror' '--sbindir=/sbin' '--bindir=/bin' '--libdir=/lib' '--disable-efiemu' '--enable-grub-mkfont' '--disable-mm-debug' '--disable-grub-emu' '--disable-grub-emu-usb' '--disable-grub-fstest' * ebuild.sh, line 527: Called die
Created attachment 212499 [details, diff] proposed patch to use automake instead of eautomake The reason of this is, that the src_unpack() first replaces all occurrences of auto* with eauto* in ./autogen.sh and the runs it. This also happens to automake, which gets replaced with eautomake. I don't know exactly why eautomake doesn't behave like automake in this point, but when you let the ebuild not replace automake by eautomake it works. My patch should fix this. After that, grub should compile well, if there wasn't Bug 275654 (why does nobody fix it?)
Comment on attachment 212499 [details, diff] proposed patch to use automake instead of eautomake Please don't. Simply change the autogen.sh script to not run autotools at all, and run _that_ out of the ebuild. Or change the whole autotools stack call into a single eautoreconf.
We could also wait for the grub team to fix the bug laying behing this: # FIXME: automake doesn't like that there's no Makefile.am automake -a -c -f || true (from autogen.sh) I'm not completely sure, but maybe after them fixing this, eautomake could work again.
changing the ebuild wouldnt fix anything. the autotools.eclass is still broken: eautomake() { local extra_opts local makefile_name if [[ -f GNUmakefile.am ]]; then makefile_name="GNUmakefile" elif [[ -f Makefile.am ]]; then makefile_name="Makefile" else return 0 fi ... since grub doesnt package one of these files, it fails to do its job of calling automake
Is there any way to compile it? I have to boot a kernel from an usb stick not seen by the bios and "insmod uhci" hangs grub 1.97.1... Cheers, Darkbasic
grub runs `automake` directly http://sources.gentoo.org/sys-boot/grub/grub-1.97.1.ebuild?r1=1.3&r2=1.4 http://sources.gentoo.org/sys-boot/grub/grub-9999.ebuild?r1=1.18&r2=1.19