packages/utils/lvm2/Makefile
Daniel Golle 4db53132ba lvm2: update LVM2 to 2.03.22 and DM to 1.02.196
Remove downstream patch 004-missing-includes.patch which was merged
upstream in version 2.03.19

LVM2 changelog since version 2.03.17
version 2.03.22 - 02nd August 2023
==================================
  Fix pv_major/pv_minor report field types so they are integers, not strings.
  Add lvmdevices --delnotfound to delete entries for missing devices.
  Always use cachepool name for metadata backup LV for lvconvert --repair.
  Make metadata backup LVs read-only after pool's lvconvert --repair.
  Improve VDO and Thin support with lvmlockd.
  Handle 'lvextend --usepolicies' for pools for all activation variants.
  Fix memleak in vgchange autoactivation setup.
  Update py-compile building script.
  Support conversion from thick to fully provisioned thin LV.
  Cache/Thin-pool can use error and zero volumes for testing.
  Individual thin volume can be cached, but cannot take snapshot.
  Better internal support for handling error and zero target (for testing).
  Resize COW above trimmed maximal size is does not return error.
  Support parsing of vdo geometry format version 4.
  Add lvm.conf thin_restore and cache_restore settings.
  Handle multiple mounts while resizing volume with a FS.
  Handle leading/trailing spaces in sys_wwid and sys_serial used by deivce_id.
  Enhance lvm_import_vdo and use snapshot when converting VDO volume.
  Fix parsing of VDO metadata.
  Fix failing -S|--select for non-reporting cmds if using LV info/status fields.
  Allow snapshots of raid+integrity LV.
  Fix multisegment RAID1 allocator to prevent using single disk for more legs.

version 2.03.21 - 21st April 2023
=================================
  Fix activation of vdo-pool for with 0 length headers (converted pools).
  Avoid printing internal init messages when creation integration devices.
  Allow (write)cache over raid+integrity LV.

version 2.03.20 - 21st March 2023
=================================
  Fix segfault if using -S|--select with log/report_command_log=1 setting.
  Configure now fails when requested lvmlockd dependencies are missing.
  Add some configure Gentoo enhancements for static builds.

version 2.03.19 - 21st February 2023
====================================
  Configure supports --with-systemd-run executed from udev rules.
  Enhancement for build with MuslC systemd and non-bash system shells (dash).
  Do not reset SYSTEMD_READY variable in udev for PVs on MD and loop devices.
  Ensure udev is processing origin LV before its thick snapshots LVs.
  Fix and improve runtime memory size detection for VDO volumes.

version 2.03.18 - 22nd December 2022
====================================
  Fix issues reported by coverity scan.
  Fix warning for thin pool overprovisioning on lvextend (2.03.17).
  Add support for writecache metadata_only and pause_writeback settings.
  Fix missing error messages in lvmdbusd.

DM changelog since version 1.02.187:

Version 1.02.196 - 02nd August 2023
===================================

Version 1.02.195 - 21st April 2023
==================================

Version 1.02.193 - 21st March 2023
==================================

Version 1.02.191 - 21st February 2023
=====================================
  Improve parallel creation of /dev/mapper/control device node.
  Import previous ID_FS_* udev records in 13-dm-disk.rules for suspended DM dev.
  Remove NAME="mapper/control" rule from 10-dm.rules to avoid udev warnings.

Version 1.02.189 - 22nd December 2022
=====================================
  Improve 'dmsetup create' without given table line with new kernels.

(Version 1.02.188 is missing)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-08-05 12:15:55 +01:00

165 lines
4.7 KiB
Makefile

