commit:     ee95a0cf483897786d60b53a3209b3e1bfcd87a4
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Tue Apr  2 13:13:51 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Tue Apr  2 13:15:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee95a0cf

x11-wm/fvwm3: add 1.1.0

Fix golang detection in autotools so that versions of
go released after the tarball are not considered
"too old"

Reported-by: Denny Rivetti <denny.rivetti.me <AT> gmail.com>
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 x11-wm/fvwm3/Manifest                              |   2 +
 .../fvwm3/files/fvwm3-1.1.0-fix-go-detection.patch |  50 +++++
 x11-wm/fvwm3/fvwm3-1.1.0.ebuild                    | 206 +++++++++++++++++++++
 3 files changed, 258 insertions(+)

diff --git a/x11-wm/fvwm3/Manifest b/x11-wm/fvwm3/Manifest
index f716c6704b63..ef274f6d0468 100644
--- a/x11-wm/fvwm3/Manifest
+++ b/x11-wm/fvwm3/Manifest
@@ -1,2 +1,4 @@
 DIST fvwm3-1.0.9-docs.tar.xz 234884 BLAKE2B 
f52da9eb2486f7a212ead77ccc190c57076e1d3c73a3997c3a94edcf60dbc72ec5d410a8df1d621ff18b346741b1c94b3f87170db68c3067caa3295782a9bb61
 SHA512 
e6c33b09b7bac32bd61f1bd2c0216e2c99fef3f0b51b52b229093c25a437828e4bece382284d0c1f0bbbaf5b7459f2c391dfc1d2fa4ba80be22f09094e976b03
 DIST fvwm3-1.0.9.tar.gz 4525552 BLAKE2B 
cb58181adb42f5b8d491c6413277eb1f4a5d89637d9c6bb323223925c719d808e84ed0f72a1d0ffc822ddb8295ebf2bb89c2351ebd591916b50ebc69728e59fa
 SHA512 
de71d74b76da8e0cf1560d51ef916857e3f825b272d786d9b6b93aef9a82c399f580b9b941a47aff1f327b097d12e1ce05860924e792206e4150ff19a5c39ee3
+DIST fvwm3-1.1.0-docs.tar.xz 230964 BLAKE2B 
f431011a63a8d190e01e34301e74fd40750deb51c947b055474888379b7364910351c923ac637968948a094b89f49d8be5758429a85cd66107b8696b526b0004
 SHA512 
629794d0aef9ef2d9ce9a8e1ff3bc63fe2ef30f9f593938e2892e4e04bd960f51d2a90aaf5c95328495bccea6b1dbfd6fdeb76f18bb9a8bc6eb2649359023df8
+DIST fvwm3-1.1.0.tar.gz 4527424 BLAKE2B 
ee9a3f190ae7fa1f1dd703e17b0e12f04da63212cade30facdbc8339ded7f598de143d18f17dde39d3af8e24ff2b34855ad3e5b2b6c5ffe466072a7353895cd8
 SHA512 
47eea05cbdecf4da3313b9183fa938544b451b9f133d7a68062feb222c3c1af3873402f80b60485d603afe8cd23a03f3e86a503fc1f2070e1ad2e6e64d012341

