summaryrefslogtreecommitdiff
path: root/xfce-extra/xfce4-screensaver/xfce4-screensaver-4.20.2.ebuild
blob: 77b2f3fcdf872c08da8acf895c0a9958e3b58a79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit meson xdg-utils

DESCRIPTION="Screen saver and locker (port of MATE screensaver)"
HOMEPAGE="
	https://docs.xfce.org/apps/screensaver/start
	https://gitlab.xfce.org/apps/xfce4-screensaver/
"
SRC_URI="
	https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.xz
"

LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
KEYWORDS="amd64 arm ~arm64 ~loong ppc ppc64 ~riscv x86"
IUSE="elogind +locking pam systemd wayland X"
REQUIRED_USE="
	|| ( wayland X )
"

DEPEND="
	>=dev-libs/dbus-glib-0.30
	>=dev-libs/glib-2.50.0:2
	>=x11-libs/gtk+-3.24.0:3[wayland?,X?]
	>=xfce-base/garcon-4.16.0:=
	>=xfce-base/libxfce4ui-4.18.4:=
	>=xfce-base/libxfce4util-4.16.0:=
	>=xfce-base/xfconf-4.16.0:=
	wayland? (
		>=dev-libs/wayland-1.15
		gui-libs/libwlembed:=[gtk]
		>=xfce-base/libxfce4windowing-4.19.2:=
	)
	X? (
		>=x11-libs/libwnck-3.20:3
		>=x11-libs/libX11-1.6.7:=
		>=x11-libs/libXScrnSaver-1.2.3:=
		>=x11-libs/libXext-1.0.0:=
		>=x11-libs/libxklavier-5.2:=
	)
	elogind? ( sys-auth/elogind )
	locking? (
		pam? ( sys-libs/pam )
	)
	systemd? ( sys-apps/systemd:= )
"
RDEPEND="
	${DEPEND}
"
DEPEND+="
	wayland? (
		>=dev-libs/wayland-protocols-1.20
	)
"
BDEPEND="
	dev-util/glib-utils
	sys-apps/dbus
	>=sys-devel/gettext-0.19.8
	virtual/pkgconfig
"

src_configure() {
	local auth_scheme session_manager

	if use locking; then
		if use pam; then
			auth_scheme=pam
		else
			auth_scheme=pwent
		fi
	else
		auth_scheme=none
	fi
	if use systemd; then
		session_manager=systemd
	elif use elogind; then
		session_manager=elogind
	else
		session_manager=none
	fi

	local emesonargs=(
		-Dauthentication-scheme=${auth_scheme}
		-Dsession-manager=${session_manager}
		$(meson_feature X x11)
		$(meson_feature wayland)
		-Dxscreensaverhackdir="${EPREFIX}/usr/$(get_libdir)/misc/xscreensaver"
		-Dkbd-layout-indicator=true
		# disable docbook for now
		-Ddocs=disabled
		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
		# used only with -Dauthentication-scheme=pam
		-Dpam-auth-type=system
		# used only with -Dauthentication-scheme=pwent
		-Dshadow=true
	)

	meson_src_configure
}

pkg_postinst() {
	xdg_icon_cache_update
}

pkg_postrm() {
	xdg_icon_cache_update
}