diff --git a/acct-user/eturnal/eturnal-0.ebuild b/acct-user/eturnal/eturnal-0.ebuild
new file mode 100644
index 0000000000..1e1295de2b
--- /dev/null
+++ b/acct-user/eturnal/eturnal-0.ebuild
@@ -0,0 +1,12 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit acct-user
+
+ACCT_USER_ID=-1
+ACCT_USER_GROUPS=( turnserver )
+ACCT_USER_HOME="/opt/eturnal/home"
+
+acct-user_add_deps
diff --git a/acct-user/eturnal/metadata.xml b/acct-user/eturnal/metadata.xml
new file mode 100644
index 0000000000..d43dbfcccc
--- /dev/null
+++ b/acct-user/eturnal/metadata.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ cyber+gentoo@sysrq.in
+ Anna
+
+
diff --git a/app-admin/gentoo_update/Manifest b/app-admin/gentoo_update/Manifest
index bce690a9e2..e60ff6dd12 100644
--- a/app-admin/gentoo_update/Manifest
+++ b/app-admin/gentoo_update/Manifest
@@ -1 +1 @@
-DIST gentoo_update-0.2.2.gh.tar.gz 24757 BLAKE2B f6c8b0732f08af8ebe32ffd44a0331b71f8150107f6a66918f09fdd4987a4ee4e687ab807b100df879395cee1de4e26c9c99f6a7622500118d128887379cb2d7 SHA512 e3cc34e668de955389ca0b0b39eee3db31715e0f65c445fac7ee355b82c0ed9ab224cb9cff60cc170aa1632426566f6202bcea7d4bf9078c3faf3229f21007b8
+DIST gentoo_update-0.2.3.gh.tar.gz 25581 BLAKE2B a647627c6436f8c497b6970dea284399c98a7590804a8a1bfb965e692526554ef972766b6d6464307985b1d048d1a5e9d86175697b856f65ee524476f292b1b6 SHA512 373d58d27fd68912da6225a0a060a6cab472f232cb36461b711f1ae180fa58d3fadf5d10f8398319d6dedd6ef6949bf33903be172f3e0e35afed67e7a66fe4d7
diff --git a/app-admin/gentoo_update/gentoo_update-0.2.2.ebuild b/app-admin/gentoo_update/gentoo_update-0.2.3.ebuild
similarity index 100%
rename from app-admin/gentoo_update/gentoo_update-0.2.2.ebuild
rename to app-admin/gentoo_update/gentoo_update-0.2.3.ebuild
diff --git a/dev-erlang/conf/Manifest b/dev-erlang/conf/Manifest
new file mode 100644
index 0000000000..4d94e207c4
--- /dev/null
+++ b/dev-erlang/conf/Manifest
@@ -0,0 +1 @@
+DIST conf-0.2.6.tar.gz 23221 BLAKE2B acab57dc348e2690d093c4918a98556c1bd5ed267cb14d65132c18fcedc4af79aafc6d5fc6de999ea606b22ef275399b7ec6272a97be4d9f8bad26b1502c54cf SHA512 7e6f40ebf43fa90d2ad7d454388fee05e433c4800eb9484b82e6bd9280a6723c021e0e08dec47e40ca69f38c34b80708a4540fa39018d9051c9395535f0d48d6
diff --git a/dev-erlang/conf/conf-0.2.6.ebuild b/dev-erlang/conf/conf-0.2.6.ebuild
new file mode 100644
index 0000000000..dcded65698
--- /dev/null
+++ b/dev-erlang/conf/conf-0.2.6.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit rebar3
+
+DESCRIPTION="YAML configuration for Erlang applications"
+HOMEPAGE="https://github.com/processone/conf"
+SRC_URI="https://github.com/processone/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Broken test
+RESTRICT="test"
+
+DEPEND="
+ dev-erlang/fast_yaml
+ dev-erlang/yval
+"
+RDEPEND="${DEPEND}"
diff --git a/dev-erlang/conf/metadata.xml b/dev-erlang/conf/metadata.xml
new file mode 100644
index 0000000000..7701317b90
--- /dev/null
+++ b/dev-erlang/conf/metadata.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ cyber+gentoo@sysrq.in
+ Anna
+
+
+ processone/conf
+ https://hexdocs.pm/conf/readme.html
+
+
diff --git a/dev-erlang/yval/Manifest b/dev-erlang/yval/Manifest
new file mode 100644
index 0000000000..57fbe660ed
--- /dev/null
+++ b/dev-erlang/yval/Manifest
@@ -0,0 +1 @@
+DIST yval-1.0.10.tar.gz 18477 BLAKE2B 57396a18473da25ac0d9aad606e63930247e47ff289048cd0e21a744756b70faa377315a861b35be55c8a3f2f7d22b879da9c3cb7af6cb62d5cbf9cfc4275538 SHA512 1cc229a67521aad4fc22b1ba06ca2edca10306926d69d31d647160ff458eddf86df8e963a8b5f7fdcad9e527288e0933892d3fe1ee97b939a6da9274d9ba7b98
diff --git a/dev-erlang/yval/metadata.xml b/dev-erlang/yval/metadata.xml
new file mode 100644
index 0000000000..b1bb387b5e
--- /dev/null
+++ b/dev-erlang/yval/metadata.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ cyber+gentoo@sysrq.in
+ Anna
+
+
+ processone/yval
+ https://hexdocs.pm/yval/yval.html
+
+
diff --git a/dev-erlang/yval/yval-1.0.10.ebuild b/dev-erlang/yval/yval-1.0.10.ebuild
new file mode 100644
index 0000000000..0951802e6b
--- /dev/null
+++ b/dev-erlang/yval/yval-1.0.10.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit rebar3
+
+DESCRIPTION="YAML validator"
+HOMEPAGE="https://github.com/processone/yval"
+SRC_URI="https://github.com/processone/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Broken tests
+RESTRICT="test"
+
+DEPEND=">=dev-lang/erlang-21"
+RDEPEND="${DEPEND}"
diff --git a/eclass/rebar3.eclass b/eclass/rebar3.eclass
new file mode 100644
index 0000000000..4104bdcf64
--- /dev/null
+++ b/eclass/rebar3.eclass
@@ -0,0 +1,295 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: rebar3.eclass
+# @MAINTAINER:
+# Anna (cybertailor) Vyalkova
+# @AUTHOR:
+# Amadeusz Żołnowski
+# @SUPPORTED_EAPIS: 8
+# @BLURB: Build Erlang/OTP projects using dev-util/rebar:3.
+# @DESCRIPTION:
+# An eclass providing functions to build Erlang/OTP projects using
+# dev-util/rebar:3.
+#
+# rebar is a tool which tries to resolve dependencies itself which is by
+# cloning remote git repositories. Dependent projects are usually expected to
+# be in sub-directory 'deps' rather than looking at system Erlang lib
+# directory. Projects relying on rebar usually don't have 'install' make
+# targets. The eclass workarounds some of these problems. It handles
+# installation in a generic way for Erlang/OTP structured projects.
+
+case ${EAPI} in
+ 8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ -z ${_REBAR3_ECLASS} ]]; then
+
+inherit edo
+
+RDEPEND="dev-lang/erlang:="
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-util/rebar:3
+ >=sys-apps/gawk-4.1
+"
+
+# @ECLASS_VARIABLE: REBAR_PROFILE
+# @DESCRIPTION:
+# Rebar profile to use.
+: "${REBAR_PROFILE:=default}"
+
+# @ECLASS_VARIABLE: REBAR_APP_SRC
+# @DESCRIPTION:
+# Relative path to .app.src description file.
+: "${REBAR_APP_SRC:=src/${PN}.app.src}"
+
+# @FUNCTION: get_erl_libs
+# @RETURN: the path to Erlang lib directory
+# @DESCRIPTION:
+# Get the full path without EPREFIX to Erlang lib directory.
+get_erl_libs() {
+ echo "/usr/$(get_libdir)/erlang/lib"
+}
+
+# @FUNCTION: _rebar_find_dep
+# @INTERNAL
+# @USAGE:
+# @RETURN: 0 success, 1 dependency not found, 2 multiple versions found
+# @DESCRIPTION:
+# Find a Erlang package/project by name in Erlang lib directory. Project
+# directory is usually suffixed with version. It is matched to ''
+# or '-*'.
+_rebar_find_dep() {
+ local pn="${1}"
+ local p
+ local result
+
+ pushd "${EPREFIX}/$(get_erl_libs)" >/dev/null || return 1
+ for p in ${pn} ${pn}-*; do
+ if [[ -d ${p} ]]; then
+ # Ensure there's at most one matching.
+ [[ ${result} ]] && return 2
+ result="${p}"
+ fi
+ done
+ popd >/dev/null || die
+
+ [[ ${result} ]] || return 1
+ echo "${result}"
+}
+
+# @FUNCTION: rebar_disable_coverage
+# @USAGE: []
+# @DESCRIPTION:
+# Disable coverage in rebar.config. This is a workaround for failing coverage.
+# Coverage is not relevant in this context, so there's no harm to disable it,
+# although the issue should be fixed.
+rebar_disable_coverage() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local rebar_config="${1:-rebar.config}"
+
+ sed -e 's/{cover_enabled, true}/{cover_enabled, false}/' \
+ -i "${rebar_config}" \
+ || die "failed to disable coverage in ${rebar_config}"
+}
+
+# @FUNCTION: erebar3
+# @USAGE:
+# @DESCRIPTION:
+# Run rebar with verbose flag. Die on failure.
+erebar3() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ (( $# > 0 )) || die "erebar: at least one target is required"
+
+ case ${1} in
+ eunit|ct)
+ local -x ERL_LIBS="." ;;
+ *)
+ local -x ERL_LIBS="${EPREFIX}/$(get_erl_libs)" ;;
+ esac
+
+ edo rebar3 "$@"
+}
+
+# @FUNCTION: rebar_fix_include_path
+# @USAGE: []
+# @DESCRIPTION:
+# Fix path in rebar.config to 'include' directory of dependent project/package,
+# so it points to installation in system Erlang lib rather than relative 'deps'
+# directory.
+#
+# is optional. Default is 'rebar.config'.
+#
+# The function dies on failure.
+rebar_fix_include_path() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local pn="${1}"
+ local rebar_config="${2:-rebar.config}"
+ local erl_libs="${EPREFIX}/$(get_erl_libs)"
+ local p
+
+ p="$(_rebar_find_dep "${pn}")" \
+ || die "failed to unambiguously resolve dependency of '${pn}'"
+
+ gawk -i inplace \
+ -v erl_libs="${erl_libs}" -v pn="${pn}" -v p="${p}" '
+/^{[[:space:]]*erl_opts[[:space:]]*,/, /}[[:space:]]*\.$/ {
+ pattern = "\"(./)?deps/" pn "/include\"";
+ if (match($0, "{i,[[:space:]]*" pattern "[[:space:]]*}")) {
+ sub(pattern, "\"" erl_libs "/" p "/include\"");
+ }
+ print $0;
+ next;
+}
+1
+' "${rebar_config}" || die "failed to fix include paths in ${rebar_config} for '${pn}'"
+}
+
+# @FUNCTION: rebar_remove_deps
+# @USAGE: []
+# @DESCRIPTION:
+# Remove dependencies list from rebar.config and deceive build rules that any
+# dependencies are already fetched and built. Otherwise rebar tries to fetch
+# dependencies and compile them.
+#
+# is optional. Default is 'rebar.config'.
+#
+# The function dies on failure.
+rebar_remove_deps() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local rebar_config="${1:-rebar.config}"
+
+ mkdir -p "${S}/deps" && :>"${S}/deps/.got" && :>"${S}/deps/.built" || die
+ gawk -i inplace '
+/^{[[:space:]]*deps[[:space:]]*,/, /}[[:space:]]*\.$/ {
+ if ($0 ~ /}[[:space:]]*\.$/) {
+ print "{deps, []}.";
+ }
+ next;
+}
+1
+' "${rebar_config}" || die "failed to remove deps from ${rebar_config}"
+}
+
+# @FUNCTION: rebar_set_vsn
+# @USAGE: []
+# @DESCRIPTION:
+# Set version in project description file if it's not set.
+#
+# is optional. Default is PV stripped from version suffix.
+#
+# The function dies on failure.
+rebar_set_vsn() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local version="${1:-${PV%_*}}"
+
+ sed -e "s/vsn, git/vsn, \"${version}\"/" \
+ -i "${S}/${REBAR_APP_SRC}" \
+ || die "failed to set version in src/${PN}.app.src"
+}
+
+# @FUNCTION: rebar3_src_prepare
+# @DESCRIPTION:
+# Prevent rebar from fetching and compiling dependencies. Set version in
+# project description file if it's not set.
+#
+# Existence of rebar.config is optional, but file description file must exist
+# at 'src/${PN}.app.src'.
+rebar3_src_prepare() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ default_src_prepare
+ rebar_set_vsn
+ rm -f rebar.lock
+ if [[ -f rebar.config ]]; then
+ rebar_disable_coverage
+ rebar_remove_deps
+ fi
+}
+
+# @FUNCTION: rebar3_src_configure
+# @DESCRIPTION:
+# Configure with ERL_LIBS set.
+rebar3_src_configure() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local -x ERL_LIBS="${EPREFIX}/$(get_erl_libs)"
+ default_src_configure
+}
+
+# @FUNCTION: rebar3_src_compile
+# @DESCRIPTION:
+# Compile project with rebar.
+rebar3_src_compile() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ erebar3 as "${REBAR_PROFILE}" release --all
+}
+
+# @FUNCTION: rebar3_src_test
+# @DESCRIPTION:
+# Run unit tests.
+rebar3_src_test() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ erebar3 eunit -v
+}
+
+# @FUNCTION: rebar3_install_lib
+# @USAGE:
+# @DESCRIPTION:
+# Install BEAM files, include headers and native libraries.
+#
+# Function expects that project conforms to Erlang/OTP structure.
+rebar3_install_lib() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ local dest="$(get_erl_libs)/${P}"
+ insinto "${dest}"
+
+ pushd "${1?}" >/dev/null || die
+ for dir in ebin include priv; do
+ if [[ -d ${dir} && ! -L ${dir} ]]; then
+ cp -pR ${dir} "${ED%/}/${dest}/" || die "failed to install ${dir}/"
+ fi
+ done
+ popd >/dev/null || die
+}
+
+# @FUNCTION: rebar3_src_install
+# @DESCRIPTION:
+# Install built release or library.
+#
+# Function expects that project conforms to Erlang/OTP structure.
+rebar3_src_install() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ pushd "_build/${REBAR_PROFILE}" >/dev/null || die
+ if [[ -d rel/${PN} ]]; then
+ if ! declare -f rebar3_install_release >/dev/null; then
+ die "${FUNCNAME}: a custom function named 'rebar3_install_release' is required to install a release"
+ fi
+ pushd rel/${PN} >/dev/null || die
+ rebar3_install_release || die
+ popd >/dev/null || die
+ elif [[ -d lib/${PN} ]]; then
+ rebar3_install_lib lib/${PN}
+ else
+ die "No releases or libraries to install"
+ fi
+ popd >/dev/null || die
+
+ einstalldocs
+}
+
+_REBAR3_ECLASS=1
+fi
+
+EXPORT_FUNCTIONS src_prepare src_compile src_test src_install
diff --git a/games-util/r2modman-bin/r2modman-bin-3.1.45.ebuild b/games-util/r2modman-bin/r2modman-bin-3.1.45.ebuild
index 608fd53e6e..e2a6b4e7c4 100644
--- a/games-util/r2modman-bin/r2modman-bin-3.1.45.ebuild
+++ b/games-util/r2modman-bin/r2modman-bin-3.1.45.ebuild
@@ -25,8 +25,8 @@ SLOT="0"
RDEPEND="
net-dns/c-ares
- media-video/ffmpeg
- x11-libs/gtk+
+ media-video/ffmpeg[alsa]
+ x11-libs/gtk+[cups]
net-libs/http-parser
dev-libs/libappindicator
dev-libs/libevent
@@ -34,6 +34,7 @@ RDEPEND="
media-libs/libvpx
dev-libs/libxslt
x11-libs/libXScrnSaver
+ x11-libs/libxkbcommon
sys-libs/zlib[minizip]
dev-libs/nss
dev-libs/re2
diff --git a/gui-apps/phosh-tour/Manifest b/gui-apps/phosh-tour/Manifest
new file mode 100644
index 0000000000..0d4e5ef888
--- /dev/null
+++ b/gui-apps/phosh-tour/Manifest
@@ -0,0 +1 @@
+DIST phosh-tour-v0.28.0.tar.bz2 120380 BLAKE2B 629bd6eae4cca4d65d0725299d6d6303d32056b46c5df9109ffd9558f81d1e206acbd160c3ff244a328f42d33438d44642f31a2f77389cebb3dd60d793229ca8 SHA512 0c49f8bf0d89399fec5e67480374f1f396d01bb47a01906111395b7df37e33eaac6255c7374a7313edd6c1c7e3b5b829695e7a564b2b204036d045484bc77a63
diff --git a/gui-apps/phosh-tour/metadata.xml b/gui-apps/phosh-tour/metadata.xml
new file mode 100644
index 0000000000..ceaeeda064
--- /dev/null
+++ b/gui-apps/phosh-tour/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ cyber+gentoo@sysrq.in
+ Anna
+
+
+ guidog/phosh-tour
+
+
diff --git a/gui-apps/phosh-tour/phosh-tour-0.28.0.ebuild b/gui-apps/phosh-tour/phosh-tour-0.28.0.ebuild
new file mode 100644
index 0000000000..c28a966e2f
--- /dev/null
+++ b/gui-apps/phosh-tour/phosh-tour-0.28.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome2-utils meson xdg
+
+MY_P="${PN}-v${PV}"
+DESCRIPTION="Introduction to phosh on smartphones"
+HOMEPAGE="https://gitlab.gnome.org/guidog/phosh-tour"
+SRC_URI="https://gitlab.gnome.org/guidog/${PN}/-/archive/v${PV}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-libs/glib:2
+ >=gui-libs/gtk-4.4:4
+ >=gui-libs/libadwaita-1.1:1
+"
+RDEPEND="${DEPEND}"
+BDEPEND="sys-devel/gettext"
+
+src_configure() {
+ local emesonargs=(
+ -Dbrand="smartphone"
+ -Dvendor="Gentoo"
+ )
+ meson_src_configure
+}
+
+src_test() {
+ # No useful tests
+ :
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/net-im/eturnal/Manifest b/net-im/eturnal/Manifest
new file mode 100644
index 0000000000..f63060abde
--- /dev/null
+++ b/net-im/eturnal/Manifest
@@ -0,0 +1 @@
+DIST eturnal-1.12.0.tar.gz 919050 BLAKE2B 76c7f0709f82231cff47609e234e2555d68f86df8efa6117351cea8e632b91d023bf22542953a083b0172f9b55f0b1a24dd4abee94cbfde8b86ff4e76b233b82 SHA512 b990fd010d26dc29ab69124dd6db354ab018c1b8882ef7f82631c06234b79027ba838a746d6c606a9f6678feffb6bcaa2b879270c3abe407ef509a5f50367774
diff --git a/net-im/eturnal/eturnal-1.12.0.ebuild b/net-im/eturnal/eturnal-1.12.0.ebuild
new file mode 100644
index 0000000000..ec8200c41c
--- /dev/null
+++ b/net-im/eturnal/eturnal-1.12.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit rebar3 systemd
+
+DESCRIPTION="STUN/TURN server"
+HOMEPAGE="
+ https://eturnal.net/
+ https://github.com/processone/eturnal
+"
+SRC_URI="https://eturnal.net/download/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=dev-lang/erlang-21[ssl]
+ dev-libs/libyaml
+ dev-libs/openssl:=
+ >=dev-erlang/conf-0.1
+ dev-erlang/fast_tls
+ dev-erlang/fast_yaml
+ dev-erlang/p1_utils
+ >=dev-erlang/stun-1.2
+ dev-erlang/yval
+"
+RDEPEND="${DEPEND}
+ acct-user/eturnal
+"
+
+DOCS=( {CHANGELOG,README}.md doc/. )
+
+REBAR_PROFILE=distro
+
+src_configure() {
+ export ETURNAL_USER=eturnal
+ export ETURNAL_PREFIX="${EPREFIX}"/opt/eturnal
+ export ETURNAL_ETC_DIR="${EPREFIX}"/etc
+ export ERL_EPMD_ADDRESS=""
+ export CODE_LOADING=dynamic
+
+ export SKIP_DEPS=true
+
+ rebar3_src_configure
+}
+
+rebar3_install_release() {
+ mkdir -p "${ED}"/opt/eturnal || die
+ cp -pR bin lib releases "${ED}"/opt/eturnal/ || die
+
+ systemd_dounit etc/systemd/system/eturnal.service
+ newinitd etc/openrc/eturnal.initd eturnal
+ newconfd etc/openrc/eturnal.confd eturnal
+
+ insinto /etc
+ doins etc/eturnal.yml
+ doins -r etc/logrotate.d
+
+ keepdir /opt/eturnal/{log,run}
+ fowners eturnal:turnserver /opt/eturnal/{log,run}
+
+ dosym -r /opt/eturnal/bin/eturnalctl /usr/sbin/eturnalctl
+}
diff --git a/net-im/eturnal/metadata.xml b/net-im/eturnal/metadata.xml
new file mode 100644
index 0000000000..e9e540aab7
--- /dev/null
+++ b/net-im/eturnal/metadata.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ cyber+gentoo@sysrq.in
+ Anna
+
+
+ processone/eturnal
+ https://github.com/processone/eturnal/issues
+ https://eturnal.net/doc/
+
+
diff --git a/sys-boot/limine/Manifest b/sys-boot/limine/Manifest
index 9ed95029c4..0aca56a543 100644
--- a/sys-boot/limine/Manifest
+++ b/sys-boot/limine/Manifest
@@ -8,3 +8,4 @@ DIST limine-5.20230811.0.tar.xz 1289484 BLAKE2B 3044bef68ce62a701df30774d35ce886
DIST limine-5.20231103.0.tar.xz 1349960 BLAKE2B 72348e39ad8cd614e19d88c840580c58b3dbd5d4796f2fb525bb6333bd60d641cb0e3fb2abacbef209637708754a52aadc626c625ae3b548d4d3b3db08e474f1 SHA512 e1a7a5ecfca30bf9246e3e9f6ae92a7f788a9c0f896c408ad0f98de08d76137d18627cbe8c0d9c7b322c6e5674c0a6c1cc0d24a2fb9b082e7e4753988e9f2fd8
DIST limine-5.20231121.0.tar.xz 1366372 BLAKE2B b47b4da7be451d60c6da2c0c0d2df57fce9e767e6ae1b9a59e3e823bfcc492292363560bac70960399d23f5ff6f02ce94985f7f955e18d71c0c48f0e8faa3be7 SHA512 5ab7d0b578af39af0ffb980ecae282431bcaf463a60211d35ed229ef3e1c5f8d9392bbbee64732e70dd87411bedf233e32e953f714cecc44edad4b254221e761
DIST limine-5.20231124.0.tar.xz 1322812 BLAKE2B 8f15e8a77107a0b49cc58372d59b0fdfedaaaea0c82e46c8e86324e6fee1587f0d878ba77d70f3f24a19cc1a08cd5fc604d21f2252a53fc89f33a0a613874b62 SHA512 af37524f0d59de83f36921939c78421ce864343ef621a4b9ff1437c89080f9ef6467a04ea31f44f3904820dface10703f43b185d11a679bb7536d4573d2295c5
+DIST limine-6.20231227.0.tar.xz 1318188 BLAKE2B ff7c35fbe9b1ace85450b1e568b2acb8e8165d6465300e6401c2255390dfce981b1cba2cb3065614d422904c20b75c42bf6702884bdda0a9b0b7056df19ae1f8 SHA512 b716631c371774e3d48eee1aa6ff16234f9f9572a191b9cb39a9c18c8f60f08ab07a1e351f2e5efbc616a739a32f6e24cfaaf4ca9b04688018d2728a156f9677
diff --git a/sys-boot/limine/limine-6.20231227.0.ebuild b/sys-boot/limine/limine-6.20231227.0.ebuild
new file mode 100644
index 0000000000..73ea272148
--- /dev/null
+++ b/sys-boot/limine/limine-6.20231227.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Limine is a modern, advanced, and portable BIOS/UEFI multiprotocol bootloader"
+HOMEPAGE="https://limine-bootloader.org/"
+SRC_URI="https://github.com/limine-bootloader/limine/releases/download/v${PV}/limine-${PV}.tar.xz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+bios +bios-pxe +bios-cd +cd-efi +uefi32 +uefi64 +uefiaa64 +uefirv64"
+
+MY_LLVM_TARGETS="AArch64 ARM X86 RISCV"
+MY_LLVM_FLAGS="llvm_targets_${MY_LLVM_TARGETS// /(-),llvm_targets_}(-)"
+
+BDEPEND="
+ app-alternatives/gzip
+ dev-lang/nasm
+ sys-apps/findutils
+ sys-devel/clang[${MY_LLVM_FLAGS}]
+ sys-devel/lld
+ sys-devel/llvm[${MY_LLVM_FLAGS}]
+
+ cd-efi? ( sys-fs/mtools )
+"
+
+src_configure() {
+ local myconf=(
+ "$(use_enable bios)"
+ "$(use_enable bios-cd)"
+ "$(use_enable bios-pxe)"
+
+ "$(use_enable uefi32 uefi-ia32)"
+ "$(use_enable uefi64 uefi-x86-64)"
+ "$(use_enable uefiaa64 uefi-aarch64)"
+ "$(use_enable uefirv64 uefi-riscv64)"
+ "$(use_enable cd-efi uefi-cd)"
+ )
+
+ TOOLCHAIN_FOR_TARGET=llvm \
+ econf "${myconf[@]}"
+}
diff --git a/x11-wm/phoc/Manifest b/x11-wm/phoc/Manifest
index a33a4d1f50..04d7dbd67d 100644
--- a/x11-wm/phoc/Manifest
+++ b/x11-wm/phoc/Manifest
@@ -1,2 +1,3 @@
+DIST phoc-0.33.0.tar.xz 646148 BLAKE2B 74e6ac8eec5a37a9dd255d48b1bca65f992399eeb9dc19b22bb84e746f7cae95306c0a487aae828d939be2a0736408476aba6b947c1f44d825340bfcb1873d49 SHA512 7907c116b426383843b6782bafe5f416e7cb8b4039c9ee81ace35476df3b4d0ef92a968f57edef91094cd28387ceff03f1cdd802de65e0e9e3840eab03a78ac9
DIST phoc-v0.13.1.tar.gz 166867 BLAKE2B 6606855efe7099d12c8be3ee16c401bbcc618aaed2f264abe982cc4a49ccbc0e65fac1b7d8da62de4261bdf3a322f4313a15723c7b7cb7a9ce279957dbf89c78 SHA512 0da68ac4d0601e91ed5f59eeb0beea64180b546f58b300631495084d366fe515c26fe9d58d0ca20687032f6824ae98dcc82edd8a6c80caa95178d24d27ee2650
DIST wlroots-c9cd3502ba6113070020de50e41f0af72e0f5031.tar.gz 506612 BLAKE2B 70589e63cf223aa5b3634e057cc8c9d1f52d0f6c0fd3bbf66739bc1c934036bab0e8fc8337f51b1d4bb0d73c008b16421c354194cf215741e84ad88345465870 SHA512 af610233ec2343a3baefbb30db4b9a3f30dac4f8656293849be603fbcad0cdd65e91d80702c35e4aaf47437e8c301229c4933b7c8b5df3a7128979c94bcfcddc
diff --git a/x11-wm/phoc/phoc-0.33.0.ebuild b/x11-wm/phoc/phoc-0.33.0.ebuild
new file mode 100644
index 0000000000..24ca3424d6
--- /dev/null
+++ b/x11-wm/phoc/phoc-0.33.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome2-utils meson virtualx xdg
+
+DESCRIPTION="Wayland compositor for mobile phones"
+HOMEPAGE="https://gitlab.gnome.org/World/Phosh/phoc"
+SRC_URI="https://sources.phosh.mobi/releases/${PN}/${P}.tar.xz"
+
+LICENSE="|| ( GPL-3+ MIT ) GPL-3+ LGPL-2.1+ MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+X gtk-doc man test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=dev-libs/glib-2.70:2
+ dev-libs/json-glib
+ dev-libs/libinput:=
+ dev-libs/wayland
+ >=gnome-base/gnome-desktop-3.26:3
+ gnome-base/gsettings-desktop-schemas
+ >=gui-libs/wlroots-0.16.0:=[X?]
+