Gentoo Archives: gentoo-commits

From: Louis Sautier <sbraz@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-irc/znc/
Date: Sun, 31 Mar 2019 22:57:10
Message-Id: 1554072994.a9cc051e15e39e75565eb2acf397f8eaad21cb0f.sbraz@gentoo
1 commit: a9cc051e15e39e75565eb2acf397f8eaad21cb0f
2 Author: Louis Sautier <sbraz <AT> gentoo <DOT> org>
3 AuthorDate: Sun Mar 31 22:55:10 2019 +0000
4 Commit: Louis Sautier <sbraz <AT> gentoo <DOT> org>
5 CommitDate: Sun Mar 31 22:56:34 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a9cc051e
7
8 net-irc/znc: bump to 1.7.3, fixes CVE-2019-9917
9
10 Bug: https://bugs.gentoo.org/681864
11 Package-Manager: Portage-2.3.62, Repoman-2.3.12
12 Signed-off-by: Louis Sautier <sbraz <AT> gentoo.org>
13
14 net-irc/znc/Manifest | 1 +
15 net-irc/znc/znc-1.7.3.ebuild | 182 +++++++++++++++++++++++++++++++++++++++++++
16 2 files changed, 183 insertions(+)
17
18 diff --git a/net-irc/znc/Manifest b/net-irc/znc/Manifest
19 index 5c3a7e5e7aa..a57a86eff9b 100644
20 --- a/net-irc/znc/Manifest
21 +++ b/net-irc/znc/Manifest
22 @@ -2,3 +2,4 @@ DIST gtest-1.8.1.tar.gz 992298 BLAKE2B 40ef3417fe424205c0617f07207347ce671ac8760
23 DIST gtest-ba96d0b1161f540656efdaed035b3c062b60e006.tar.gz 987370 BLAKE2B fcedfe559c4c93166962900117dc492da3cbb99165c30766c39131c20e3b41f057a31a8cb631beaca829c1e9966e90cbc37469ba56a5fc15a2bea86cbe401a63 SHA512 ce78098f973b45f4a177db387c42a56d5ea34407a2af278760b850c326e8450760a58991d62a5408f5df79f89fefd10fee71745b7e8669b2a6f74fa63a259600
24 DIST znc-1.7.1.tar.gz 2041669 BLAKE2B 57ead136e28b0fc4a875802ef89ef004213789e68d19ceeab15c6fac6fe51ea51618764c484ea618fc6359d9c15cc7ffcf5529642d730b9217a4f127e92d9ae6 SHA512 907068fb0828091026d440145b70ca76109302f13c18d94f772660192434287f209a06a52da1dd39726b9a38735b3cea9afbd062eb6def4cd428bb73c562a902
25 DIST znc-1.7.2.tar.gz 2083306 BLAKE2B 907581df536d9bab15964f6fcecbbf660403c39368b984ab1d2957bd43c4a90ca0694844b41786dab5495a4f4dccd675eaa54189782d47683e013d1faf9cc368 SHA512 fcc67bf676e066db64d62584ff8ecfd63280b3237e88dcbe18ab0b78a9b5f4dc202b589876b6fc14c6092ca5509937bc170a54fba44df2aeb1645cca02afe577
26 +DIST znc-1.7.3.tar.gz 2084575 BLAKE2B 4d8f76abef8bf2c5f96d9bd04716cd2debae2b2fcd3b8688aa715af6ef09e60c2aac203c5c7b32d2f4d56730f30dbbe9abd5eeec4f07e7580900dcb1cd164530 SHA512 4cd63be2cb3bc1e3950f38984b128c6511bd1b9fc01a00d51cfcdc46826c2dedad120d6ed8e30d9c400909e33d39b2b14579fb40ee1e3508b7f3a07eff3a15d8
27
28 diff --git a/net-irc/znc/znc-1.7.3.ebuild b/net-irc/znc/znc-1.7.3.ebuild
29 new file mode 100644
30 index 00000000000..b8d5eb3df8f
31 --- /dev/null
32 +++ b/net-irc/znc/znc-1.7.3.ebuild
33 @@ -0,0 +1,182 @@
34 +# Copyright 1999-2019 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=7
38 +
39 +PYTHON_COMPAT=( python3_{4,5,6,7} )
40 +
41 +inherit cmake-utils python-single-r1 readme.gentoo-r1 systemd user
42 +
43 +GTEST_VER="1.8.1"
44 +GTEST_URL="https://github.com/google/googletest/archive/${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz"
45 +DESCRIPTION="An advanced IRC Bouncer"
46 +
47 +if [[ ${PV} == *9999* ]]; then
48 + inherit git-r3
49 + EGIT_REPO_URI=${EGIT_REPO_URI:-"https://github.com/znc/znc.git"}
50 + SRC_URI=""
51 +else
52 + MY_PV=${PV/_/-}
53 + MY_P=${PN}-${MY_PV}
54 + SRC_URI="
55 + https://znc.in/releases/archive/${MY_P}.tar.gz
56 + test? ( ${GTEST_URL} )
57 + "
58 + KEYWORDS="~amd64 ~arm ~x86"
59 + S=${WORKDIR}/${MY_P}
60 +fi
61 +
62 +HOMEPAGE="https://znc.in"
63 +LICENSE="Apache-2.0"
64 +SLOT="0"
65 +IUSE="+ipv6 +icu libressl nls perl python +ssl sasl tcl test +zlib"
66 +
67 +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} icu )"
68 +
69 +RDEPEND="
70 + icu? ( dev-libs/icu:= )
71 + nls? ( dev-libs/boost:=[nls] )
72 + perl? ( >=dev-lang/perl-5.10:= )
73 + python? ( ${PYTHON_DEPS} )
74 + sasl? ( >=dev-libs/cyrus-sasl-2 )
75 + ssl? (
76 + !libressl? ( dev-libs/openssl:0= )
77 + libressl? ( dev-libs/libressl:0= )
78 + )
79 + tcl? ( dev-lang/tcl:0= )
80 + zlib? ( sys-libs/zlib:0= )
81 +"
82 +DEPEND="
83 + ${RDEPEND}
84 + virtual/pkgconfig
85 + nls? ( sys-devel/gettext )
86 + perl? ( >=dev-lang/swig-3.0.0 )
87 + python? ( >=dev-lang/swig-3.0.0 )
88 + test? ( dev-qt/qtnetwork:5 )
89 +"
90 +
91 +PATCHES=( "${FILESDIR}"/${PN}-1.7.1-inttest-dir.patch )
92 +
93 +pkg_setup() {
94 + if use python; then
95 + python-single-r1_pkg_setup
96 + fi
97 +
98 + enewgroup ${PN}
99 + enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}
100 + # The home directory was previously set to /dev/null
101 + # This caused a bug with the systemd unit
102 + # https://bugs.gentoo.org/521916
103 + esethome ${PN} /var/lib/${PN}
104 +}
105 +
106 +src_prepare() {
107 + # Let SWIG rebuild modperl/modpython to make user patching easier.
108 + if [[ ${PV} != *9999* ]]; then
109 + rm modules/modperl/generated.tar.gz || die
110 + rm modules/modpython/generated.tar.gz || die
111 + fi
112 +
113 + sed -i -e "s|DZNC_BIN_DIR:path=|DZNC_BIN_DIR:path=${T}/inttest|" \
114 + test/CMakeLists.txt || die
115 +
116 + cmake-utils_src_prepare
117 +}
118 +
119 +src_configure() {
120 + local mycmakeargs=(
121 + -DWANT_SYSTEMD=yes # Causes -DSYSTEMD_DIR to be used.
122 + -DSYSTEMD_DIR="$(systemd_get_systemunitdir)"
123 + -DWANT_ICU="$(usex icu)"
124 + -DWANT_IPV6="$(usex ipv6)"
125 + -DWANT_I18N="$(usex nls)"
126 + -DWANT_PERL="$(usex perl)"
127 + -DWANT_PYTHON="$(usex python)"
128 + -DWANT_CYRUS="$(usex sasl)"
129 + -DWANT_OPENSSL="$(usex ssl)"
130 + -DWANT_TCL="$(usex tcl)"
131 + -DWANT_ZLIB="$(usex zlib)"
132 + )
133 +
134 + if [[ ${PV} != *9999* ]] && use test; then
135 + export GTEST_ROOT="${WORKDIR}/googletest-release-${GTEST_VER}/googletest"
136 + export GMOCK_ROOT="${WORKDIR}/googletest-release-${GTEST_VER}/googlemock"
137 + fi
138 +
139 + cmake-utils_src_configure
140 +}
141 +
142 +src_test() {
143 + cmake-utils_src_make unittest
144 + if has network-sandbox ${FEATURES}; then
145 + DESTDIR="${T}/inttest" cmake-utils_src_make install
146 + local filter='-'
147 + if ! use perl; then
148 + filter="${filter}:ZNCTest.Modperl*"
149 + fi
150 + if ! use python; then
151 + filter="${filter}:ZNCTest.Modpython*"
152 + fi
153 + # CMAKE_PREFIX_PATH and CXXFLAGS are needed for znc-buildmod
154 + # invocations from inside the test
155 + GTEST_FILTER="${filter}" ZNC_UNUSUAL_ROOT="${T}/inttest" \
156 + CMAKE_PREFIX_PATH="${T}/inttest/usr/share/znc/cmake" \
157 + CXXFLAGS="${CXXFLAGS} -isystem ${T}/inttest/usr/include" \
158 + cmake-utils_src_make inttest
159 + else
160 + # TODO: don't require sandbox after
161 + # https://github.com/znc/znc/pull/1363 is implemented
162 + ewarn "FEATURES=-network-sandbox; skipping integration tests which"
163 + ewarn "temporary open local ports."
164 + fi
165 +}
166 +
167 +src_install() {
168 + cmake-utils_src_install
169 +
170 + dodoc NOTICE
171 + newinitd "${FILESDIR}"/znc.initd-r2 znc
172 + newconfd "${FILESDIR}"/znc.confd-r1 znc
173 +
174 + DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r1") || die
175 + DISABLE_AUTOFORMATTING=1
176 + readme.gentoo_create_doc
177 +}
178 +
179 +pkg_postinst() {
180 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
181 + # This is a new installation
182 + readme.gentoo_print_elog
183 + fi
184 +
185 + if [[ -d "${EROOT%/}"/etc/znc ]]; then
186 + ewarn "${EROOT%/}/etc/znc exists on your system."
187 + ewarn "Due to the nature of the contents of that folder,"
188 + ewarn "we have changed the default configuration to use"
189 + ewarn " ${EROOT%/}/var/lib/znc"
190 + ewarn "please move ${EROOT%/}/etc/znc to ${EROOT%/}/var/lib/znc"
191 + ewarn "or adjust your service configuration."
192 + fi
193 +}
194 +
195 +pkg_config() {
196 + if [[ -e "${EROOT%/}/var/lib/znc" ]]; then
197 + ewarn "${EROOT%/}/var/lib/znc already exists, aborting to avoid damaging"
198 + ewarn "any existing configuration. If you are sure you want"
199 + ewarn "to generate a new configuration, remove the folder"
200 + ewarn "and try again."
201 + else
202 + einfo "Press enter to interactively create a new configuration file for znc."
203 + einfo "To abort, press Control-C"
204 + read
205 + mkdir -p "${EROOT%/}/var/lib/znc" || die
206 + chown -R ${PN}:${PN} "${EROOT%/}/var/lib/znc" ||
207 + die "Setting permissions failed"
208 + start-stop-daemon --start --user ${PN}:${PN} --env ZNC_NO_LAUNCH_AFTER_MAKECONF=1 \
209 + "${EROOT%/}"/usr/bin/znc -- --makeconf --datadir "${EROOT%/}/var/lib/znc" ||
210 + die "Config failed"
211 + einfo
212 + einfo "You can now start the znc service using the init system of your choice."
213 + einfo "Don't forget to enable it if you want to use znc at boot."
214 + fi
215 +}