# Maintainer: Eric Bélanger <eric@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>

_pkgname=lvm2

pkgbase=lvm2-nosystemd
pkgname=('lvm2-nosystemd' 'device-mapper-nosystemd')
pkgver=2.02.171
pkgrel=1
arch=('i686' 'x86_64')
url="http://sourceware.org/lvm2/"
license=('GPL2' 'LGPL2.1')
makedepends=('eudev' 'thin-provisioning-tools')
groups=('base-nosystemd')
source=(https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2.${pkgver}.tgz #{,.asc}
        lvm2_install
        lvm2_hook
        11-dm-initramfs.rules)
sha256sums=('b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964'
            'd3097296bdfd9912dbef6ac78b908f7017b0a668a5347f0811f1c3aaacdca0cf'
            '97d7c92e4954bc0108e7cd183b2eb5fe7ecc97e6f56369669e6537cb6ed45d80'
            'e10f24b57582d6e2da71f7c80732a62e0ee2e3b867fe84591ccdb53e80fa92e0')
# validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17')

prepare() {
  cd LVM2.${pkgver}

  # enable lvmetad
  sed -i 's|use_lvmetad = 0|use_lvmetad = 1|' conf/example.conf.in

}

build() {
    local _args=(
        --prefix=/usr
        --sysconfdir=/etc
        --localstatedir=/var
        --sbindir=/usr/bin
        --enable-pkgconfig
        --enable-readline
        --enable-dmeventd
        --enable-cmdlib
        --enable-applib
        --enable-udev_sync
        --enable-udev_rules
        --enable-udev-rule-exec-detection
        --enable-lvmetad
        --with-thin=internal
        --with-cache=internal
        --disable-udev-systemd-background-jobs
        --with-udev-prefix=/usr
        --with-udevdir=/usr/lib/udev/rules.d
        --with-systemdsystemunitdir=no
        --with-tmpfilesdir=no
        --with-default-locking-dir=/run/lock/lvm
        --with-default-pid-dir=/run
        --with-default-dm-run-dir=/run
        --with-default-run-dir=/run/lvm
        --with-lvmetad-pidfile=/run
        --with-dmeventd-path=/usr/bin
        )

    cp -a LVM2.${pkgver} LVM2-initramfs

    cd LVM2.${pkgver}

    ./configure ${_args[@]}
    make

    # Build legacy udev rule for initramfs
    cd ../LVM2-initramfs
    ./configure ${_args[@]}

    cd udev
    make 69-dm-lvm-metad.rules
}

package_device-mapper-nosystemd() {
  pkgdesc="Device mapper userspace library and tools"
  url="http://sourceware.org/dm/"
  depends=('glibc' 'eudev')
  provides=("device-mapper=${pkgver}")
  conflicts=("device-mapper")

  cd LVM2.${pkgver}
  make DESTDIR="${pkgdir}" install_device-mapper
  # extra udev rule for device-mapper in initramfs
  install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/usr/lib/initcpio/udev/11-dm-initramfs.rules"
  # Install dmeventd socket and service
  make DESTDIR="${pkgdir}" install_systemd_units
  rm -f "${pkgdir}/usr/lib/systemd/system/"{blk-availability.service,lvm2-*}
}

package_lvm2-nosystemd() {
  pkgdesc="Logical Volume Manager 2 utilities"
  depends=('bash' "device-mapper-nosystemd>=${pkgver}" 'eudev' 'readline' 'thin-provisioning-tools')
  provides=("lvm2=${pkgver}")
  conflicts=('lvm' 'mkinitcpio<0.7' 'lvm2')
  backup=('etc/lvm/lvm.conf'
    'etc/lvm/lvmlocal.conf')
  options=('!makeflags')
  install=lvm2.install

  cd LVM2.${pkgver}
  make DESTDIR="${pkgdir}" install_lvm2
  # install applib
  make -C liblvm DESTDIR="${pkgdir}" install
  # /etc directories
  install -d "${pkgdir}"/etc/lvm/{archive,backup}
  # mkinitcpio hook
  install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/usr/lib/initcpio/hooks/lvm2"
  install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2"

  # extra udev rule for lvmetad in non-systemd initramfs
  install -D -m644 "${srcdir}/LVM2-initramfs/udev/69-dm-lvm-metad.rules" "${pkgdir}/usr/lib/initcpio/udev/69-dm-lvm-metad.rules"

  rm -f "${pkgdir}/usr/lib/systemd/system/"dm-*
}