diff --git a/x11-wm/fvwm3/files/fvwm3-1.1.0-fix-go-detection.patch 
b/x11-wm/fvwm3/files/fvwm3-1.1.0-fix-go-detection.patch
new file mode 100644
index 000000000000..6c38f51ce932
--- /dev/null
+++ b/x11-wm/fvwm3/files/fvwm3-1.1.0-fix-go-detection.patch
@@ -0,0 +1,50 @@
+From 9be90a96c537b4a743774b0be9ffc8ca5c6498da Mon Sep 17 00:00:00 2001
+From: Matt Jolly <[email protected]>
+Date: Tue, 2 Apr 2024 20:47:38 +1000
+Subject: [PATCH] Use AX_COMPARE_VERSION macro for golang version checks
+
+The previous approach fragile, required manual updates,
+and results in unexpected outcomes when the user has updated
+golang.
+
+Reported-by: Denny Rivetti <[email protected]>
+--- a/configure.ac
++++ b/configure.ac
+@@ -80,23 +80,13 @@ AC_ARG_ENABLE(golang,
+ 
+ if test ! x"$with_golang" = xno; then
+       AC_CHECK_PROGS(GO, go)
+-      if test -n "$GO" ; then
+-          GOVERSIONOPTION=version
+-          go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version go//' | \
+-              sed -e 's/ .*$//')
+-          AC_MSG_CHECKING([whether go version is >= 1.14.x ($go_version)])
+-          case "$go_version" in
+-           1.14*|1.15*|1.16*|1.17*|1.18*|1.19*|1.20*|1.21*|1.22*|1.23*)
+-            AC_MSG_RESULT([yes - version is: $go_version])
+-            with_golang="yes"
+-            GO=
+-            ;;
+-          *)
+-            AC_MSG_RESULT([no - version is: $go_version])
+-            with_golang="no"
+-            problem_golang=": version of go ($go_version) <= 1.14.x"
+-            ;;
+-          esac
++      if test -n "$GO"; then
++              GOVERSIONOPTION=version
++              go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version go//' 
| sed -e 's/ .*$//')
++              AX_COMPARE_VERSION([$go_version], [ge], ["1.14.0"],
++                                                      [with_golang="yes 
($go_version)"; GO=],
++                                                      [with_golang="no";
++                                                      AC_MSG_ERROR([Go 
version ($go_version) is lower than the minimum required version 
($REQUIRED_GO_VERSION)])])
+       fi
+ fi
+ AM_CONDITIONAL([FVWM_BUILD_GOLANG], [test x"$with_golang" = xyes])
+@@ -1514,4 +1504,4 @@ Fvwm3 Configuration:
+   Build man pages?                    $with_mandoc$problem_mandoc
+   Build html man pages?               $with_htmldoc$problem_htmldoc
+ 
+-"
+\ No newline at end of file
++"

diff --git a/x11-wm/fvwm3/fvwm3-1.1.0.ebuild b/x11-wm/fvwm3/fvwm3-1.1.0.ebuild
new file mode 100644
index 000000000000..ab2f1f11a22e
--- /dev/null
+++ b/x11-wm/fvwm3/fvwm3-1.1.0.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Doc generation requires pulls in asciidoc/ruby, we'll prebuild docs
+# for release ebuilds.
+# Scripting for this is in sam-gentoo-scripts.
+: ${FVWM3_DOCS_PREBUILT:=1}
+
+PYTHON_COMPAT=( python3_{10..12} )
+GO_OPTIONAL=1
+inherit autotools desktop flag-o-matic go-module python-single-r1 
toolchain-funcs
+
+DESCRIPTION="A multiple large virtual desktop window manager derived from fvwm"
+HOMEPAGE="https://www.fvwm.org/";
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/fvwmorg/fvwm3.git";
+       EGIT_BRANCH="main"
+else
+       
SRC_URI="https://github.com/fvwmorg/fvwm3/releases/download/${PV}/${P}.tar.gz";
+       if [[ ${FVWM3_DOCS_PREBUILT} == 1 ]]; then
+               SRC_URI+=" 
https://deps.gentoo.zip/x11-wm/fvwm3/${P}-docs.tar.xz";
+       fi
+       KEYWORDS="~amd64 ~riscv"
+fi
+
+LICENSE="GPL-2+ FVWM
+       go? ( Apache-2.0 BSD MIT )"
+SLOT="0"
+IUSE="bidi debug +go netpbm nls perl readline stroke svg tk lock"
+REQUIRED_USE="
+       ${PYTHON_REQUIRED_USE}"
+
+DOCS=( NEWS )
+
+if [[ ${PV} == 9999 ]]; then
+       DOCS+=(
+               dev-docs/COMMANDS
+               dev-docs/DEVELOPERS.md
+               dev-docs/INSTALL.md
+               dev-docs/PARSING.md
+               dev-docs/TODO.md
+               dev-docs/NEW-COMMANDS.md
+       )
+fi
+
+BDEPEND="
+       virtual/pkgconfig
+       app-arch/unzip
+       go? ( >=dev-lang/go-1.14 )
+"
+
+if [[ ${FVWM3_DOCS_PREBUILT} == 0 ]]; then
+       BDEPEND+="
+               dev-libs/libxslt
+               dev-ruby/asciidoctor
+       "
+fi
+
+RDEPEND="${PYTHON_DEPS}
+       ${COMMON_DEPEND}
+       !x11-wm/fvwm
+       dev-lang/perl
+       dev-libs/glib:2
+       dev-libs/libevent:=
+       media-libs/fontconfig
+       media-libs/libpng:=
+       sys-libs/zlib
+       x11-libs/libICE
+       x11-libs/libSM
+       x11-libs/libX11
+       x11-libs/libXau
+       x11-libs/libxcb
+       x11-libs/libXcursor
+       x11-libs/libXdmcp
+       x11-libs/libXext
+       x11-libs/libXfixes
+       x11-libs/libXft
+       x11-libs/libXpm
+       x11-libs/libXrandr
+       x11-libs/libXrender
+       bidi? ( dev-libs/fribidi )
+       lock? ( x11-misc/xlockmore )
+       netpbm? ( media-libs/netpbm )
+       perl? ( tk? (
+                       dev-lang/tk
+                       dev-perl/Tk
+                       >=dev-perl/X11-Protocol-0.56
+               )
+       )
+       readline? (
+               sys-libs/ncurses:=
+               sys-libs/readline:=
+       )
+       stroke? ( dev-libs/libstroke )
+       svg? (
+               gnome-base/librsvg:2
+               x11-libs/cairo
+       )"
+
+DEPEND="${COMMON_DEPEND}
+       x11-base/xorg-proto"
+
+PATCHES=(
+       "${FILESDIR}"/fvwm3-1.1.0-fix-go-detection.patch
+)
+
+src_prepare() {
+       default
+       use go && ( sed -e 's/GOFLAGS=-ldflags="-s -w"/GOFLAGS=/' \
+               -i bin/FvwmPrompt/Makefile.am || die )
+
+       eautoreconf
+}
+
+src_configure() {
+       # Non-upstream email where bugs should be sent; used in fvwm-bug.
+       export FVWM_BUGADDR="[email protected]"
+
+       # Recommended by upstream for release. Doesn't really matter for live 
ebuilds.
+       append-flags -fno-strict-aliasing
+
+       # Signed chars are required.
+       for arch in arm arm64 ppc ppc64; do
+               use $arch && append-flags -fsigned-chars
+       done
+
+       local myconf=(
+               
--with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm
+               --enable-package-subdirs
+               $(use_enable bidi)
+               $(use_enable go golang)
+               $(use_enable nls)
+               $(use_enable nls iconv)
+               $(use_enable perl perllib)
+               $(use_with readline readline-library)
+               $(use_enable svg rsvg)
+               --enable-png
+       )
+
+       if [[ ${FVWM3_DOCS_PREBUILT} == 0 ]]; then
+               myconf+=(
+                       --enable-mandoc
+                       --enable-htmldoc
+               )
+       else
+               # Probably not required, but let's be safe
+               myconf+=(
+                       --disable-mandoc
+                       --disable-htmldoc
+               )
+       fi
+
+       use readline && myconf+=( --without-termcap-library )
+
+       econf "${myconf[@]}"
+}
+
+src_compile() {
+       PREFIX="${EPREFIX}/usr" emake AR="$(tc-getAR)"
+}
+
+src_install() {
+       # Since we're manually handling docs installation, let's do that first
+       # and then install the rest of the files via emake
+       local HTML_DOCS
+       if [[ ${FVWM3_DOCS_PREBUILT} == 1 ]] ; then
+               doman "${WORKDIR}"/${P}-docs/man/**/*.[0-8]
+               HTML_DOCS="${WORKDIR}"/${P}-docs/html/*
+       else
+               HTML_DOCS="${S}"/doc/*.html
+               doman "${S}"/doc/*.[0-8]
+       fi
+
+       einstalldocs
+
+       emake DESTDIR="${ED}" prefix="/usr" exec_prefix="/usr" 
datarootdir="/usr/share" install
+
+       exeinto /etc/X11/Sessions
+       newexe - ${PN} <<-EOF
+       #!/bin/sh
+       ${PN}
+       EOF
+
+       python_scriptinto "/usr/bin"
+       python_doscript "${ED}/usr/bin/FvwmCommand" 
"${ED}/usr/bin/fvwm-menu-desktop"
+
+       make_session_desktop fvwm3 /usr/bin/fvwm3
+
+}
+
+pkg_postinst() {
+       if use go; then
+               ewarn "FvwmPrompt has been installed, it provides the 
functionality of both FvwmCommand and FvwmConsole."
+               ewarn "For compatibility with the existing fvwm2 
configurations, the ebuild will install a FvwmCommand wrapper."
+               ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\";"
+               ewarn "however FvwmPrompt and FvwmCommand will not be 
installed."
+       else
+               ewarn "FvwmConsole has been installed, but FvwmCommand and 
FvwmPrompt are no longer included in this ebuild."
+               ewarn "If you need FvwmPrompt or FvwmCommand, install ${PN} 
with USE=\"go\"."
+               ewarn "In that case, FvwmPrompt will replace FvwmConsole and 
provide the same functionality in a more flexible way."
+       fi
+}

Reply via email to