Commit a8a6587d authored by Eric Andersen's avatar Eric Andersen
Browse files

This patch adds package configuration files for the LVM2 tools and its

dependency, device-mapper. This will provide the basic tools needed to work
with LVM2 volumes on the target system.

http://bugs.busybox.net/view.php?id=183
parent 491b44e8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ source "package/customize/Config.in"
source "package/dhcp/Config.in"
source "package/directfb/Config.in"
source "package/distcc/Config.in"
source "package/dm/Config.in"
source "package/dnsmasq/Config.in"
source "package/dropbear_sshd/Config.in"
source "package/e2fsprogs/Config.in"
@@ -61,6 +62,7 @@ source "package/links/Config.in"
source "package/lrzsz/Config.in"
source "package/ltp-testsuite/Config.in"
source "package/ltrace/Config.in"
source "package/lvm2/Config.in"
source "package/lzo/Config.in"
source "package/m4/Config.in"
source "package/microcom/Config.in"

package/dm/Config.in

0 → 100644
+6 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_DM
	bool "dm"
	default n
	help
	  The Device-mapper is a new component of the linux kernel that
	  supports logical volume management. It is required by LVM2 and EVMS.

package/dm/dm.mk

0 → 100644
+97 −0
Original line number Diff line number Diff line
#############################################################
#
# dm
#
#############################################################
# Copyright (C) 2005 by Richard Downer <rdowner@gmail.com>
# Derived from work
# Copyright (C) 2001-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA

DM_BASEVER=1.00
DM_PATCH=21
DM_VERSION=$(DM_BASEVER).$(DM_PATCH)
DM_SOURCE:=device-mapper.$(DM_VERSION).tgz
DM_SITE:=ftp://sources.redhat.com/pub/dm
DM_CAT:=zcat
DM_DIR:=$(BUILD_DIR)/device-mapper.$(DM_VERSION)
DM_STAGING_BINARY:=$(STAGING_DIR)/sbin/dmsetup
DM_TARGET_BINARY:=$(TARGET_DIR)/usr/sbin/dmsetup
DM_STAGING_LIBRARY:=$(STAGING_DIR)/lib/libdevmapper.so
DM_TARGET_LIBRARY:=$(TARGET_DIR)/usr/lib/libdevmapper.so

$(DL_DIR)/$(DM_SOURCE):
	 $(WGET) -P $(DL_DIR) $(DM_SITE)/$(DM_SOURCE)

$(DM_DIR)/.unpacked: $(DL_DIR)/$(DM_SOURCE)
	$(DM_CAT) $(DL_DIR)/$(DM_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	touch $(DM_DIR)/.unpacked

$(DM_DIR)/.configured: $(DM_DIR)/.unpacked
	(cd $(DM_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		CFLAGS="$(TARGET_CFLAGS)" \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		$(DISABLE_NLS) \
		$(DISABLE_LARGEFILE) \
		--with-kernel-dir=/work/richard/xen/linux-2.6.10-xen0 \
		--with-user=$(shell id -un) --with-group=$(shell id -gn) \
	);
	touch  $(DM_DIR)/.configured

$(DM_DIR)/$(DM_BINARY): dm-build
$(DM_DIR)/$(DM_LIBRARY): dm-build

$(DM_STAGING_BINARY) $(DM_STAGING_LIBRARY): $(DM_DIR)/.configured
	$(MAKE) CC=$(TARGET_CC) -C $(DM_DIR)
	$(MAKE) -C $(DM_DIR) install prefix=$(STAGING_DIR)

# Install dmsetup from staging to target
$(DM_TARGET_BINARY): $(DM_STAGING_BINARY)
	$(INSTALL) -m 0755 $? $@

# Install libdevmapper.so.1.00 from staging to target
$(DM_TARGET_LIBRARY).$(DM_BASEVER): $(DM_STAGING_LIBRARY)
	$(INSTALL) -m 0644 $? $@

# Makes libdevmapper.so a symlink to libdevmapper.so.1.00
$(DM_TARGET_LIBRARY): $(DM_TARGET_LIBRARY).$(DM_BASEVER)
	rm $@
	ln -s $(<F) $@

dm: uclibc $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY)

dm-clean:
	rm $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) $(DM_TARGET_LIBRARY).$(DM_BASEVER)
	$(MAKE) -C $(DM_DIR) clean

