gui-wm/wayfire: compiz like 3d wayland manager
authorAisha Tammy <gentoo@aisha.cc>
Fri, 15 May 2020 15:52:55 +0000 (11:52 -0400)
committerAaron Bauman <bman@gentoo.org>
Sun, 17 May 2020 15:54:36 +0000 (11:54 -0400)
Closes: https://bugs.gentoo.org/686854

compiz like eye-candy 3D wayland, with low memory footprint.
Aims to bring desktop features such as 3D cube, fire burn,
fisheye, wrot and all other desktop effects to wayland.

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Aisha Tammy <gentoo@aisha.cc>
Signed-off-by: Aaron Bauman <bman@gentoo.org>
gui-wm/wayfire/Manifest [new file with mode: 0644]
gui-wm/wayfire/metadata.xml [new file with mode: 0644]
gui-wm/wayfire/wayfire-0.4.0.ebuild [new file with mode: 0644]
gui-wm/wayfire/wayfire-9999.ebuild [new file with mode: 0644]

diff --git a/gui-wm/wayfire/Manifest b/gui-wm/wayfire/Manifest
new file mode 100644 (file)
index 0000000..f03e463
--- /dev/null
@@ -0,0 +1 @@
+DIST wayfire-0.4.0.tar.xz 588904 BLAKE2B b720297b3ffb868761ea61615b4d0fefc2687f8a2060208f8cc002ff7adaf7622da906ad98e25664c3e72c04de2fb74741d0a417cce4826483407bdf10d63b43 SHA512 e96cdb90ce36c005476e08608683983aa167e58aea80fcfd3b24ab0836ec4aa50fb5a7eeb0872a1b1014e3073ed826e1c83d3146b39d3cdb2a8b3a0895155649
diff --git a/gui-wm/wayfire/metadata.xml b/gui-wm/wayfire/metadata.xml
new file mode 100644 (file)
index 0000000..c61941f
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+    <longdescription>
+        compiz like eye-candy 3D wayland, with low memory footprint.
+        Aims to bring desktop features such as 3D cube, fire burn,
+        fisheye, wrot and all other desktop effects to wayland.
+    </longdescription>
+    <maintainer type="person">
+        <email>gentoo@aisha.cc</email>
+        <name>Aisha Tammy</name>
+    </maintainer>
+    <maintainer type="project">
+        <email>proxy-maint@gentoo.org</email>
+        <name>Proxy Maintainers</name>
+    </maintainer>
+    <use>
+        <flag name="gles2">use libglvnd to do animations more efficiently</flag>
+        <flag name='system-wfconfig'>use the system-wide wf-config, else build it as a submodule. DO NOT DISABLE UNLESS YOU KNOW WHAT YOU ARE DOING.</flag>
+        <flag name='system-wlroots'>use the system wide wlroots, else build it as a submodule. DO NOT DISABLE UNLESS YOU KNOW WHAT YOU ARE DOING.</flag>
+        <flag name='debug'>add debugging symbols for error reporting. DISABLE ALL SYSTEM USE FLAGS BEFORE REPORTING BUGS.</flag>
+    </use>
+</pkgmetadata>
diff --git a/gui-wm/wayfire/wayfire-0.4.0.ebuild b/gui-wm/wayfire/wayfire-0.4.0.ebuild
new file mode 100644 (file)
index 0000000..96c6375
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson
+
+DESCRIPTION="compiz like 3D wayland compositor"
+HOMEPAGE="https://github.com/WayfireWM/wayfire"
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
+else
+       SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/${PV}/${P}.tar.xz"
+       KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+gles2 +system-wfconfig +system-wlroots elogind systemd debug"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+       dev-libs/libevdev
+       dev-libs/libinput
+       gui-libs/gtk-layer-shell
+       media-libs/glm
+       media-libs/mesa:=[gles2,wayland,X]
+       media-libs/libjpeg-turbo
+       media-libs/libpng
+       media-libs/freetype:=[X]
+       x11-libs/libdrm
+       x11-libs/gtk+:3=[wayland,X]
+       x11-libs/cairo:=[X,svg]
+       x11-libs/libxkbcommon:=[X]
+       x11-libs/pixman
+       gles2? ( media-libs/libglvnd[X] )
+       system-wfconfig? ( ~gui-libs/wf-config-${PV}[debug=] )
+       !system-wfconfig? ( !gui-libs/wf-config )
+       system-wlroots? ( >=gui-libs/wlroots-0.10.0[elogind=,systemd=,X] )
+       !system-wlroots? ( !gui-libs/wlroots )
+"
+
+RDEPEND="
+       ${DEPEND}
+       elogind? ( sys-auth/elogind )
+       systemd? ( sys-apps/systemd )
+       x11-misc/xkeyboard-config
+"
+
+BDEPEND="
+       ${DEPEND}
+       virtual/pkgconfig
+       >=dev-libs/wayland-protocols-1.18
+"
+
+src_compile(){
+       local emesonargs=(
+               $(meson_feature system-wfconfig use_system_wfconfig)
+               $(meson_feature system-wlroots use_system_wlroots)
+               $(meson_use gles2 enable_gles32)
+       )
+       if use debug; then
+               emesonargs+=(
+                       "-Db_sanitize=address,undefined"
+               )
+       fi
+       meson_src_compile
+}
+
+src_install() {
+       default
+       meson_src_install
+       einstalldocs
+
+       insinto "/usr/share/wayland-sessions/"
+       insopts -m644
+       doins wayfire.desktop
+
+       dodoc wayfire.ini
+
+       if ! use systemd && ! use elogind; then
+               fowners root:0 /usr/bin/wayfire
+               fperms 4511 /usr/bin/wayfire
+       fi
+}
+
+pkg_postinst() {
+       if [ -z "${REPLACING_VERSIONS}" ]; then
+               elog "Wayfire has been installed but the session cannot be used"
+               elog "until you install a configuration file. The default config"
+               elog "file is installed at \"/usr/share/doc/${P}/wayfire.ini.bz2\""
+               elog "To install the file execute"
+               elog "\$ mkdir -p ~/.config && bzcat /usr/share/doc/${P}/wayfire.ini.bz2 > ~/.config/wayfire.ini"
+       fi
+}
diff --git a/gui-wm/wayfire/wayfire-9999.ebuild b/gui-wm/wayfire/wayfire-9999.ebuild
new file mode 100644 (file)
index 0000000..96c6375
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson
+
+DESCRIPTION="compiz like 3D wayland compositor"
+HOMEPAGE="https://github.com/WayfireWM/wayfire"
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
+else
+       SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/${PV}/${P}.tar.xz"
+       KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+gles2 +system-wfconfig +system-wlroots elogind systemd debug"
+REQUIRED_USE="?? ( elogind systemd )"
+
+DEPEND="
+       dev-libs/libevdev
+       dev-libs/libinput
+       gui-libs/gtk-layer-shell
+       media-libs/glm
+       media-libs/mesa:=[gles2,wayland,X]
+       media-libs/libjpeg-turbo
+       media-libs/libpng
+       media-libs/freetype:=[X]
+       x11-libs/libdrm
+       x11-libs/gtk+:3=[wayland,X]
+       x11-libs/cairo:=[X,svg]
+       x11-libs/libxkbcommon:=[X]
+       x11-libs/pixman
+       gles2? ( media-libs/libglvnd[X] )
+       system-wfconfig? ( ~gui-libs/wf-config-${PV}[debug=] )
+       !system-wfconfig? ( !gui-libs/wf-config )
+       system-wlroots? ( >=gui-libs/wlroots-0.10.0[elogind=,systemd=,X] )
+       !system-wlroots? ( !gui-libs/wlroots )
+"
+
+RDEPEND="
+       ${DEPEND}
+       elogind? ( sys-auth/elogind )
+       systemd? ( sys-apps/systemd )
+       x11-misc/xkeyboard-config
+"
+
+BDEPEND="
+       ${DEPEND}
+       virtual/pkgconfig
+       >=dev-libs/wayland-protocols-1.18
+"
+
+src_compile(){
+       local emesonargs=(
+               $(meson_feature system-wfconfig use_system_wfconfig)
+               $(meson_feature system-wlroots use_system_wlroots)
+               $(meson_use gles2 enable_gles32)
+       )
+       if use debug; then
+               emesonargs+=(
+                       "-Db_sanitize=address,undefined"
+               )
+       fi
+       meson_src_compile
+}
+
+src_install() {
+       default
+       meson_src_install
+       einstalldocs
+
+       insinto "/usr/share/wayland-sessions/"
+       insopts -m644
+       doins wayfire.desktop
+
+       dodoc wayfire.ini
+
+       if ! use systemd && ! use elogind; then
+               fowners root:0 /usr/bin/wayfire
+               fperms 4511 /usr/bin/wayfire
+       fi
+}
+
+pkg_postinst() {
+       if [ -z "${REPLACING_VERSIONS}" ]; then
+               elog "Wayfire has been installed but the session cannot be used"
+               elog "until you install a configuration file. The default config"
+               elog "file is installed at \"/usr/share/doc/${P}/wayfire.ini.bz2\""
+               elog "To install the file execute"
+               elog "\$ mkdir -p ~/.config && bzcat /usr/share/doc/${P}/wayfire.ini.bz2 > ~/.config/wayfire.ini"
+       fi
+}