diff -urN genkernel-3.1.0a/gen_compile.sh genkernel-3.1.0a.with_lvm2/gen_compile.sh --- genkernel-3.1.0a/gen_compile.sh 2004-10-22 17:44:00.000000000 -0500 +++ genkernel-3.1.0a.with_lvm2/gen_compile.sh 2004-11-22 14:59:26.641494032 -0600 @@ -277,6 +277,46 @@ fi } +compile_lvm2() { + compile_device_mapper + if [ ! -f "${LVM2_BINCACHE}" ] + then + [ -f "${LVM2_SRCTAR}" ] || + gen_die "Could not find lvm2 source tarball: ${LVM2_SRCTAR}!" + cd "${TEMP}" + rm -rf ${LVM2_DIR} > /dev/null + tar -zxpf ${LVM2_SRCTAR} || + gen_die 'Could not extract lvm2 source tarball!' + [ -d "${LVM2_DIR}" ] || + gen_die 'Lvm2 directory ${LVM2_DIR} is invalid!' + rm -rf "${TEMP}/device-mapper" > /dev/null + tar -jxpf "${DEVICE_MAPPER_BINCACHE}" -C "${TEMP}" || + gen_die "Could not extract device-mapper binary cache!"; + + cd "${LVM2_DIR}" + print_info 1 'lvm2: >> Configuring...' + LDFLAGS="-L${TEMP}/device-mapper/lib" \ + CFLAGS="-I${TEMP}/device-mapper/include" \ + CPPFLAGS="-I${TEMP}/device-mapper/include" \ + ./configure --enable-static_link --prefix=${TEMP}/lvm2 >> ${DEBUGFILE} 2>&1 || + gen_die 'Configure of lvm2 failed!' + print_info 1 'lvm2: >> Compiling...' + compile_generic '' utils + compile_generic 'install' utils + + cd "${TEMP}/lvm2" + print_info 1 ' >> Copying to bincache...' + strip "sbin/lvm.static" || + gen_die 'Could not strip lvm.static!' + tar -cjf "${LVM2_BINCACHE}" sbin/lvm.static || + gen_die 'Could not create binary cache' + + cd "${TEMP}" + rm -rf "${TEMP}/device-mapper" > /dev/null + rm -rf "${LVM2_DIR}" lvm2 + fi +} + compile_modutils() { # I've disabled dietlibc support for the time being since the # version we use misses a few needed system calls. @@ -438,6 +478,38 @@ fi } +compile_device_mapper() { + if [ ! -f "${DEVICE_MAPPER_BINCACHE}" ] + then + [ ! -f "${DEVICE_MAPPER_SRCTAR}" ] && + gen_die "Could not find device-mapper source tarball: ${DEVICE_MAPPER_SRCTAR}" + cd "${TEMP}" + rm -rf "${DEVICE_MAPPER_DIR}" + tar -zxpf "${DEVICE_MAPPER_SRCTAR}" + [ ! -d "${DEVICE_MAPPER_DIR}" ] && + gen_die "device-mapper directory ${DEVICE_MAPPER_DIR} invalid" + cd "${DEVICE_MAPPER_DIR}" + ./configure --prefix=${TEMP}/device-mapper --enable-static_link >> ${DEBUGFILE} 2>&1 || + gen_die 'Configuring device-mapper failed!' + print_info 1 'device-mapper: >> Compiling...' + compile_generic '' utils + compile_generic 'install' utils + print_info 1 ' >> Copying to cache...' + cd "${TEMP}" + rm -r "${TEMP}/device-mapper/man" || + gen_die 'Could not remove manual pages!' + strip "${TEMP}/device-mapper/sbin/dmsetup" || + gen_die 'Could not strip dmsetup binary!' + tar -jcpf "${DEVICE_MAPPER_BINCACHE}" device-mapper || + gen_die 'Could not tar up the device-mapper binary!' + [ -f "${DEVICE_MAPPER_BINCACHE}" ] || + gen_die 'device-mapper cache not created!' + cd "${TEMP}" + rm -rf "${DEVICE_MAPPER_DIR}" > /dev/null + rm -rf "${TEMP}/device-mapper" > /dev/null + fi +} + compile_dietlibc() { local BUILD_DIETLIBC local ORIGTEMP diff -urN genkernel-3.1.0a/gen_determineargs.sh genkernel-3.1.0a.with_lvm2/gen_determineargs.sh --- genkernel-3.1.0a/gen_determineargs.sh 2004-10-22 17:44:00.000000000 -0500 +++ genkernel-3.1.0a.with_lvm2/gen_determineargs.sh 2004-11-22 14:45:29.491160452 -0600 @@ -92,6 +92,8 @@ DEVFSD_BINCACHE=`cache_replace "${DEVFSD_BINCACHE}"` DEVFSD_CONF_BINCACHE=`cache_replace "${DEVFSD_CONF_BINCACHE}"` UDEV_BINCACHE=`cache_replace "${UDEV_BINCACHE}"` + DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"` + LVM2_BINCACHE=`cache_replace "${LVM2_BINCACHE}"` DEFAULT_KERNEL_CONFIG=`arch_replace "${DEFAULT_KERNEL_CONFIG}"` BUSYBOX_CONFIG=`arch_replace "${BUSYBOX_CONFIG}"` @@ -103,6 +105,8 @@ DEVFSD_BINCACHE=`arch_replace "${DEVFSD_BINCACHE}"` DEVFSD_CONF_BINCACHE=`arch_replace "${DEVFSD_CONF_BINCACHE}"` UDEV_BINCACHE=`arch_replace "${UDEV_BINCACHE}"` + DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"` + LVM2_BINCACHE=`arch_replace "${LVM2_BINCACHE}"` if [ "${CMD_BOOTSPLASH}" != '' ] then diff -urN genkernel-3.1.0a/gen_initrd.sh genkernel-3.1.0a.with_lvm2/gen_initrd.sh --- genkernel-3.1.0a/gen_initrd.sh 2004-10-22 17:44:01.000000000 -0500 +++ genkernel-3.1.0a.with_lvm2/gen_initrd.sh 2004-11-22 15:23:49.867846008 -0600 @@ -91,19 +91,16 @@ # gen_die "could not uncompress devfsd.conf" # LVM2 - if [ -e '/sbin/lvm' ] && ldd /sbin/lvm|grep -q 'not a dynamic executable'; + if [ "${CMD_NOLVM2}" != '1' ] then - if [ "${CMD_NOLVM2}" != '1' ] - then - cp /sbin/lvm "${TEMP}/initrd-temp/bin/lvm" || - gen_die 'Could not copy over lvm!' - ln -sf "${TEMP}/initrd-temp/bin/lvm" "${TEMP}/initrd-temp/bin/vgscan" || - gen_die 'Could not symlink lvm -> vgscan!' - ln -sf "${TEMP}/initrd-temp/bin/lvm" "${TEMP}/initrd-temp/bin/vgchange" || - gen_die 'Could not symlink lvm -> vgchange!' - fi -# else -# print_warning 1 "initrd: No LVM2 static binaries found; skipping support..." + tar -jxpf "${LVM2_BINCACHE}" -C "${TEMP}/initrd-temp" || + gen_die "Could not extract lvm2 binary cache!"; + mv ${TEMP}/initrd-temp/bin/lvm.static ${TEMP}/initrd-temp/bin/lvm || + gen_die "lvm2 error: could not move lvm.static to lvm!" + for i in vgchange vgscan; do + ln ${TEMP}/initrd-temp/bin/lvm ${TEMP}/initrd-temp/bin/$i || + gen_die "lvm2 error: could not link ${i}!" + done fi for i in '[' ash basename cat chroot clear cp dirname echo env false find \ diff -urN genkernel-3.1.0a/genkernel genkernel-3.1.0a.with_lvm2/genkernel --- genkernel-3.1.0a/genkernel 2004-10-22 17:44:00.000000000 -0500 +++ genkernel-3.1.0a.with_lvm2/genkernel 2004-11-22 14:57:32.272662181 -0600 @@ -265,6 +265,12 @@ fi compile_devfsd + + if [ "${CMD_NOLVM2}" != '1' ] + then + compile_lvm2 + fi + #UDEV=0 #[ "${VER}" -gt '2' ] || [ "${VER}" -eq '2' -a "${PAT}" -ge '6' -a "${NOUDEV}" -eq '0' ] && UDEV=1 && print_info 1 'udev: Target is a 2.6 kernel, support enabled.' [ "${UDEV}" -eq '1' ] && compile_udev diff -urN genkernel-3.1.0a/genkernel.conf genkernel-3.1.0a.with_lvm2/genkernel.conf --- genkernel-3.1.0a/genkernel.conf 2004-11-22 14:32:27.042615469 -0600 +++ genkernel-3.1.0a.with_lvm2/genkernel.conf 2004-11-22 14:55:00.313473098 -0600 @@ -94,3 +94,13 @@ UDEV_DIR="udev-${UDEV_VER}" UDEV_SRCTAR="${GK_SHARE}/pkg/udev-${UDEV_VER}.tar.bz2" UDEV_BINCACHE="%%CACHE%%/udev-${UDEV_VER}-%%ARCH%%.tar.bz2" + +DEVICE_MAPPER_VER="1.00.17" +DEVICE_MAPPER_DIR="device-mapper.${DEVICE_MAPPER_VER}" +DEVICE_MAPPER_SRCTAR="${GK_SHARE}/pkg/device-mapper.${DEVICE_MAPPER_VER}.tgz" +DEVICE_MAPPER_BINCACHE="%%CACHE%%/device-mapper-${DEVICE_MAPPER_VER}-%%ARCH%%.tar.bz2" + +LVM2_VER="2.00.25" +LVM2_DIR="LVM2.${LVM2_VER}" +LVM2_SRCTAR="${GK_SHARE}/pkg/LVM2.${LVM2_VER}.tgz" +LVM2_BINCACHE="%%CACHE%%/LVM2.${LVM2_VER}-%%ARCH%%.tar.bz2"