dc5239b689f6b3d4a0d5b8a5c5a0875c04754460
[feed/packages.git] / utils / lvm2 / Makefile
1 #
2 # Copyright (C) 2009-2010 Stefan Monnier
3 # Copyright (C) 2011-2018 OpenWrt.org
4 #
5 # This is free software, licensed under the GNU General Public License v3+.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=LVM2
12 PKG_VERSION:=2.03.22
13 PKG_VERSION_DM:=1.02.196
14 PKG_RELEASE:=1
15
16 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
17 PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2
18 PKG_HASH:=4c5a6923bd1ace7ce04474608a84937ce053ba91b1ace9f0b0017268e732dc7c
19 PKG_BUILD_DIR:=$(BUILD_DIR)/lvm2-$(BUILD_VARIANT)/$(PKG_NAME).$(PKG_VERSION)
20
21 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
22 PKG_LICENSE:=GPL-2.0 LGPL-2.1
23 PKG_LICENSE_FILES:=COPYING COPYING.lib
24 PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm2
25
26 PKG_BUILD_PARALLEL:=1
27
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/libdevmapper/Default
31 SECTION:=libs
32 CATEGORY:=Libraries
33 TITLE:=The Linux Kernel Device Mapper userspace library
34 URL:=https://sourceware.org/dm/
35 VERSION:=$(PKG_VERSION_DM)
36 DEPENDS:=+kmod-dm +libpthread +libuuid +librt +libblkid
37 endef
38
39
40 define Package/libdevmapper
41 $(call Package/libdevmapper/Default)
42 VARIANT := normal
43 endef
44
45 define Package/libdevmapper-selinux
46 $(call Package/libdevmapper/Default)
47 VARIANT := selinux
48 DEPENDS += +libselinux
49 PROVIDES := libdevmapper
50 endef
51
52 define Package/libdevmapper/description
53 The device-mapper is a component of the 2.6 linux kernel that supports logical
54 volume management. It is required by LVM2 and EVMS.
55 endef
56
57 define Package/libdevmapper-selinux/description
58 $(call Package/libdevmapper/description)
59 This variant supports SELinux
60
61 endef
62
63 define Package/lvm2/default
64 SECTION:=utils
65 CATEGORY:=Utilities
66 SUBMENU:=Disc
67 TITLE:=The Linux Logical Volume Manager
68 URL:=https://sourceware.org/lvm2/
69 DEPENDS:=+libreadline +libncurses +libaio
70 endef
71
72 define Package/lvm2
73 $(call Package/lvm2/default)
74 VARIANT := normal
75 DEPENDS += +libdevmapper
76 endef
77
78 define Package/lvm2-selinux
79 $(call Package/lvm2/default)
80 VARIANT := selinux
81 DEPENDS += +libdevmapper-selinux
82 PROVIDES := lvm2
83 endef
84
85 define Package/lvm2/description
86 LVM2 refers to a new userspace toolset that provide logical volume management
87 facilities on linux. It is reasonably backwards-compatible with the original
88 LVM toolset.
89 endef
90
91 define Package/lvm2-selinux/description
92 $(call Package/lvm2/description)
93 This variant supports SELinux
94
95 endef
96
97
98 CONFIGURE_ARGS += \
99 --disable-o_direct \
100 --with-default-pid-dir=/var/run \
101 --with-default-dm-run-dir=/var/run \
102 --with-default-run-dir=/var/run/lvm \
103 --with-default-locking-dir=/var/lock/lvm \
104 --$(if $(findstring selinux,$(BUILD_VARIANT)),en,dis)able-selinux
105
106 ifneq ($(shell /bin/sh -c "echo -n 'X'"),X)
107 MAKE_SHELL = SHELL=/bin/bash
108 endif
109
110 define Build/Compile
111 $(MAKE) -C $(PKG_BUILD_DIR) \
112 CC="$(TARGET_CC)" \
113 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
114 DESTDIR="$(PKG_INSTALL_DIR)" \
115 $(MAKE_SHELL) \
116 install
117 endef
118
119 define Build/InstallDev
120 $(INSTALL_DIR) $(1)/usr/include
121 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libdevmapper.h $(1)/usr/include
122 $(INSTALL_DIR) $(1)/usr/lib
123 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so* $(1)/usr/lib
124 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
125 $(CP) $(PKG_BUILD_DIR)/libdm/libdevmapper.pc $(1)/usr/lib/pkgconfig
126 endef
127
128 define Package/libdevmapper/install
129 $(INSTALL_DIR) $(1)/usr/lib
130 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so.* $(1)/usr/lib
131 endef
132
133 Package/libdevmapper-selinux/install = $(Package/libdevmapper/install)
134
135 define Package/lvm2/install
136 $(INSTALL_DIR) $(1)/sbin
137 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lvm $(1)/sbin
138 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin
139 $(INSTALL_DIR) $(1)/etc/lvm
140 $(SED) '/^[[:space:]]*\(#\|$$$$\)/d; /cache_dir/s@.*@ cache_dir = "/tmp/lvm/cache"@' $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf
141 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf $(1)/etc/lvm/
142 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvmlocal.conf $(1)/etc/lvm/
143 $(INSTALL_DIR) $(1)/etc/lvm/profile
144 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/profile/* $(1)/etc/lvm/profile/
145 $(INSTALL_DIR) $(1)/lib/preinit
146 $(INSTALL_DATA) ./files/lvm2.preinit $(1)/lib/preinit/80_lvm2
147 $(INSTALL_DIR) $(1)/etc/init.d
148 $(INSTALL_BIN) ./files/lvm2.init $(1)/etc/init.d/lvm2
149 $(INSTALL_DIR) $(1)/etc/hotplug.d/block
150 $(INSTALL_DATA) ./files/lvm2.hotplug $(1)/etc/hotplug.d/block/20-lvm2
151 $(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l -exec $(CP) -a {} $(1)/sbin/ \;
152 endef
153
154 Package/lvm2-selinux/install = $(Package/lvm2/install)
155
156 define Package/lvm2/conffiles
157 /etc/lvm/lvm.conf
158 endef
159
160 Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles)
161
162 $(eval $(call BuildPackage,libdevmapper))
163 $(eval $(call BuildPackage,libdevmapper-selinux))
164 $(eval $(call BuildPackage,lvm2))
165 $(eval $(call BuildPackage,lvm2-selinux))