--- /usr/portage/sys-fs/lvm2/lvm2-2.02.98.ebuild 2013-05-23 18:31:30.000000000 +0400 +++ lvm2-2.02.98-r1.ebuild 2013-06-04 23:35:11.938516525 +0400 @@ -3,7 +3,7 @@ # $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/lvm2-2.02.98.ebuild,v 1.4 2013/05/23 14:14:42 axs Exp $ EAPI=5 -inherit eutils multilib toolchain-funcs autotools linux-info udev +inherit eutils multilib toolchain-funcs autotools linux-info systemd udev DESCRIPTION="User-land utilities for LVM2 (device-mapper) software." HOMEPAGE="http://sources.redhat.com/lvm2/" @@ -47,6 +47,14 @@ local CONFIG_CHECK="~SYSVIPC" use udev && local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n" check_extra_config + if use udev && linux_config_exists; then + local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) + if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then + ewarn "It's highly recommended to set an empty value" + ewarn "to the following kernel config option:" + ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" + fi + fi # 1. Genkernel no longer copies /sbin/lvm blindly. if use static; then elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with" @@ -57,25 +65,9 @@ src_prepare() { epatch "${FILESDIR}"/lvm.conf-2.02.67.patch - - # Should not be needed due to upstream re-arrangement of build - #epatch "${FILESDIR}"/${PN}-2.02.56-dmeventd.patch - # Should not be need with new upstream udev rules - #epatch "${FILESDIR}"/${PN}-2.02.56-device-mapper-export-format.patch - - # Merged upstream: - #epatch "${FILESDIR}"/${PN}-2.02.51-as-needed.patch - # Merged upstream: - #epatch "${FILESDIR}"/${PN}-2.02.48-fix-pkgconfig.patch - # Merged upstream: - #epatch "${FILESDIR}"/${PN}-2.02.51-fix-pvcreate.patch - # Fixed differently upstream: - #epatch "${FILESDIR}"/${PN}-2.02.51-dmsetup-selinux-linking-fix-r3.patch - epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch - epatch "${FILESDIR}"/lvm2-2.02.56-lvm2create_initrd.patch - # bug 318513 - merged upstream - #epatch "${FILESDIR}"/${PN}-2.02.64-dmeventd-libs.patch + epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch + # bug 301331 epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch # bug 330373 @@ -84,32 +76,19 @@ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # bug 332905 epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch - # bug 361429 - merged upstream in .85 - #epatch "${FILESDIR}"/${PN}-2.02.84-udev-pkgconfig.patch - - # Merged upstream - #epatch "${FILESDIR}"/${PN}-2.02.73-asneeded.patch epatch "${FILESDIR}"/${PN}-2.02.88-respect-cc.patch - # Upstream bug of LVM path - # Merged upstream - #epatch "${FILESDIR}"/${PN}-2.02.95-lvmpath.patch - - # Upstream patch for http://bugs.gentoo.org/424810 - # Merged upstream - #epatch "${FILESDIR}"/${PN}-2.02.95-udev185.patch - - # Upstream patch for https://bugs.gentoo.org/444328 - # Merged upstream - #epatch "${FILESDIR}"/${PN}-2.02.97-strict-aliasing.patch - # Fix calling AR directly with USE static, bug #444082 if use static ; then sed -i -e "s:\$(AR) rs \$@ \$(OBJECTS) lvmcmdlib.o lvm2cmd-static.o:$(tc-getAR) rs \$@ \$(OBJECTS) lvmcmdlib.o lvm2cmd-static.o:" \ tools/Makefile.in || die "sed failed" fi + # gentoo has lvm installed in /sbin + sed -i 's:/usr/sbin/lvm:/sbin/lvm:' \ + scripts/lvm2_activation_generator_systemd_red_hat.c || die "sed failed" + eautoreconf } @@ -117,12 +96,6 @@ local myconf local buildmode - myconf="${myconf} --enable-dmeventd" - myconf="${myconf} --enable-cmdlib" - myconf="${myconf} --enable-applib" - myconf="${myconf} --enable-fsadm" - myconf="${myconf} --enable-lvmetad" - # Most of this package does weird stuff. # The build options are tristate, and --without is NOT supported # options: 'none', 'internal', 'shared' @@ -181,17 +154,25 @@ use udev && udevdir="${EPREFIX}/$(udev_get_udevdir)/rules.d" econf \ - $(use_enable readline) \ - $(use_enable selinux) \ + --enable-dmeventd \ + --enable-cmdlib \ + --enable-applib \ + --enable-fsadm \ + --enable-lvmetad \ --enable-pkgconfig \ --with-confdir="${EPREFIX}/etc" \ --sbindir="${EPREFIX}/sbin" \ --with-staticdir="${EPREFIX}/sbin" \ --libdir="${EPREFIX}/$(get_libdir)" \ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --with-default-dm-run-dir=/run \ --with-default-run-dir=/run/lvm \ + --with-default-pid-dir=/run \ --with-default-locking-dir=/run/lock/lvm \ --with-dmeventd-path=/sbin/dmeventd \ + $(systemd_with_unitdir) \ + $(use_enable readline) \ + $(use_enable selinux) \ $(use_enable udev udev_rules) \ $(use_enable udev udev_sync) \ $(use_with udev udevdir "${udevdir}") \ @@ -207,11 +188,22 @@ einfo "Starting main build" emake AR="$(tc-getAR)" || die "compile fail" + + # when using systemd with lvmetad disabled + # a generator is needed for systemd to create /dev nodes + # note: this should be already build, but I am not sure + # if this is always, or just sometimes, better to force + emake -C scripts lvm2_activation_generator_systemd_red_hat } src_install() { emake DESTDIR="${D}" install + # install systemd files + emake DESTDIR="${D}" install_systemd_generators + emake DESTDIR="${D}" install_systemd_units + emake DESTDIR="${D}" install_tmpfiles_configuration + dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{conf,c,txt} newinitd "${FILESDIR}"/lvm.rc-2.02.95-r2 lvm newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.67-r2 lvm-monitoring @@ -270,6 +262,10 @@ elog "baselayout-2 users. If you are using baselayout-2, be sure to" elog "run: # rc-update add lvm boot" elog "Do NOT add it if you are still using baselayout-1." + + ewarn "Be sure to enabled use_lvmetad in /etc/lvm/lvm.conf" + ewarn "if you want to enable lvm autoactivation and metadata caching" + ewarn "More info can be found in lvmetad and lvm.conf man pages" } src_test() {