From a6da6e062fd05e637af7a70fe8644be36b3c579a Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 26 Nov 2023 00:54:45 +0200 Subject: gui-wm/wayfire: add 0.8.0 Bug: https://bugs.gentoo.org/915795 Bug: https://bugs.gentoo.org/916431 Closes: https://bugs.gentoo.org/831959 Closes: https://bugs.gentoo.org/859256 Signed-off-by: Alfred Wingate Signed-off-by: Arthur Zamarin --- gui-wm/wayfire/Manifest | 1 + gui-wm/wayfire/wayfire-0.8.0.ebuild | 158 ++++++++++++++++++++++++++++++++++++ gui-wm/wayfire/wayfire-9999.ebuild | 118 ++++++++++++++++++--------- 3 files changed, 239 insertions(+), 38 deletions(-) create mode 100644 gui-wm/wayfire/wayfire-0.8.0.ebuild diff --git a/gui-wm/wayfire/Manifest b/gui-wm/wayfire/Manifest index b0f036b8be78..1d54c8fd01bb 100644 --- a/gui-wm/wayfire/Manifest +++ b/gui-wm/wayfire/Manifest @@ -1,2 +1,3 @@ DIST wayfire-0.7.3.tar.xz 765524 BLAKE2B b82c66796d7fb3d07c7bd9078755b7c38df1bd5c93daa659fc98b1182679bc0a06a24b322c6ab492d06d30c898659e2ba849c1d5944260e8775a04fd8a5bd078 SHA512 7bb5b8492a632a9816e847ec72def74dc234bcc30da7c320a0cd3b1d60492f5521ad8ac76a12ef967d1b114bcde9be72eb8ffc618977aed8e198d4ace1e7056e DIST wayfire-0.7.5.tar.xz 781952 BLAKE2B 10f4927d793ad2f8047ab5608db72bb5988fbb4df805dc65a87b011453729109ca0b3a92cf89e867266fae52268e1e2ac452bbd6efcc81e8f1a0c0640008adc1 SHA512 fce6d4c81fa3675df1e656f8bf504f7fc9d1b7104687bcc6d669950582f46bd0ad084c6a487434077df029438243cd91cf6ec60dc7d584b40bfd7a4c8d069f53 +DIST wayfire-0.8.0.tar.xz 828576 BLAKE2B 4d80a0d43061a4564d45f7c077fd97737b426c4036c12f004815dbad120f51b38b2fac9a010e2df27a6a96205cd0dcceb81864bdccbd6e337d81f6c37926e019 SHA512 fab55f6112c462312edf43d41b29f476d493449eca8f0c5cfee8f3aae73dcb98be46c589fc23d10d961f738bdf6d1fe78286b4c96e1d4444fdc8b1b898d998a9 diff --git a/gui-wm/wayfire/wayfire-0.8.0.ebuild b/gui-wm/wayfire/wayfire-0.8.0.ebuild new file mode 100644 index 000000000000..7e1b3e3efe4b --- /dev/null +++ b/gui-wm/wayfire/wayfire-0.8.0.ebuild @@ -0,0 +1,158 @@ +# Copyright 2019-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson toolchain-funcs + +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" + SLOT="0/9999" +else + SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + SLOT="0/$(ver_cut 1-2)" +fi + +LICENSE="MIT" +IUSE="debug +gles +system-wfconfig +system-wlroots test X" +RESTRICT="!test? ( test )" + +# bundled wlroots has the following dependency string according to included headers. +# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?] +# enable x11-backend with X and vice versa +WLROOTS_CDEPEND=" + >=dev-libs/libinput-1.14.0:= + >=dev-libs/wayland-1.21 + media-libs/libglvnd + media-libs/mesa[egl(+),gles2] + sys-apps/hwdata:= + sys-auth/seatd:= + >=x11-libs/libdrm-2.4.114:= + x11-libs/libxkbcommon + >=x11-libs/pixman-0.42.0 + virtual/libudev + X? ( + x11-base/xwayland + x11-libs/libxcb:0= + x11-libs/xcb-util-image + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +WLROOTS_DEPEND=" + >=dev-libs/wayland-protocols-1.28 +" +WLROOTS_BDEPEND=" + dev-util/glslang + dev-util/wayland-scanner +" + +CDEPEND=" + dev-cpp/nlohmann_json + dev-libs/libevdev + >=dev-libs/libinput-1.7.0 + dev-libs/wayland + >=dev-libs/wayland-protocols-1.12 + media-libs/glm + media-libs/libglvnd + media-libs/libjpeg-turbo:= + media-libs/libpng:= + x11-libs/cairo + x11-libs/libdrm:= + x11-libs/libxkbcommon + x11-libs/pango + x11-libs/pixman + system-wfconfig? ( gui-libs/wf-config:${SLOT} ) + !system-wfconfig? ( dev-libs/libxml2 ) + !system-wlroots? ( ${WLROOTS_CDEPEND} ) +" + +if [[ ${PV} == 9999 ]] ; then + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/9999[drm(+),libinput(+),x11-backend,X?] ) + " +else + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/16[drm(+),libinput(+),x11-backend,X?] ) + " +fi + +RDEPEND=" + ${CDEPEND} + x11-misc/xkeyboard-config + !system-wfconfig? ( !gui-libs/wf-config ) + !system-wlroots? ( !gui-libs/wlroots ) +" +DEPEND=" + ${CDEPEND} + !system-wlroots? ( ${WLROOTS_DEPEND} ) + test? ( dev-cpp/doctest ) +" +BDEPEND=" + dev-util/wayland-scanner + virtual/pkgconfig + !system-wlroots? ( ${WLROOTS_BDEPEND} ) +" + +src_prepare() { + eapply_user + + sed -e "s:@EPREFIX@:${EPREFIX}:" \ + "${FILESDIR}"/wayfire-session > "${T}"/wayfire-session || die + sed -e "s:@EPREFIX@:${EPREFIX}:" \ + "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die + + if [[ "${PV}" == 9999 ]]; then + # Don't run git if git is installed and its not a git dir + sed -i \ + -e "/git = find_program/ifs = import\('fs'\)" \ + -e "s/if git.found()/if git.found() and fs.is_dir('.git')/" \ + meson.build || die + fi + +} + +src_configure() { + local emesonargs=( + $(meson_feature system-wfconfig use_system_wfconfig) + $(meson_feature system-wlroots use_system_wlroots) + $(meson_feature test tests) + $(meson_feature X xwayland) + $(meson_use gles enable_gles32) + $(usex debug --buildtype=debug "") + $(usex debug -Db_sanitize=address,undefined "") + ) + + # Clang will fail to link without this + tc-is-clang && emesonargs+=( $(usex debug -Db_lundef=false "") ) + + meson_src_configure +} + +src_install() { + meson_src_install + dobin "${T}"/wayfire-session + + insinto "/usr/share/wayland-sessions/" + insopts -m644 + doins wayfire.desktop + doins "${T}"/wayfire-session.desktop + + insinto "/usr/share/wayfire/" + doins wayfire.ini +} + +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/wayfire/wayfire.ini\"" + elog "To install the file execute" + elog "\$ cp /usr/share/wayfire/wayfire.ini ~/.config/wayfire.ini" + fi +} diff --git a/gui-wm/wayfire/wayfire-9999.ebuild b/gui-wm/wayfire/wayfire-9999.ebuild index 9ff84a6351ce..4406f3a1897f 100644 --- a/gui-wm/wayfire/wayfire-9999.ebuild +++ b/gui-wm/wayfire/wayfire-9999.ebuild @@ -11,76 +11,118 @@ HOMEPAGE="https://github.com/WayfireWM/wayfire" if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git" + SLOT="0/9999" else SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz" KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + SLOT="0/$(ver_cut 1-2)" fi LICENSE="MIT" -SLOT="0" -IUSE="debug +gles +system-wfconfig +system-wlroots X" +IUSE="debug +gles +system-wfconfig +system-wlroots test X" +RESTRICT="!test? ( test )" + +# bundled wlroots has the following dependency string according to included headers. +# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?] +# enable x11-backend with X and vice versa +WLROOTS_CDEPEND=" + >=dev-libs/libinput-1.14.0:= + >=dev-libs/wayland-1.22 + media-libs/libdisplay-info + media-libs/libglvnd + media-libs/mesa[egl(+),gles2] + sys-apps/hwdata:= + sys-auth/seatd:= + >=x11-libs/libdrm-2.4.114:= + x11-libs/libxkbcommon + >=x11-libs/pixman-0.42.0 + virtual/libudev + X? ( + x11-base/xwayland + x11-libs/libxcb:0= + x11-libs/xcb-util-image + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +WLROOTS_DEPEND=" + >=dev-libs/wayland-protocols-1.32 +" +WLROOTS_BDEPEND=" + dev-util/glslang + dev-util/wayland-scanner +" -DEPEND=" - dev-libs/libinput:= +CDEPEND=" + dev-cpp/nlohmann_json + dev-libs/libevdev + >=dev-libs/libinput-1.7.0 dev-libs/wayland - gui-libs/gtk-layer-shell + >=dev-libs/wayland-protocols-1.12 media-libs/glm - media-libs/mesa:=[gles2,wayland,X?] - media-libs/libglvnd[X?] - media-libs/libjpeg-turbo:= - media-libs/libpng:= - media-libs/freetype:=[X?] + media-libs/libglvnd + media-libs/libjpeg-turbo + media-libs/libpng + x11-libs/cairo x11-libs/libdrm - x11-libs/gtk+:3=[wayland,X?] - x11-libs/cairo[X?,svg(+)] - x11-libs/libxkbcommon[X?] + x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman - X? ( - x11-base/xwayland - x11-libs/libxcb - ) + system-wfconfig? ( gui-libs/wf-config:${SLOT} ) + !system-wfconfig? ( dev-libs/libxml2 ) + !system-wlroots? ( ${WLROOTS_CDEPEND} ) " if [[ ${PV} == 9999 ]] ; then - DEPEND+=" - system-wfconfig? ( ~gui-libs/wf-config-9999:= ) - !system-wfconfig? ( !gui-libs/wf-config ) - system-wlroots? ( ~gui-libs/wlroots-9999:=[drm(+),libinput(+),x11-backend,X?] ) - !system-wlroots? ( !gui-libs/wlroots ) + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/9999[drm(+),libinput(+),x11-backend,X?] ) " else - DEPEND+=" - system-wfconfig? ( - >=gui-libs/wf-config-0.7.1 - =gui-libs/wlroots-0.16.0:0/16[drm(+),libinput(+),x11-backend,X?] - ) - !system-wlroots? ( !gui-libs/wlroots ) + CDEPEND+=" + system-wlroots? ( gui-libs/wlroots:0/16[drm(+),libinput(+),x11-backend,X?] ) " fi RDEPEND=" - ${DEPEND} + ${CDEPEND} x11-misc/xkeyboard-config + !system-wfconfig? ( !gui-libs/wf-config ) + !system-wlroots? ( !gui-libs/wlroots ) +" +DEPEND=" + ${CDEPEND} + !system-wlroots? ( ${WLROOTS_DEPEND} ) + test? ( dev-cpp/doctest ) " - BDEPEND=" - dev-libs/wayland-protocols + dev-util/wayland-scanner virtual/pkgconfig + !system-wlroots? ( ${WLROOTS_BDEPEND} ) " -src_configure() { +src_prepare() { + eapply_user + sed -e "s:@EPREFIX@:${EPREFIX}:" \ - "${FILESDIR}"/wayfire-session > "${T}"/wayfire-session || die + "${FILESDIR}"/wayfire-session > "${T}"/wayfire-session || die sed -e "s:@EPREFIX@:${EPREFIX}:" \ - "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die + "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die + + if [[ "${PV}" == 9999 ]]; then + # Don't run git if git is installed and its not a git dir + sed -i \ + -e "/git = find_program/ifs = import\('fs'\)" \ + -e "s/if git.found()/if git.found() and fs.is_dir('.git')/" \ + meson.build || die + fi + +} + +src_configure() { local emesonargs=( $(meson_feature system-wfconfig use_system_wfconfig) $(meson_feature system-wlroots use_system_wlroots) + $(meson_feature test tests) $(meson_feature X xwayland) $(meson_use gles enable_gles32) $(usex debug --buildtype=debug "") -- cgit v1.2.3-65-gdbad