dm-dirclean:
	rm -rf $(DM_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_DM)),y)
TARGETS+=dm
endif

package/lvm2/Config.in

0 → 100644
+8 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_LVM2
	bool "lvm2"
	default n
	select BR2_PACKAGE_DM
	help
	  LVM2 refers to a new userspace toolset that provide logical
	  volume management facilities on linux. It is reasonably backwards-
	  compatible with the original LVM toolset.

package/lvm2/lvm2.mk

0 → 100644
+78 −0
Original line number Diff line number Diff line
#############################################################
#
# lvm2
#
#############################################################
# Copyright (C) 2005 by Richard Downer <rdowner@gmail.com>
# Derived from work
# Copyright (C) 2001-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA

LVM2_BASEVER=2.00
LVM2_PATCH=33
LVM2_VERSION=$(LVM2_BASEVER).$(LVM2_PATCH)
LVM2_SOURCE:=LVM2.$(LVM2_VERSION).tgz
LVM2_SITE:=ftp://sources.redhat.com/pub/lvm2
LVM2_CAT:=zcat
LVM2_DIR:=$(BUILD_DIR)/LVM2.$(LVM2_VERSION)
LVM2_SBIN:=lvchange lvcreate lvdisplay lvextend lvm lvmchange lvmdiskscan lvmsadc lvmsar lvreduce lvremove lvrename lvresize lvs lvscan pvchange pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan vgcfgbackup vgcfgrestore vgchange vgck vgconvert vgcreate vgdisplay vgexport vgextend vgimport vgmerge vgmknodes vgreduce vgremove vgrename vgs vgscan vgsplit
LVM2_TARGET_SBINS=$(foreach lvm2sbin, $(LVM2_SBIN), $(TARGET_DIR)/sbin/$(lvm2sbin))

$(DL_DIR)/$(LVM2_SOURCE):
	 $(WGET) -P $(DL_DIR) $(LVM2_SITE)/$(LVM2_SOURCE)

$(LVM2_DIR)/.unpacked: $(DL_DIR)/$(LVM2_SOURCE)
	$(LVM2_CAT) $(DL_DIR)/$(LVM2_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	touch $(LVM2_DIR)/.unpacked

$(LVM2_DIR)/.configured: $(LVM2_DIR)/.unpacked
	(cd $(LVM2_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		CFLAGS="$(TARGET_CFLAGS)" \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		$(DISABLE_NLS) \
		$(DISABLE_LARGEFILE) \
		--with-user=$(shell id -un) --with-group=$(shell id -gn) \
	);
	touch  $(LVM2_DIR)/.configured

$(LVM2_TARGET_SBINS): $(LVM2_DIR)/.configured
	$(MAKE) CC=$(TARGET_CC) -C $(LVM2_DIR)
	$(MAKE) CC=$(TARGET_CC) -C $(LVM2_DIR) install prefix=$(STAGING_DIR) exec_prefix=$(STAGING_DIR)
	for binary in $(LVM2_SBIN); do echo $$binary; cp -a $(STAGING_DIR)/sbin/$$binary $(TARGET_DIR)/sbin; done

lvm2: uclibc dm $(LVM2_TARGET_SBINS)

lvm2-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(LVM2_DIR) uninstall
	-$(MAKE) -C $(LVM2_DIR) clean

lvm2-dirclean:
	rm -rf $(LVM2_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_LVM2)),y)
TARGETS+=lvm2
endif