summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/fvwm3/fvwm3-1.1.1-r1.ebuild')
-rw-r--r--x11-wm/fvwm3/fvwm3-1.1.1-r1.ebuild180
1 files changed, 180 insertions, 0 deletions
diff --git a/x11-wm/fvwm3/fvwm3-1.1.1-r1.ebuild b/x11-wm/fvwm3/fvwm3-1.1.1-r1.ebuild
new file mode 100644
index 000000000000..748831cac3fd
--- /dev/null
+++ b/x11-wm/fvwm3/fvwm3-1.1.1-r1.ebuild
@@ -0,0 +1,180 @@
+# 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..13} )
+GO_OPTIONAL=1
+inherit flag-o-matic go-module meson optfeature python-single-r1
+
+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"
+ FVWM3_DOCS_PREBUILT=0
+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 +go nls readline svg"
+# Strictly speaking readline is not required for go,
+# but as most systems already have it installed we don't users to stub their toe on REQUIRED_USE
+REQUIRED_USE="${PYTHON_REQUIRED_USE} !go? ( readline )"
+
+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.20 )
+"
+
+if [[ ${FVWM3_DOCS_PREBUILT} -ne 1 ]]; then
+ BDEPEND+="
+ dev-libs/libxslt
+ dev-ruby/asciidoctor
+ "
+fi
+
+COMMON_DEPEND="
+ dev-lang/perl
+ dev-libs/glib:2
+ dev-libs/libevent:=
+ media-libs/fontconfig
+ media-libs/libpng:=
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXft
+ x11-libs/libxkbcommon
+ x11-libs/libXpm
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/xtrans
+ bidi? ( dev-libs/fribidi )
+ readline? (
+ sys-libs/readline:=
+ )
+ svg? (
+ gnome-base/librsvg:2
+ x11-libs/cairo
+ )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ ${PYTHON_DEPS}
+ !x11-wm/fvwm
+"
+
+DEPEND="${COMMON_DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-desk-init.patch
+)
+
+src_configure() {
+ # Signed chars are required.
+ for arch in arm arm64 ppc ppc64; do
+ use $arch && append-flags -fsigned-chars
+ done
+
+ local emesonargs=(
+ "-Dpng=enabled"
+ "-Dsm=enabled"
+ "-Dxcursor=enabled"
+ "-Dxfixes=enabled"
+ "-Dxpm=enabled"
+ "-Dxrender=enabled"
+ $(meson_feature bidi)
+ $(meson_feature go golang)
+ $(meson_feature nls iconv)
+ $(meson_feature nls)
+ $(meson_feature readline) # not required for go but it won't hurt to enable it
+ $(meson_feature svg cairo) # Pick 1 of 'cairo', 'cairo-svg', or 'libsvg-cairo'; add the appropriate dependency
+ $(meson_feature svg)
+ "-Dcairo-svg=disabled"
+ "-Dlibsvg-cairo=disabled"
+ "-Ddocdir=${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ if [[ ${FVWM3_DOCS_PREBUILT} -ne 1 ]]; then
+ emesonargs+=(
+ "-Dhtmldoc=true"
+ "-Dmandoc=true"
+ )
+ else
+ # Probably not required, but let's be safe
+ emesonargs+=(
+ "-Dhtmldoc=false"
+ "-Dmandoc=false"
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ # Since we're manually handling docs installation, let's do that first
+ # and then install the rest of the files "normally".
+ local HTML_DOCS
+ if [[ ${FVWM3_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${P}-docs/man/**/*.[0-8]
+ HTML_DOCS="${WORKDIR}"/${P}-docs/html/*
+ fi
+ einstalldocs
+
+ meson_src_install
+
+ python_scriptinto "/usr/bin"
+ python_doscript "${ED}/usr/bin/FvwmCommand" "${ED}/usr/bin/fvwm-menu-desktop"
+}
+
+pkg_postinst() {
+
+ einfo "For compatibility with existing fvwm2 configurations, the ebuild will install a FvwmCommand wrapper."
+
+ if use go; then
+ einfo "FvwmPrompt has been installed, it provides the functionality of both FvwmCommand and FvwmConsole."
+ einfo "If you need FvwmConsole, install ${PN} with USE=\"-go\"; however FvwmPrompt will not be installed."
+ else
+ einfo "FvwmConsole has been installed, hovever it is a legacy tool."
+ einfo "Consider installing with USE=\"go\" which will have FvwmPrompt replace FvwmConsole to"
+ einfo "provide the same functionality in a more flexible way."
+ fi
+
+ optfeature_header "Useful optional features:"
+ optfeature "Screen locking" x11-misc/xlockmore
+ optfeature "NetPBM support (used by FvwmScript-ScreenDump)" media-libs/netpbm
+}