summaryrefslogtreecommitdiff
path: root/net-im/spectrum2/spectrum2-2.2.1_p20260727-r1.ebuild
blob: 070cf7bf30383aef039b482b490c19632cc70359 (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake eapi9-ver systemd tmpfiles

DESCRIPTION="An open source instant messaging transport"
HOMEPAGE="https://spectrum.im"
if [[ ${PV} == *_p* ]]; then
	COMMIT="e77233cd1c6dc93b52b88be1b6ebe2b77713d1db"
	COMMIT_DATE="2026-07-27"
	SRC_URI="https://github.com/SpectrumIM/${PN}/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz"
	S="${WORKDIR}/${PN}-${COMMIT}"
else
	SRC_URI="https://github.com/SpectrumIM/spectrum2/archive/${PV}.tar.gz -> ${P}.tar.gz"
fi

LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc frotz irc mysql postgres purple sms +sqlite test xmpp"
REQUIRED_USE="
	|| ( mysql postgres sqlite )
	test? ( irc )
"
RESTRICT="!test? ( test )"

RDEPEND="
	acct-group/spectrum
	acct-user/spectrum
	!dev-cpp/fbthrift
	dev-libs/boost:=[nls]
	dev-libs/expat
	dev-libs/libev:=
	>=dev-libs/log4cxx-1.0.0:=
	dev-libs/jsoncpp:=
	dev-libs/openssl:=
	dev-libs/popt
	dev-libs/protobuf:=
	net-dns/libidn:=
	>=net-im/swift-4.0.2-r2:=
	net-misc/curl
	virtual/zlib:=
	frotz? ( games-engines/frotz )
	irc? (
		dev-qt/qtbase:6[network]
		net-im/libcommuni
	)
	mysql? (
		|| (
			dev-db/mariadb-connector-c
			dev-db/mysql-connector-c
		)
	)
	postgres? ( dev-libs/libpqxx:= )
	purple? (
		dev-libs/glib
		net-im/pidgin:=
	)
	sms? ( app-mobilephone/smstools )
	sqlite? ( dev-db/sqlite:3 )
"

DEPEND="
	${RDEPEND}
	doc? ( app-text/doxygen )
	test? ( dev-util/cppunit )
"

PATCHES=(
	"${FILESDIR}"/${PN}-2.2.1-boost-1.87.patch
	"${FILESDIR}"/${PN}-2.2.1-boost-1.89.patch
	"${FILESDIR}"/${PN}-2.2.1-cmake.patch
	"${FILESDIR}"/${PN}-2.2.1-findjsoncpp.patch
	"${FILESDIR}"/${PN}-2.2.1-cmake-ld-typo.patch
)

src_prepare() {
	cmake_src_prepare

	# Respect users LDFLAGS
	sed -i -e "s/-Wl,--export-dynamic/& ${LDFLAGS}/" spectrum/src/CMakeLists.txt || die
}

src_configure() {
	local mycmakeargs=(
		-DCMAKE_INSTALL_LOCALSTATEDIR="${EPREFIX}/var"
		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
		-DENABLE_DOCS="$(usex doc)"
		-DENABLE_FROTZ="$(usex frotz)"
		-DENABLE_IRC="$(usex irc)"
		$(usex irc '-DENABLE_QT6=ON' '')
		-DENABLE_MYSQL="$(usex mysql)"
		-DENABLE_PQXX="$(usex postgres)"
		-DENABLE_PURPLE="$(usex purple)"
		-DENABLE_SMSTOOLS3="$(usex sms)"
		-DENABLE_SQLITE3="$(usex sqlite)"
		-DENABLE_TESTS="$(usex test)"
		-DENABLE_XMPP="$(usex xmpp)"
		-DENABLE_SLACK_FRONTEND=OFF
	)

	cmake_src_configure
}

src_test() {
	cd "${BUILD_DIR}/tests/libtransport" || die
	./libtransport_test || die
}

src_install() {
	cmake_src_install

	diropts -o spectrum -g spectrum
	keepdir /var/log/spectrum2 /var/lib/spectrum2
	diropts

	newinitd "${FILESDIR}"/spectrum2.initd spectrum2
	systemd_newunit "${FILESDIR}"/spectrum2.service spectrum2.service
	newtmpfiles "${FILESDIR}"/spectrum2.tmpfiles-r1 spectrum2.conf

	einstalldocs
}

pkg_postinst() {
	tmpfiles_process spectrum2.conf

	if ver_replacing -lt 2.2.0; then
		ewarn "Starting with Release 2.2.0, the path for spectrum2"
		ewarn "executable helper files has been changed from '/usr/bin'"
		ewarn "to '/usr/libexec'. Please update your config files!"
	fi
}