diff --git a/package/base/lvm-wrapper/config.in b/package/base/lvm-wrapper/config.in new file mode 100644 index 000000000..273aea027 --- /dev/null +++ b/package/base/lvm-wrapper/config.in @@ -0,0 +1,34 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/lvm-wrapper/config.in +# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. A copy of the GNU General Public +# License can be found at Documentation/COPYING. +# +# Many people helped and are helping developing ROCK Linux. Please +# have a look at http://www.rocklinux.org/ and the Documentation/TEAM +# file for details. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + +if pkgcheck lvm X || pkgcheck lvm2 X +then + # if ! pkgcheck lvm-wrapper X ; then + # comment "WARNING! You should really select the lvm-wrapper package when using lvm or lvm2." + # fi + default=lvm + pkgcheck lvm2 X && default=lvm2 + choice ROCKCFG_LVM_MANPAGES $default \ + "none" "Dont install any man-pages regarding LVM" \ + "lvm" "Install util man-pages for native LVM of linux-2.4" \ + "lvm2" "Install util man-pages for LVM2 based on device-mapper" +fi diff --git a/package/base/lvm-wrapper/lvm-wrapper.conf b/package/base/lvm-wrapper/lvm-wrapper.conf new file mode 100644 index 000000000..d72e28f9b --- /dev/null +++ b/package/base/lvm-wrapper/lvm-wrapper.conf @@ -0,0 +1,46 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/lvm-wrapper/lvm-wrapper.conf +# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. A copy of the GNU General Public +# License can be found at Documentation/COPYING. +# +# Many people helped and are helping developing ROCK Linux. Please +# have a look at http://www.rocklinux.org/ and the Documentation/TEAM +# file for details. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + +UTILS="e2fsadm lvchange lvcreate lvdisplay lvextend +lvmchange lvmcreate_initrd lvmdiskscan lvmsadc lvmsar +lvreduce lvremove lvrename lvresize lvs +lvscan pvchange pvcreate pvdata pvdisplay +pvmove pvremove pvresize pvs pvscan +vgcfgbackup vgcfgrestore vgchange vgck vgconvert +vgcreate vgdisplay vgexport vgextend vgimport +vgmerge vgmknodes vgreduce vgremove vgrename +vgs vgscan vgsplit lvm" + +cm() { + cp $confdir/lvm-wrapper.sh $root/sbin/lvm-wrapper + chmod 755 $root/sbin/lvm-wrapper + for x in $UTILS + do + ln -sf lvm-wrapper $root/sbin/$x + done +} + +srctar=none +autoextract=0 +createprefix=0 +createdocs=0 +custmain=cm diff --git a/package/base/lvm-wrapper/lvm-wrapper.desc b/package/base/lvm-wrapper/lvm-wrapper.desc new file mode 100644 index 000000000..1158fac9c --- /dev/null +++ b/package/base/lvm-wrapper/lvm-wrapper.desc @@ -0,0 +1,40 @@ +[COPY] --- ROCK-COPYRIGHT-NOTE-BEGIN --- +[COPY] +[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch. +[COPY] Please add additional copyright information _after_ the line containing +[COPY] the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +[COPY] the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +[COPY] +[COPY] ROCK Linux: rock-src/package/base/lvm-wrapper/lvm-wrapper.desc +[COPY] ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf +[COPY] +[COPY] This program is free software; you can redistribute it and/or modify +[COPY] it under the terms of the GNU General Public License as published by +[COPY] the Free Software Foundation; either version 2 of the License, or +[COPY] (at your option) any later version. A copy of the GNU General Public +[COPY] License can be found at Documentation/COPYING. +[COPY] +[COPY] Many people helped and are helping developing ROCK Linux. Please +[COPY] have a look at http://www.rocklinux.org/ and the Documentation/TEAM +[COPY] file for details. +[COPY] +[COPY] --- ROCK-COPYRIGHT-NOTE-END --- + +[I] LVM wrapper package + +[T] This package provides a multicall wrapper script to call the +[T] correct versions of LVM utils. It installs itself into /sbin +[T] and creates symlinks for each util either version provides. +[T] LVM and LVM2 packages (have to) put their binaries into +[T] /lib/lvm and /lib/lvm2 respectively. + +[A] Tobias Hintze +[M] Tobias Hintze + +[C] extra/filesystem + +[L] GPL +[S] Stable +[V] 1.0 +[P] X ---3-----9 600.000 + diff --git a/package/base/lvm-wrapper/lvm-wrapper.sh b/package/base/lvm-wrapper/lvm-wrapper.sh new file mode 100644 index 000000000..f86c0bb86 --- /dev/null +++ b/package/base/lvm-wrapper/lvm-wrapper.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/lvm-wrapper/lvm-wrapper.sh +# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. A copy of the GNU General Public +# License can be found at Documentation/COPYING. +# +# Many people helped and are helping developing ROCK Linux. Please +# have a look at http://www.rocklinux.org/ and the Documentation/TEAM +# file for details. +# +# --- ROCK-COPYRIGHT-NOTE-END --- +# +# [A] Tobias Hintze +# [M] Tobias Hintze +# +die() { + echo "$*" + exit 1 +} + +# check prerequisite /proc +[ ! -e /proc/mounts ] && die "/proc is not mounted." + +# detect version of lvm being used +if [ -e /proc/lvm ] ; then + VERSION="native LVM of linux-2.4" + BASE=/lib/lvm +else + VERSION="LVM2 based on device-mapper" + BASE=/lib/lvm2 +fi + +NAME="`basename $0`" + +[ ! -e "$BASE" ] && + die "utils for $VERSION are not available. did you miss to install them?" + +[ ! -e "${BASE}/${NAME}" ] && + die "util \"${NAME}\" is not available for ${VERSION}" + +# do the real work +exec "${BASE}/${NAME}" $* diff --git a/package/base/lvm/lvm.conf b/package/base/lvm/lvm.conf index 21b0fa5c7..f398a74b5 100644 --- a/package/base/lvm/lvm.conf +++ b/package/base/lvm/lvm.conf @@ -21,4 +21,11 @@ # --- ROCK-COPYRIGHT-NOTE-END --- srcdir="LVM/$ver" -[ "$root/$prefix" = "/usr" ] && confopt="" +var_append confopt " " "--sbindir=$root/lib/lvm" +var_append confopt " " "--bindir=$root/lib/lvm" +var_append confopt " " "--libdir=$root/lib" + +if [ "$ROCKCFG_LVM_MANPAGES" != "lvm" ] ; then + var_append confopt " " "--mandir=$builddir/trash/man" + var_append confopt " " "--infodir=$builddir/trash/info" +fi diff --git a/package/base/lvm/lvm.desc b/package/base/lvm/lvm.desc index bf64eb028..c37088570 100644 --- a/package/base/lvm/lvm.desc +++ b/package/base/lvm/lvm.desc @@ -29,6 +29,8 @@ [T] creating volume groups (kind of virtual disks) from one or more physical [T] volumes and creating one or more logical volumes (kind of logical [T] partitions) in volume groups. +[T] Since LVM and LVM2 share the same names for their utils it is recommended +[T] to install and use lvm-wrapper package. [U] http://linux.msede.com/lvm/ diff --git a/package/base/lvm2/lvm2.conf b/package/base/lvm2/lvm2.conf index ad01c9a92..0381c4799 100644 --- a/package/base/lvm2/lvm2.conf +++ b/package/base/lvm2/lvm2.conf @@ -21,6 +21,11 @@ # --- ROCK-COPYRIGHT-NOTE-END --- srcdir="LVM2.$ver" -[ "$root/$prefix" = "/usr" ] && confopt="" -makeinstopt="" -hook_add postmake 9 'cp -v tools/lvm $root/sbin/lvm2' +var_append confopt " " "--sbindir=$root/lib/lvm2" +var_append confopt " " "--bindir=$root/lib/lvm2" +var_append confopt " " "--libdir=$root/lib" + +if [ "$ROCKCFG_LVM_MANPAGES" != "lvm2" ] ; then + var_append confopt " " "--mandir=$builddir/trash/man" + var_append confopt " " "--infodir=$builddir/trash/info" +fi diff --git a/package/base/lvm2/lvm2.desc b/package/base/lvm2/lvm2.desc index e95776e8f..e46f9c25f 100644 --- a/package/base/lvm2/lvm2.desc +++ b/package/base/lvm2/lvm2.desc @@ -30,6 +30,8 @@ [T] volumes and creating one or more logical volumes (kind of logical [T] partitions) in volume groups. [T] This 2nd version is based on device-mapper available in linux-2.6. +[T] Since LVM and LVM2 share the same names for their utils it is recommended +[T] to install and use lvm-wrapper package. [U] http://sources.redhat.com/lvm2/ @@ -42,7 +44,7 @@ [L] GPL [S] Stable [V] 2.00.25 -[P] O -?-3-----9 184.100 +[P] X -?-3-----9 184.100 [D] 624884634 LVM2.2.00.25.tgz ftp://sources.redhat.com/pub/lvm2/ diff --git a/target/rescue/build_stage2.sh b/target/rescue/build_stage2.sh index e7a92842a..0efd34b1b 100644 --- a/target/rescue/build_stage2.sh +++ b/target/rescue/build_stage2.sh @@ -38,7 +38,7 @@ package_map=' +00-dirtree +glibc22 +glibc23 +sysfiles +libpcap +iptables +tcp_wrappers -kiss +kbd -syslinux -rescue-stage1-init +device-mapper +lvm2 +mdadm +dhcpcd -+smartmontools +ntfsprogs ++smartmontools +ntfsprogs +lvm-wrapper ' if [[ $rockver = 2.0* ]] ; then @@ -96,9 +96,6 @@ echo_status "Installing lvm-cycle-script ..." cp -v $base/target/$target/contrib/init-boot-cycle sbin/init-lvm-cycle chmod 755 sbin/init-lvm-cycle -echo_status "Installing lvm2 wrapper ..." -cp -v $base/target/$target/contrib/lvm2wrap etc/conf/lvm2wrap - echo_status "Creating init." cp -v $rootdir/usr/bin/busybox sbin/init cp -al sbin/init sbin/halt diff --git a/target/rescue/config.in b/target/rescue/config.in index 0da350153..292a4975f 100644 --- a/target/rescue/config.in +++ b/target/rescue/config.in @@ -42,6 +42,7 @@ pkgfilter sed ' # Select some packages explicitely (base) / lvm / { s/^[OX] /X /p; d; }; +/ lvm-wrapper / { s/^[OX] /X /p; d; }; / mdadm / { s/^[OX] /X /p; d; }; / dhcpcd / { s/^[OX] /X /p; d; }; / lvm2 / { s/^[OX] /X /p; d; };