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