Gentoo Archives: gentoo-commits

From: Florian Schmaus <flow@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/tigervnc/
Date: Sun, 03 Apr 2022 10:02:46
Message-Id: 1648979782.7354726a8775617b6f82431f7f46aae7e5c84a8c.flow@gentoo
1 commit: 7354726a8775617b6f82431f7f46aae7e5c84a8c
2 Author: Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com>
3 AuthorDate: Sat Apr 2 06:46:43 2022 +0000
4 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org>
5 CommitDate: Sun Apr 3 09:56:22 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7354726a
7
8 net-misc/tigervnc: Install vncserver in $PATH
9
10 Closes: https://bugs.gentoo.org/836620
11 Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com>
12 Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
13
14 net-misc/tigervnc/tigervnc-1.12.0-r5.ebuild | 207 ++++++++++++++++++++++++++++
15 1 file changed, 207 insertions(+)
16
17 diff --git a/net-misc/tigervnc/tigervnc-1.12.0-r5.ebuild b/net-misc/tigervnc/tigervnc-1.12.0-r5.ebuild
18 new file mode 100644
19 index 000000000000..9665552943b5
20 --- /dev/null
21 +++ b/net-misc/tigervnc/tigervnc-1.12.0-r5.ebuild
22 @@ -0,0 +1,207 @@
23 +# Copyright 1999-2022 Gentoo Authors
24 +# Distributed under the terms of the GNU General Public License v2
25 +
26 +EAPI=7
27 +
28 +CMAKE_IN_SOURCE_BUILD=1
29 +inherit autotools cmake flag-o-matic java-pkg-opt-2 optfeature systemd xdg
30 +
31 +XSERVER_VERSION="21.1.1"
32 +
33 +DESCRIPTION="Remote desktop viewer display system"
34 +HOMEPAGE="http://www.tigervnc.org"
35 +SRC_URI="https://github.com/TigerVNC/tigervnc/archive/v${PV}.tar.gz -> ${P}.tar.gz
36 + server? (
37 + ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${XSERVER_VERSION}.tar.xz
38 + https://github.com/TigerVNC/tigervnc/commit/0c5a2b2e7759c2829c07186cfce4d24aa9b5274e.patch -> ${P}-xserver-21.patch
39 + )"
40 +
41 +LICENSE="GPL-2"
42 +SLOT="0"
43 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
44 +IUSE="dri3 +drm gnutls java nls +opengl server xinerama +xorgmodule"
45 +REQUIRED_USE="dri3? ( drm )"
46 +
47 +CDEPEND="
48 + virtual/jpeg:0
49 + sys-libs/zlib:=
50 + x11-libs/fltk:1
51 + x11-libs/libX11
52 + x11-libs/libXext
53 + x11-libs/libXi
54 + x11-libs/libXrandr
55 + x11-libs/libXrender
56 + x11-libs/pixman
57 + gnutls? ( net-libs/gnutls:= )
58 + nls? ( virtual/libiconv )
59 + server? (
60 + dev-libs/libbsd
61 + dev-libs/openssl:0=
62 + sys-libs/pam
63 + x11-libs/libXau
64 + x11-libs/libXdamage
65 + x11-libs/libXdmcp
66 + x11-libs/libXfixes
67 + x11-libs/libXfont2
68 + x11-libs/libXtst
69 + x11-libs/pixman
70 + x11-libs/xtrans
71 + x11-apps/xauth
72 + x11-apps/xinit
73 + x11-apps/xkbcomp
74 + x11-apps/xsetroot
75 + x11-misc/xkeyboard-config
76 + opengl? ( media-libs/libglvnd[X] )
77 + xorgmodule? ( =x11-base/xorg-server-${XSERVER_VERSION%.*}* )
78 + )
79 + "
80 +
81 +RDEPEND="${CDEPEND}
82 + java? ( virtual/jre:1.8 )
83 + server? (
84 + dev-lang/perl
85 + sys-process/psmisc
86 + )"
87 +
88 +DEPEND="${CDEPEND}
89 + drm? ( x11-libs/libdrm )
90 + server? (
91 + media-fonts/font-util
92 + x11-base/xorg-proto
93 + x11-libs/libxcvt
94 + x11-libs/libxkbfile
95 + x11-misc/util-macros
96 + opengl? ( media-libs/mesa )
97 + )"
98 +
99 +BDEPEND="
100 + virtual/pkgconfig
101 + nls? ( sys-devel/gettext )
102 + "
103 +
104 +PATCHES=(
105 + # Restore Java viewer
106 + "${FILESDIR}"/${PN}-1.11.0-install-java-viewer.patch
107 + "${FILESDIR}"/${PN}-1.12.0-xsession-path.patch
108 +)
109 +
110 +src_prepare() {
111 + if use server; then
112 + cp -r "${WORKDIR}"/xorg-server-${XSERVER_VERSION}/. unix/xserver || die
113 + eapply "${FILESDIR}"/${P}-xorg-1.21.patch
114 + eapply "${DISTDIR}"/${P}-xserver-21.patch
115 + fi
116 +
117 + cmake_src_prepare
118 +
119 + if use server; then
120 + cd unix/xserver || die
121 + eapply ../xserver${XSERVER_VERSION}.patch
122 + eautoreconf
123 + sed -i 's:\(present.h\):../present/\1:' os/utils.c || die
124 + sed -i '/strcmp.*-fakescreenfps/,/^ \}/d' os/utils.c || die
125 + fi
126 +}
127 +
128 +src_configure() {
129 + if use arm || use hppa; then
130 + append-flags "-fPIC"
131 + fi
132 +
133 + local mycmakeargs=(
134 + -DENABLE_GNUTLS=$(usex gnutls)
135 + -DENABLE_NLS=$(usex nls)
136 + -DBUILD_JAVA=$(usex java)
137 + )
138 +
139 + cmake_src_configure
140 +
141 + if use server; then
142 + cd unix/xserver || die
143 + econf \
144 + $(use_enable opengl glx) \
145 + $(use_enable drm libdrm) \
146 + --disable-config-hal \
147 + --disable-config-udev \
148 + --disable-devel-docs \
149 + --disable-dri \
150 + $(use_enable dri3) \
151 + --disable-glamor \
152 + --disable-kdrive \
153 + --disable-libunwind \
154 + --disable-linux-acpi \
155 + --disable-record \
156 + --disable-selective-werror \
157 + --disable-static \
158 + --disable-unit-tests \
159 + --disable-xephyr \
160 + $(use_enable xinerama) \
161 + --disable-xnest \
162 + --disable-xorg \
163 + --disable-xvfb \
164 + --disable-xwin \
165 + --enable-dri2 \
166 + --with-pic \
167 + --without-dtrace \
168 + --disable-present \
169 + --with-sha1=libcrypto
170 + fi
171 +}
172 +
173 +src_compile() {
174 + cmake_src_compile
175 +
176 + if use server; then
177 + # deps of the vnc module and the module itself
178 + local d subdirs=(
179 + fb xfixes Xext dbe $(usex opengl glx "") $(usev dri3) randr render
180 + damageext miext Xi xkb composite dix mi os hw/vnc
181 + )
182 + for d in "${subdirs[@]}"; do
183 + emake -C unix/xserver/"${d}"
184 + done
185 + fi
186 +}
187 +
188 +src_install() {
189 + cmake_src_install
190 +
191 + if use server; then
192 + emake -C unix/xserver/hw/vnc DESTDIR="${D}" install
193 + if ! use xorgmodule; then
194 + rm -rv "${ED}"/usr/$(get_libdir)/xorg || die
195 + else
196 + rm -v "${ED}"/usr/$(get_libdir)/xorg/modules/extensions/libvnc.la || die
197 + fi
198 +
199 + newconfd "${FILESDIR}"/${PN}-${PV}.confd ${PN}
200 + newinitd "${FILESDIR}"/${PN}-${PV}.initd ${PN}
201 +
202 + systemd_douserunit unix/vncserver/vncserver@.service
203 +
204 + # comment out pam_selinux.so, the server does not start if missing
205 + # part of bug #746227
206 + sed -i -e '/pam_selinux/s/^/#/' "${ED}"/etc/pam.d/tigervnc || die
207 +
208 + # install vncserver to /usr/bin too, see bug #836620
209 + dosym -r /usr/libexec/vncserver /usr/bin/vncserver
210 + else
211 + local f
212 + for f in x0vncserver vncconfig; do
213 + rm "${ED}"/usr/bin/${f} || die
214 + rm "${ED}"/usr/share/man/man1/${f}.1 || die
215 + done
216 + rm -r "${ED}"/usr/{sbin,libexec} || die
217 + rm -r "${ED}"/usr/share/man/man8 || die
218 + rm -r "${ED}"/etc || die
219 + fi
220 +}
221 +
222 +pkg_postinst() {
223 + xdg_pkg_postinst
224 +
225 + local OPTIONAL_DM="gnome-base/gdm x11-misc/lightdm x11-misc/sddm x11-misc/slim"
226 + use server && \
227 + optfeature_header "Install any additional display manager package:" && \
228 + optfeature "proper session support" ${OPTIONAL_DM}
229 +}