kde-plasma/kwallet-pam: Improve pkg_postinst
[gentoo.git] / kde-plasma / kwallet-pam / kwallet-pam-5.6.2-r1.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=6
6
7 KDE_AUTODEPS="false"
8 inherit kde5 multibuild multilib
9
10 DESCRIPTION="KWallet PAM module to not enter password again"
11 LICENSE="LGPL-2.1"
12 KEYWORDS="~amd64 ~arm ~x86"
13 IUSE="+oldwallet"
14
15 COMMON_DEPEND="
16         dev-libs/libgcrypt:0=
17         virtual/pam
18 "
19 DEPEND="${COMMON_DEPEND}
20         $(add_frameworks_dep extra-cmake-modules)
21         $(add_qt_dep qtcore)
22 "
23 RDEPEND="${COMMON_DEPEND}
24         !kde-apps/kwalletd-pam
25         net-misc/socat
26 "
27
28 pkg_setup() {
29         kde5_pkg_setup
30         MULTIBUILD_VARIANTS=( kf5 $(usev oldwallet) )
31 }
32
33 src_configure() {
34         myconfigure() {
35                 local mycmakeargs=(
36                         -DCMAKE_INSTALL_LIBDIR="/$(get_libdir)"
37                 )
38                 [[ ${MULTIBUILD_VARIANT} = oldwallet ]] && mycmakeargs+=( -DKWALLET4=1 )
39
40                 kde5_src_configure
41         }
42         multibuild_foreach_variant myconfigure
43 }
44
45 src_compile() {
46         multibuild_foreach_variant kde5_src_compile
47 }
48
49 src_install() {
50         multibuild_foreach_variant kde5_src_install
51 }
52
53 pkg_postinst() {
54         check_dm() {
55                 local good
56                 if [[ -e "${ROOT}${2}" ]] ; then
57                         if grep -Eq "auth\s+optional\s+pam_kwallet5.so" "${ROOT}${2}" && \
58                                 grep -Eq "session\s+optional\s+pam_kwallet5.so" "${ROOT}${2}" ; then
59                                 good=true
60                         fi
61                         if use oldwallet ; then
62                                 if ! grep -Eq "auth\s+optional\s+pam_kwallet.so" "${ROOT}${2}" || \
63                                         ! grep -Eq "session\s+optional\s+pam_kwallet.so" "${ROOT}${2}" ; then
64                                         good=false
65                                 fi
66                         fi
67                 fi
68                 [[ "${good}" = true ]] && \
69                         elog "    ${1} - ${2} ...GOOD" || \
70                         ewarn "    ${1} - ${2} ...BAD"
71         }
72         elog
73         elog "This package enables auto-unlocking of kde-frameworks/kwallet:5."
74         use oldwallet && elog "You have also selected support for legacy kde-apps/kwalletd:4."
75         elog "List of things to make it work:"
76         elog "1.  Use standard blowfish encryption instead of GPG"
77         elog "2.  Use same password for login and kwallet"
78         elog "3.  A display manager with support for PAM"
79         elog "4.a Have the following lines in the display manager's pam.d file:"
80         elog "    -auth        optional        pam_kwallet5.so"
81         elog "    -session     optional        pam_kwallet5.so auto_start"
82         if use oldwallet ; then
83                 elog "    -auth        optional        pam_kwallet.so kdehome=.kde4"
84                 elog "    -session     optional        pam_kwallet.so"
85         fi
86         elog "4.b Checking installed DMs..."
87         has_version "x11-misc/sddm" && check_dm "SDDM" "/etc/pam.d/sddm"
88         has_version "x11-misc/lightdm" && check_dm "LightDM" "/etc/pam.d/lightdm"
89         has_version "kde-base/kdm" && check_dm "KDM" "/etc/pam.d/kde"
90         elog
91 }