Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 522464 - sys-boot/grub-2.02_beta2 fails to configure with unifont error
Summary: sys-boot/grub-2.02_beta2 fails to configure with unifont error
Status: VERIFIED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Mike Gilbert
URL: https://savannah.gnu.org/bugs/index.p...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-10 00:23 UTC by Stuart Shelton
Modified: 2014-09-10 23:22 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stuart Shelton 2014-09-10 00:23:33 UTC
When attempting to build the newly-stable grub-2.02b2 for a CoreBoot-based PC Engines APU1C system (headless; serial output only) I get:

checking for freetype-config... freetype-config
checking ft2build.h usability... yes
checking ft2build.h presence... yes
checking for ft2build.h... yes
configure: error: qemu, powerpc-ieee1275, coreboot and loongson ports need unifont

!!! Please attach the following file when seeking support:
!!! /var/tmp/portage/sys-boot/grub-2.02_beta2/work/grub-2.02~beta2-coreboot/config.log
 * ERROR: sys-boot/grub-2.02_beta2::gentoo failed (configure phase):
 *   econf failed
 * 
 * Call stack:
 *          ebuild.sh, line   93:  Called src_configure
 *        environment, line 4030:  Called multibuild_parallel_foreach_variant 'grub_configure'
 *        environment, line 3225:  Called multibuild_foreach_variant '_multibuild_parallel' 'grub_configure'
 *        environment, line 3168:  Called _multibuild_run '_multibuild_parallel' 'grub_configure'
 *        environment, line 3166:  Called _multibuild_parallel 'grub_configure'
 *        environment, line 3216:  Called grub_configure
 *        environment, line 2633:  Called autotools-utils_src_configure
 *        environment, line  762:  Called econf '--docdir=/usr/share/doc/grub-2.02_beta2' '--disable-werror' '--program-prefix=' '--libdir=/usr/lib' '--htmldir=/usr/share/doc/grub-2.02_beta2/html' '--disable-mm-debug' '--disable-grub-emu-usb' '--disable-device-mapper' '--disable-grub-mount' '--enable-nls' '--disable-grub-mkfont' '--disable-libzfs' '--with-platform=coreboot' '--program-transform-name=s,grub,grub2,'
 *   phase-helpers.sh, line  584:  Called die
 * The specific snippet of code:
 *                      die "econf failed"
 * 
 * If you need support, post the output of `emerge --info '=sys-boot/grub-2.02_beta2::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-boot/grub-2.02_beta2::gentoo'`.
/usr/lib/portage/bin/isolated-functions.sh: line 195: wait: `econf failed': not a pid or valid job spec


This occurs regardless of whether USE="efiemu" is set or not.  As this is a serial-only headless server, I'd prefer to avoid having to install fonts which will never be seen...


# emerge -pqv '=sys-boot/grub-2.02_beta2::gentoo'
[ebuild     U ] sys-boot/grub-2.02_beta2 [2.00_p5107-r2] USE="efiemu multislot nls -debug -device-mapper -doc (-libzfs) -mount -sdl -static {-test} -truetype (-custom-cflags%)" GRUB_PLATFORMS="coreboot -efi-32 -efi-64 -emu -ieee1275 -multiboot -pc -qemu -qemu-mips -xen% -yeeloong"

Filtered "emerge --info '=sys-boot/grub-2.02_beta2::gentoo'":
Portage 2.2.8-r1 (default/linux/amd64/13.0/x32, gcc-4.7.3, glibc-2.19-r1, 3.16.0-gentoo x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.16.0-gentoo-x86_64-AMD_G-T40E_Processor-with-gentoo-2.2
KiB Mem:     2023968 total,    174136 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Tue, 09 Sep 2014 05:30:01 +0000
ld GNU ld (Gentoo 2.23.2 p1.0) 2.23.2
distcc 3.1 x86_64-pc-linux-gnux32 [disabled]
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.7
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
ABI_X86="x32 64"
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
ARCH="amd64"
CBUILD="x86_64-pc-linux-gnux32"
CFLAGS="-march=native -fomit-frame-pointer -Os -pipe"
CFLAGS_amd64="-m64"
CFLAGS_x32="-mx32"
CFLAGS_x86="-m32"
CHOST="x86_64-pc-linux-gnux32"
CHOST_amd64="x86_64-pc-linux-gnu"
CHOST_x32="x86_64-pc-linux-gnux32"
CHOST_x86="i686-pc-linux-gnu"
CXXFLAGS="-march=native -fomit-frame-pointer -Os -pipe"
GRUB_PLATFORMS="coreboot"
USE="3dnow 3dnowext acl adns aio amd64 bash-completion berkdb bzip2 caps chroot cli cracklib crypt cxx dbi dri expat fam fontconfig gd gdbm geoip gmp iconv icu idea idn ipv6 ithreads jpeg json libedit libffi lm_sensors lzma lzo mailwrapper mmx mmxext modules multilib ncurses network-cron nls nptl openmp pam pcre perl png python readline rpc session snmp sqlite sse sse2 sse3 ssl ssse3 syslog tcpd threads unicode urandom usb vim-syntax xattr xinetd xml zeroconf zlib"
Comment 1 Mike Gilbert gentoo-dev 2014-09-10 01:00:10 UTC
The best I can do is fixup the dependencies here. Something like:

DEPEND="grub_platforms_qemu? ( media-libs/freetype:2 )
grub_platforms_ieee1275? ( media-libs/freetype:2 )
grub_platforms_coreboot? ( media-libs/freetype:2 )
grub_platforms_loongson? ( media-libs/freetype:2 )"


If you really want to build grub without freetype installed, you will need to convince the upstream developers.

http://www.gnu.org/software/grub/grub-mailinglist.html

http://savannah.gnu.org/bugs/?group=grub
Comment 2 Mike Gilbert gentoo-dev 2014-09-10 01:21:18 UTC
Feel free to file a new bug if upstream relaxes their configure check.

+  10 Sep 2014; Mike Gilbert <floppym@gentoo.org> grub-2.02_beta2-r1.ebuild,
+  grub-2.02_beta2.ebuild, grub-9999-r1.ebuild:
+  Add build-time dep on freetype for coreboot, qemu, ieee1275 and loongson. Bug
+  522464 by Stuart Shelton.
Comment 3 Stuart Shelton 2014-09-10 23:22:28 UTC
(In reply to Mike Gilbert from comment #1)
> The best I can do is fixup the dependencies here.

Unfortunately, I don't think this fix totally works - I've tried grub-2.02_beta2-r1 (with the freetype deps added) and still hit the same problem.

I have 'media-libs/freetype-2.5.3-r1 was built with the following:
USE="adobe-cff bzip2 png -X -auto-hinter -bindist -debug -doc -fontforge (-harfbuzz) -infinality -static-libs -utils" ABI_X86="64 x32 -32"'

It looks as if the configure script checks the directories /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc for a file named unifont.{pcf,pcf.gz,bdf,bdf.gz,rtf,ttf.gz} - but will then reject a located file if the MD5sum matches one of four hard-coded files.  Regardless, if enable_build_grub_mkfont is not set, then any font file - even if found - will be rejected.

... so it looks as if GRUB_PLATFORMS="coreboot" (or qemu, powerpc-ieee1275, or loongson) needs to require USE="freetype" (in addition to the new dependencies).  Additionally, should unifont be bundled (as now), or should media-fonts/unifont be a dependency?

With USE="freetype" manually added for this package, the build did succeed.  The affected GRUB_PLATFORMS values should probably auto-select "freetype" for now.

P.S. Upstream bug filed.