#
# Copyright (C) 2009-2010 Stefan Monnier
# Copyright (C) 2011-2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v3+.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=LVM2
PKG_VERSION:=2.03.22
PKG_VERSION_DM:=1.02.196
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2
PKG_HASH:=4c5a6923bd1ace7ce04474608a84937ce053ba91b1ace9f0b0017268e732dc7c
PKG_BUILD_DIR:=$(BUILD_DIR)/lvm2-$(BUILD_VARIANT)/$(PKG_NAME).$(PKG_VERSION)
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE:=GPL-2.0 LGPL-2.1
PKG_LICENSE_FILES:=COPYING COPYING.lib
PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm2
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libdevmapper/Default
SECTION:=libs
CATEGORY:=Libraries
TITLE:=The Linux Kernel Device Mapper userspace library
URL:=https://sourceware.org/dm/
VERSION:=$(PKG_VERSION_DM)
DEPENDS:=+kmod-dm +libpthread +libuuid +librt +libblkid
endef
define Package/libdevmapper
$(call Package/libdevmapper/Default)
VARIANT := normal
endef
define Package/libdevmapper-selinux
$(call Package/libdevmapper/Default)
VARIANT := selinux
DEPENDS += +libselinux
PROVIDES := libdevmapper
endef
define Package/libdevmapper/description
The device-mapper is a component of the 2.6 linux kernel that supports logical
volume management. It is required by LVM2 and EVMS.
endef
define Package/libdevmapper-selinux/description
$(call Package/libdevmapper/description)
This variant supports SELinux
endef
define Package/lvm2/default
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Disc
TITLE:=The Linux Logical Volume Manager
URL:=https://sourceware.org/lvm2/
DEPENDS:=+libreadline +libncurses +libaio
endef
define Package/lvm2
$(call Package/lvm2/default)
VARIANT := normal
DEPENDS += +libdevmapper
endef
define Package/lvm2-selinux
$(call Package/lvm2/default)
VARIANT := selinux
DEPENDS += +libdevmapper-selinux
PROVIDES := lvm2
endef
define Package/lvm2/description
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.
endef
define Package/lvm2-selinux/description
$(call Package/lvm2/description)
This variant supports SELinux
endef
CONFIGURE_ARGS += \
--disable-o_direct \
--with-default-pid-dir=/var/run \
--with-default-dm-run-dir=/var/run \
--with-default-run-dir=/var/run/lvm \
--with-default-locking-dir=/var/lock/lvm \
--$(if $(findstring selinux,$(BUILD_VARIANT)),en,dis)able-selinux
ifneq ($(shell /bin/sh -c "echo -n 'X'"),X)
MAKE_SHELL = SHELL=/bin/bash
endif
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
DESTDIR="$(PKG_INSTALL_DIR)" \
$(MAKE_SHELL) \
install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libdevmapper.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so* $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_BUILD_DIR)/libdm/libdevmapper.pc $(1)/usr/lib/pkgconfig
endef
define Package/libdevmapper/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so.* $(1)/usr/lib
endef
Package/libdevmapper-selinux/install = $(Package/libdevmapper/install)
define Package/lvm2/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lvm $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin
$(INSTALL_DIR) $(1)/etc/lvm
$(SED) '/^[[:space:]]*\(#\|$$$$\)/d; /cache_dir/s@.*@ cache_dir = "/tmp/lvm/cache"@' $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf $(1)/etc/lvm/
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvmlocal.conf $(1)/etc/lvm/
$(INSTALL_DIR) $(1)/etc/lvm/profile
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/profile/* $(1)/etc/lvm/profile/
$(INSTALL_DIR) $(1)/lib/preinit
$(INSTALL_DATA) ./files/lvm2.preinit $(1)/lib/preinit/80_lvm2
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/lvm2.init $(1)/etc/init.d/lvm2
$(INSTALL_DIR) $(1)/etc/hotplug.d/block
$(INSTALL_DATA) ./files/lvm2.hotplug $(1)/etc/hotplug.d/block/20-lvm2
$(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l -exec $(CP) -a {} $(1)/sbin/ \;
endef
Package/lvm2-selinux/install = $(Package/lvm2/install)
define Package/lvm2/conffiles
/etc/lvm/lvm.conf
endef
Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles)
$(eval $(call BuildPackage,libdevmapper))
$(eval $(call BuildPackage,libdevmapper-selinux))
$(eval $(call BuildPackage,lvm2))
$(eval $(call BuildPackage,lvm2-selinux))