summaryrefslogtreecommitdiff
blob: fe80e763701ce6750a66735ffe1001e99f20f241 (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
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop savedconfig toolchain-funcs xdg

DESCRIPTION="A simple web browser based on WebKit/GTK+"
HOMEPAGE="https://surf.suckless.org/"

if [[ ${PV} == "9999" ]] ; then
	inherit git-r3
	EGIT_REPO_URI="https://git.suckless.org/surf"
	EGIT_BRANCH="surf-webkit2"
else
	SRC_URI="https://dl.suckless.org/${PN}/${P}.tar.gz"
	KEYWORDS="amd64 ~riscv x86"
fi

LICENSE="MIT"
SLOT="0"
IUSE="tabbed"

DEPEND="
	app-crypt/gcr:0=[gtk]
	dev-libs/glib:2
	net-libs/webkit-gtk:4.1=
	x11-libs/gtk+:3
	x11-libs/libX11
"
RDEPEND="${DEPEND}
	!sci-chemistry/surf
	!savedconfig? (
		net-misc/curl
		x11-apps/xprop
		x11-misc/dmenu
		x11-terms/st
	)
	tabbed? ( x11-misc/tabbed )
"
BDEPEND="
	virtual/pkgconfig
"

PATCHES=(
	"${FILESDIR}/${P}-gentoo-webkit-4.1.patch"
)

pkg_setup() {
	if ! use savedconfig; then
		elog "The default config.h assumes you have"
		elog " net-misc/curl"
		elog " x11-terms/st"
		elog "installed to support the download function."
		elog "Without those, downloads will fail (gracefully)."
		elog "You can fix this by:"
		elog "1) Installing these packages, or"
		elog "2) Setting USE=savedconfig and changing config.h accordingly."
	fi
}

src_prepare() {
	default

	restore_config config.h

	tc-export CC PKG_CONFIG
}

src_install() {
	default

	if use tabbed; then
		dobin surf-open.sh
	fi

	save_config config.h

	newicon "${S}/${PN}.png" "${PN}.png"

	local mime_types="text/html;text/xml;application/xhtml+xml;"
	mime_types+="x-scheme-handler/http;x-scheme-handler/https;"
	make_desktop_entry \
		"surf %u" \
		"Surf" \
		"surf" \
		"Network;WebBrowser" \
		"MimeType=${mime_types}\nStartupWMClass=surf"
}

pkg_postinst() {
	xdg_desktop_database_update
	xdg_icon_cache_update
}

pkg_postrm() {
	xdg_desktop_database_update
	xdg_icon_cache_update
}