There is a problem with the ebuild of the Enterprise Volume Management System (evms) that prevents it from bulding correctly. Output is supplied below -- overkill root # emerge evms Calculating dependencies ...done! >>> emerge sys-apps/evms-1.1.0 to / >>> md5 ;-) evms-1.1.0.tar.gz >>> Unpacking source... >>> Unpacking evms-1.1.0.tar.gz >>> Source unpacked. ncurses gtk creating cache ./config.cache checking for a BSD compatible install... /bin/install -c checking whether make sets ${MAKE}... yes checking for gcc... gcc checking whether the C compiler (gcc -march=i686 -O3 -pipe ) works... yes checking whether the C compiler (gcc -march=i686 -O3 -pipe ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking how to run the C preprocessor... gcc -E checking for main in -ldl... yes checking for readline in -lreadline... no checking for uuid_compare in -luuid... yes checking for dirent.h that defines DIR... yes checking for opendir in -ldir... no checking for ANSI C header files... yes checking for fcntl.h... yes checking for unistd.h... yes checking for sys/ioctl.h... yes checking for sys/time.h... yes checking for sys/utsname.h... yes checking for asm/vtoc.h... no checking for working const... yes checking for inline... inline checking whether gcc needs -traditional... no checking return type of signal handlers... void checking for directory with kernel source... /usr/src/linux checking for debug level... none checking whether to link to ElectricFence... no checking which plugins to compile... all checking which user interfaces to compile... evmsgui ncurses CommandLine utilities checking for glib-config... /usr/bin/glib-config checking for GLIB - version >= 1.2.0... yes checking for gtk-config... /usr/bin/gtk-config checking for GTK - version >= 1.2.0... yes updating cache ./config.cache creating ./config.status creating make.rules make[1]: Entering directory `/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist' gcc -E -M -Wall -fPIC -march=i686 -O3 -pipe -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/include -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist -I/usr/src/linux/include -I/usr/local/include -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -DPATCH_LEVEL= -DVERSION=\"1.0\" -DDATE=\"09/09/02\" *.c > .depend gcc -Wall -fPIC -march=i686 -O3 -pipe -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/include -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist -I/usr/src/linux/include -I/usr/local/include -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -DPATCH_LEVEL= -DVERSION=\"1.0\" -DDATE=\"09/09/02\" -c -o dlist.o dlist.c gcc -shared -lc -ldl -Wl,-soname,libdlist.so.1 -o libdlist-1.0.so dlist.o ar rcs libdlist.a dlist.o ln -sf libdlist-1.0.so libdlist.so make[1]: Leaving directory `/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist' make[1]: Entering directory `/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/Engine' gcc -E -M -Wall -fPIC -march=i686 -O3 -pipe -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/include -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist -I/usr/src/linux/include -I/usr/local/include -DMAJOR_VERSION=1 -DMINOR_VERSION=1 -DPATCH_LEVEL=0 -DVERSION=\"1.1.0\" -DDATE=\"09/09/02\" -DPluginDirectory=\"/lib/evms\" *.c > .depend gcc -Wall -fPIC -march=i686 -O3 -pipe -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/include -I/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/dlist -I/usr/src/linux/include -I/usr/local/include -DMAJOR_VERSION=1 -DMINOR_VERSION=1 -DPATCH_LEVEL=0 -DVERSION=\"1.1.0\" -DDATE=\"09/09/02\" -DPluginDirectory=\"/lib/evms\" -c -o commit.o commit.c commit.c: In function `add_disk_handle': commit.c:1774: `evms_dev_handle_t' undeclared (first use in this function) commit.c:1774: (Each undeclared identifier is reported only once commit.c:1774: for each function it appears in.) commit.c:1774: parse error before `)' commit.c:1767: warning: unused variable `disk' commit.c: In function `kernel_rediscover': commit.c:1809: `evms_dev_handle_t' undeclared (first use in this function) make[1]: *** [commit.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/evms-1.1.0/work/evms-1.1.0/engine/Engine' make: *** [all] Error 1 !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 51, Exitcode 2 !!! compile problem My system is completely up-to-date (I did an emerge rsync ; emerge --update world before emerging evms), just to see if this problem had been rectified in a later ebuild of the package.
The problem is that gentoo-sources still use evms 1.0.1 driver source rather than 1.1.0. The user-space utilities are now at 1.1.0 and had dependencies on new data types defined in the 1.1.0 kernel headers. For 1.2.0 which is coming out soon, those dependencies on kernel headers has been elimintated so it would probably build but since the kernel components are as old as they are, it would cause the user-space tools to complain that the kernel side is not at the correct version required.
This is fixed with sys-kernel/gentoo-sources-r9 :)
Im disinclined to call this a BUG in the evms ebuild as it never *did* depend on a kernel-sources package; it was left as an task for the user to use whatever kernel she wanted to. The EVMS people are helpful, they include patches in the evms tarball against Linus kernels so you're never totally alone ;-) As Chavez points out, the end-user will be inconvenienced at run-time instead of build-time now, which isn't such a bad thing if you ask me... Ciao.