From 37cade69697963f7d766a5e9ad039fd53e70f21d Mon Sep 17 00:00:00 2001 From: Brahmajit Das Date: Thu, 1 Jun 2023 14:55:00 +0530 Subject: [PATCH] x11-misc/virtualgl: Fix ISO C++17 does not allow register storage class specifier Closes: https://bugs.gentoo.org/898876 Signed-off-by: Brahmajit Das --- .../files/virtualgl-3.1-drop-register.patch | 53 +++++++++ x11-misc/virtualgl/virtualgl-3.1-r1.ebuild | 101 ++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 x11-misc/virtualgl/files/virtualgl-3.1-drop-register.patch create mode 100644 x11-misc/virtualgl/virtualgl-3.1-r1.ebuild diff --git a/x11-misc/virtualgl/files/virtualgl-3.1-drop-register.patch b/x11-misc/virtualgl/files/virtualgl-3.1-drop-register.patch new file mode 100644 index 0000000000000..5e7153c3c3831 --- /dev/null +++ b/x11-misc/virtualgl/files/virtualgl-3.1-drop-register.patch @@ -0,0 +1,53 @@ +https://github.com/VirtualGL/virtualgl/pull/233 +From: Brahmajit Das +Date: Thu, 1 Jun 2023 14:45:17 +0530 +Subject: [PATCH] Dropping use of register keyword + +The usage of register keyword was deprecated in c++14 and it's +completely removed in c++17. Found will building virtualgl on gentoo +with clang-16. + +Bug: https://bugs.gentoo.org/898876 +Signed-off-by: Brahmajit Das +--- a/server/fltk/src/Fl_Text_Buffer.cxx ++++ b/server/fltk/src/Fl_Text_Buffer.cxx +@@ -1286,7 +1286,7 @@ int Fl_Text_Buffer::substitute_null_characters( char *string, int len ) { + ** routine if no substitution has been done. + */ + void Fl_Text_Buffer::unsubstitute_null_characters( char *string ) { +- register char * c, subsChar = mNullSubsChar; ++ char * c, subsChar = mNullSubsChar; + + if ( subsChar == '\0' ) + return; +--- a/server/fltk/src/Fl_arg.cxx ++++ b/server/fltk/src/Fl_arg.cxx +@@ -314,7 +314,7 @@ without express or implied warranty. + + static int ReadInteger(char* string, char** NextString) + { +- register int Result = 0; ++ int Result = 0; + int Sign = 1; + + if (*string == '+') +@@ -337,7 +337,7 @@ int XParseGeometry(const char* string, int* x, int* y, + unsigned int* width, unsigned int* height) + { + int mask = NoValue; +- register char *strind; ++ char *strind; + unsigned int tempWidth = 0, tempHeight = 0; + int tempX = 0, tempY = 0; + char *nextCharacter; +--- a/util/md5.c ++++ b/util/md5.c +@@ -193,7 +193,7 @@ void MD5Final(unsigned char digest[16], struct MD5Context *ctx) + */ + void MD5Transform(uint32 buf[4], uint32 in[16]) + { +- register uint32 a, b, c, d; ++ uint32 a, b, c, d; + + a = buf[0]; + b = buf[1]; diff --git a/x11-misc/virtualgl/virtualgl-3.1-r1.ebuild b/x11-misc/virtualgl/virtualgl-3.1-r1.ebuild new file mode 100644 index 0000000000000..479f441ae5f90 --- /dev/null +++ b/x11-misc/virtualgl/virtualgl-3.1-r1.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib flag-o-matic systemd + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/VirtualGL/${PN}.git" + inherit git-r3 +else + MY_PN="VirtualGL" + MY_P="${MY_PN}-${PV}" + S="${WORKDIR}/${MY_P}" + SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Run OpenGL applications remotely with full 3D hardware acceleration" +HOMEPAGE="https://www.virtualgl.org/" + +SLOT="0" +LICENSE="LGPL-2.1 wxWinLL-3.1 FLTK" +IUSE="" + +RDEPEND=" + media-libs/libjpeg-turbo[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXtst[${MULTILIB_USEDEP}] + x11-libs/libXv[${MULTILIB_USEDEP}] + x11-libs/xcb-util-keysyms[${MULTILIB_USEDEP}] + virtual/glu[${MULTILIB_USEDEP}] + virtual/opencl[${MULTILIB_USEDEP}] + virtual/opengl[${MULTILIB_USEDEP}] + amd64? ( abi_x86_32? ( + >=media-libs/libjpeg-turbo-1.3.0-r3[abi_x86_32] + >=x11-libs/libX11-1.6.2[abi_x86_32] + >=x11-libs/libXext-1.3.2[abi_x86_32] + >=x11-libs/libXtst-1.2.3[abi_x86_32] + >=x11-libs/libXv-1.0.10[abi_x86_32] + x11-libs/xcb-util-keysyms[abi_x86_32] + >=virtual/glu-9.0-r1[abi_x86_32] + virtual/opencl[abi_x86_32] + >=virtual/opengl-7.0-r1[abi_x86_32] + ) ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-3.1-drop-register.patch +) + +src_prepare() { + # Use /var/lib, bug #428122 + sed -e "s#/etc/opt#/var/lib#g" -i doc/unixconfig.txt doc/index.html doc/advancedopengl.txt \ + server/vglrun.in server/vglgenkey server/vglserver_config || die + + cmake_src_prepare +} + +src_configure() { + # Completely breaks steam/wine for discrete graphics otherwise + # see https://github.com/VirtualGL/virtualgl/issues/16 + append-ldflags "-Wl,--no-as-needed" + + abi_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/"${PF}" + -DTJPEG_INCLUDE_DIR=/usr/include + -DCMAKE_INSTALL_LIBDIR=/usr/$(get_libdir)/VirtualGL + -DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so + -DCMAKE_LIBRARY_PATH=/usr/$(get_libdir) + ) + cmake_src_configure + } + multilib_parallel_foreach_abi abi_configure +} + +src_install() { + cmake-multilib_src_install + + # Make config dir + keepdir /var/lib/VirtualGL + fowners root:video /var/lib/VirtualGL + fperms 0750 /var/lib/VirtualGL + newinitd "${FILESDIR}/vgl.initd-r4" vgl + newconfd "${FILESDIR}/vgl.confd-r2" vgl + + exeinto /usr/libexec + doexe "${FILESDIR}/vgl-helper.sh" + systemd_dounit "${FILESDIR}/vgl.service" + + # Rename glxinfo to vglxinfo to avoid conflict with x11-apps/mesa-progs + # and eglinfo to veglinto because of conflict with mesa-progs[egl] + mv "${D}"/usr/bin/{,v}glxinfo || die + mv "${D}"/usr/bin/{,v}eglinfo || die + + # Remove license files, bug 536284 + rm "${D}"/usr/share/doc/${PF}/{LGPL.txt*,LICENSE*} || die +}