This commit is contained in:
TheK0tYaRa 2025-03-06 13:25:03 +02:00
parent 62993c74c5
commit 493ffd2b20
12 changed files with 656 additions and 492 deletions

View file

@ -18,23 +18,23 @@ BDEPEND="
${PYTHON_DEPS}
|| (
(
sys-devel/clang:17
llvm-core/clang:17
spirv? ( dev-util/spirv-llvm-translator:17 )
)
(
sys-devel/clang:16
llvm-core/clang:16
spirv? ( dev-util/spirv-llvm-translator:16 )
)
(
sys-devel/clang:15
llvm-core/clang:15
spirv? ( dev-util/spirv-llvm-translator:15 )
)
(
sys-devel/clang:14
llvm-core/clang:14
spirv? ( dev-util/spirv-llvm-translator:14 )
)
(
sys-devel/clang:13
llvm-core/clang:13
spirv? ( dev-util/spirv-llvm-translator:13 )
)
)
@ -48,7 +48,7 @@ llvm_check_deps() {
has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
return 1
fi
has_version -b "sys-devel/clang:${LLVM_SLOT}"
has_version -b "llvm-core/clang:${LLVM_SLOT}"
}
pkg_setup() {

View file

@ -18,23 +18,23 @@ BDEPEND="
${PYTHON_DEPS}
|| (
(
sys-devel/clang:17
llvm-core/clang:17
spirv? ( dev-util/spirv-llvm-translator:17 )
)
(
sys-devel/clang:16
llvm-core/clang:16
spirv? ( dev-util/spirv-llvm-translator:16 )
)
(
sys-devel/clang:15
llvm-core/clang:15
spirv? ( dev-util/spirv-llvm-translator:15 )
)
(
sys-devel/clang:14
llvm-core/clang:14
spirv? ( dev-util/spirv-llvm-translator:14 )
)
(
sys-devel/clang:13
llvm-core/clang:13
spirv? ( dev-util/spirv-llvm-translator:13 )
)
)
@ -48,7 +48,7 @@ llvm_check_deps() {
has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
return 1
fi
has_version -b "sys-devel/clang:${LLVM_SLOT}"
has_version -b "llvm-core/clang:${LLVM_SLOT}"
}
pkg_setup() {

View file

@ -61,7 +61,7 @@ DEPEND="
>=gui-libs/hyprutils-0.2.1
"
BDEPEND="
|| ( >=sys-devel/gcc-14:* >=sys-devel/clang-18:* )
|| ( >=sys-devel/gcc-14:* >=llvm-core/clang-18:* )
app-misc/jq
dev-build/cmake
>=dev-util/hyprwayland-scanner-0.3.8
@ -79,8 +79,8 @@ pkg_setup() {
eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc"
die "GCC version is too old to compile Hyprland!"
elif tc-is-clang && ver_test $(clang-version) -lt 18 ; then
eerror "Hyprland requires >=sys-devel/clang-18 to build"
eerror "Please upgrade Clang: emerge -v1 sys-devel/clang"
eerror "Hyprland requires >=llvm-core/clang-18 to build"
eerror "Please upgrade Clang: emerge -v1 llvm-core/clang"
die "Clang version is too old to compile Hyprland!"
fi
}

View file

@ -1,4 +1,3 @@
DIST mesa-24.0.0-rc3.tar.xz 19856164 BLAKE2B 08b01aba87a7b942831d6406319d8e08909a0dc0518f8ea552093faace06554de33afb54bfa6224e9530ad9b9c0c526f14693a497d4308286c15fe58fe44182e SHA512 0cd619cc79198981061f25e9464cdffa56b5cffbda69b339e7da275af92527c3cd3d3b6ec0d80f920fe0aae025874a2f15f37a737be6e051738fa26bb2907164
DIST mesa-24.3.4.tar.xz 30691532 BLAKE2B a5cf1f49c6d809d19510793f5d1dcec1a3842495d3b4166e303d7f2d4744d179811697d264c5c9b39f2819ebc64a76357195b3eae6b1d2a83128de141354e3c2 SHA512 9c23cd86fda4cf0289c5a78b08ceea8b01e5b141d86ee3e659fa46e62ff9586ff92a4984d2a340b5bf209c4c7f3414bf99f3ced19feee8fb39ef99fe572dbd55
DIST mesa-25.0.0.tar.xz 46643728 BLAKE2B 9aca2416ea4e304d46fda648cb9b8e04caa053458b91893fb874e9a30d8293722c3bed1098c2720b04b0c7278eba3b0387900b56e13b6133a23c0f6be705025c SHA512 7f5b6674c40b6c8dcab7934512ff754b40a6a8a466422c90236f614d322033d4d465307ddcd983f9f3afb1310e132ec3186a085d261c95493a0c460b2ec59ce8
DIST paste-1.0.14.crate 18157 BLAKE2B 35e8548611c51ee75f4d04926149e5e54870d7073d9b635d550a6fa0f85891f57f326bdbcff3dd8618cf40f8e08cf903ef87d9c034d5921d8b91e1db842cdd7c SHA512 3a793f0e5e773a7f7defc798a4c17ae9a40d715144632ea6cb0a8c785e14c4212046491df016bb9838281f8eaf327a79f01c1e2ac5f26785c028bc880faff9ee

View file

@ -1,450 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit llvm meson-multilib python-any-r1 linux-info
MY_P="${P/_/-}"
DESCRIPTION="OpenGL-like graphic library for Linux"
HOMEPAGE="https://www.mesa3d.org/ https://mesa.freedesktop.org/"
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/mesa.git"
inherit git-r3
else
SRC_URI="https://archive.mesa3d.org/${MY_P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris"
fi
LICENSE="MIT SGI-B-2.0"
SLOT="0"
RESTRICT="!test? ( test )"
RADEON_CARDS="r300 r600 radeon radeonsi"
VIDEO_CARDS="${RADEON_CARDS} d3d12 freedreno intel lavapipe lima nouveau panfrost v3d vc4 virgl vivante vmware"
for card in ${VIDEO_CARDS}; do
IUSE_VIDEO_CARDS+=" video_cards_${card}"
done
IUSE="${IUSE_VIDEO_CARDS}
cpu_flags_x86_sse2 d3d9 debug gles1 +gles2 +llvm
lm-sensors opencl osmesa +proprietary-codecs selinux
test unwind vaapi valgrind vdpau vulkan
vulkan-overlay wayland +X xa zink +zstd"
REQUIRED_USE="
d3d9? (
|| (
video_cards_intel
video_cards_r300
video_cards_r600
video_cards_radeonsi
video_cards_nouveau
video_cards_vmware
)
)
vulkan? ( video_cards_radeonsi? ( llvm ) )
vulkan-overlay? ( vulkan )
video_cards_lavapipe? ( llvm vulkan )
video_cards_radeon? ( x86? ( llvm ) amd64? ( llvm ) )
video_cards_r300? ( x86? ( llvm ) amd64? ( llvm ) )
video_cards_radeonsi? ( llvm )
vdpau? ( X )
xa? ( X )
zink? ( vulkan )
"
LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.110"
RDEPEND="
>=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}]
>=media-libs/libglvnd-1.3.2[X?,${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8[${MULTILIB_USEDEP}]
unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
llvm? (
video_cards_radeonsi? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
)
video_cards_r600? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
)
video_cards_radeon? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
)
)
lm-sensors? ( sys-apps/lm-sensors:=[${MULTILIB_USEDEP}] )
opencl? (
>=virtual/opencl-3
dev-libs/libclc[spirv(-)]
>=dev-util/spirv-tools-1.3.231.0
virtual/libelf:0=
)
vaapi? (
>=media-libs/libva-1.7.3:=[${MULTILIB_USEDEP}]
)
vdpau? ( >=x11-libs/libvdpau-1.1:=[${MULTILIB_USEDEP}] )
selinux? ( sys-libs/libselinux[${MULTILIB_USEDEP}] )
wayland? ( >=dev-libs/wayland-1.18.0[${MULTILIB_USEDEP}] )
${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_intel?,video_cards_nouveau?,video_cards_vc4?,video_cards_vivante?,video_cards_vmware?,${MULTILIB_USEDEP}]
X? (
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
>=x11-libs/libxshmfence-1.1[${MULTILIB_USEDEP}]
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
>=x11-libs/libXxf86vm-1.1.3[${MULTILIB_USEDEP}]
>=x11-libs/libxcb-1.13:=[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
x11-libs/xcb-util-keysyms[${MULTILIB_USEDEP}]
)
zink? ( media-libs/vulkan-loader:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
"
for card in ${RADEON_CARDS}; do
RDEPEND="${RDEPEND}
video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
"
done
RDEPEND="${RDEPEND}
video_cards_radeonsi? ( ${LIBDRM_DEPSTRING}[video_cards_amdgpu] )
"
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
# we need to *really* make sure we're not pulling one than more slot
# simultaneously.
#
# How to use it:
# 1. Specify LLVM_MAX_SLOT (inclusive), e.g. 17.
# 2. Specify LLVM_MIN_SLOT (inclusive), e.g. 15.
LLVM_MAX_SLOT="18"
LLVM_MIN_SLOT="15"
LLVM_USE_DEPS="llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}"
PER_SLOT_DEPSTR="
(
!opencl? ( sys-devel/llvm:@SLOT@[${LLVM_USE_DEPS}] )
opencl? ( sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}] )
opencl? ( dev-util/spirv-llvm-translator:@SLOT@ )
)
"
LLVM_DEPSTR="
|| (
$(for ((slot=LLVM_MAX_SLOT; slot>=LLVM_MIN_SLOT; slot--)); do
echo "${PER_SLOT_DEPSTR//@SLOT@/${slot}}"
done)
)
!opencl? ( <sys-devel/llvm-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
opencl? ( <sys-devel/clang-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
"
RDEPEND="${RDEPEND}
llvm? ( ${LLVM_DEPSTR} )
"
unset LLVM_MIN_SLOT {LLVM,PER_SLOT}_DEPSTR
DEPEND="${RDEPEND}
video_cards_d3d12? ( >=dev-util/directx-headers-1.610.0[${MULTILIB_USEDEP}] )
valgrind? ( dev-debug/valgrind )
wayland? ( >=dev-libs/wayland-protocols-1.30 )
X? (
x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-base/xorg-proto
)
"
BDEPEND="
${PYTHON_DEPS}
opencl? (
>=virtual/rust-1.62.0
>=dev-util/bindgen-0.58.0
)
app-alternatives/yacc
app-alternatives/lex
virtual/pkgconfig
$(python_gen_any_dep ">=dev-python/mako-0.8.0[\${PYTHON_USEDEP}]")
vulkan? (
dev-util/glslang
llvm? (
video_cards_intel? (
amd64? (
$(python_gen_any_dep "dev-python/ply[\${PYTHON_USEDEP}]")
~dev-util/intel_clc-${PV}
dev-libs/libclc[spirv(-)]
)
)
)
)
wayland? ( dev-util/wayland-scanner )
"
S="${WORKDIR}/${MY_P}"
EGIT_CHECKOUT_DIR=${S}
QA_WX_LOAD="
x86? (
usr/lib/libglapi.so.0.0.0
usr/lib/libOSMesa.so.8.0.0
usr/lib/libGLX_mesa.so.0.0.0
)"
#PATCHES=(
# "${FILESDIR}"/${PV}-symbols-check-Add-_GLOBAL_OFFSET_TABLE_.patch
# "${FILESDIR}"/${PV}-big-endian.patch
#)
llvm_check_deps() {
if use opencl; then
has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || return 1
has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || return 1
fi
has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
}
pkg_pretend() {
if use vulkan; then
if ! use video_cards_d3d12 &&
! use video_cards_freedreno &&
! use video_cards_intel &&
! use video_cards_radeonsi &&
! use video_cards_v3d; then
ewarn "Ignoring USE=vulkan since VIDEO_CARDS does not contain d3d12, freedreno, intel, radeonsi, or v3d"
fi
fi
if use vaapi; then
if ! use video_cards_d3d12 &&
! use video_cards_r600 &&
! use video_cards_radeonsi &&
! use video_cards_nouveau; then
ewarn "Ignoring USE=vaapi since VIDEO_CARDS does not contain d3d12, r600, radeonsi, or nouveau"
fi
fi
if use vdpau; then
if ! use video_cards_d3d12 &&
! use video_cards_r300 &&
! use video_cards_r600 &&
! use video_cards_radeonsi &&
! use video_cards_nouveau; then
ewarn "Ignoring USE=vdpau since VIDEO_CARDS does not contain d3d12, r300, r600, radeonsi, or nouveau"
fi
fi
if use xa; then
if ! use video_cards_freedreno &&
! use video_cards_nouveau &&
! use video_cards_vmware; then
ewarn "Ignoring USE=xa since VIDEO_CARDS does not contain freedreno, nouveau, or vmware"
fi
fi
if ! use llvm; then
use opencl && ewarn "Ignoring USE=opencl since USE does not contain llvm"
fi
if use osmesa && ! use llvm; then
ewarn "OSMesa will be slow without enabling USE=llvm"
fi
}
python_check_deps() {
python_has_version -b ">=dev-python/mako-0.8.0[${PYTHON_USEDEP}]" || return 1
if use llvm && use vulkan && use video_cards_intel && use amd64; then
python_has_version -b "dev-python/ply[${PYTHON_USEDEP}]" || return 1
fi
}
pkg_setup() {
# warning message for bug 459306
if use llvm && has_version sys-devel/llvm[!debug=]; then
ewarn "Mismatch between debug USE flags in media-libs/mesa and sys-devel/llvm"
ewarn "detected! This can cause problems. For details, see bug 459306."
fi
if use video_cards_intel ||
use video_cards_radeonsi; then
if kernel_is -ge 5 11 3; then
CONFIG_CHECK="~KCMP"
elif kernel_is -ge 5 11; then
CONFIG_CHECK="~CHECKPOINT_RESTORE"
elif kernel_is -ge 5 10 20; then
CONFIG_CHECK="~KCMP"
else
CONFIG_CHECK="~CHECKPOINT_RESTORE"
fi
linux-info_pkg_setup
fi
if use llvm; then
llvm_pkg_setup
fi
python-any-r1_pkg_setup
}
src_prepare() {
default
sed -i -e "/^PLATFORM_SYMBOLS/a '__gentoo_check_ldflags__'," \
bin/symbols-check.py || die # bug #830728
}
multilib_src_configure() {
local emesonargs=()
local platforms
use X && platforms+="x11"
use wayland && platforms+=",wayland"
emesonargs+=(-Dplatforms=${platforms#,})
if use video_cards_intel ||
use video_cards_r300 ||
use video_cards_r600 ||
use video_cards_radeonsi ||
use video_cards_nouveau ||
use video_cards_vmware; then
emesonargs+=($(meson_use d3d9 gallium-nine))
else
emesonargs+=(-Dgallium-nine=false)
fi
if use video_cards_d3d12 ||
use video_cards_r600 ||
use video_cards_radeonsi ||
use video_cards_nouveau; then
emesonargs+=($(meson_feature vaapi gallium-va))
use vaapi && emesonargs+=( -Dva-libs-path="${EPREFIX}"/usr/$(get_libdir)/va/drivers )
else
emesonargs+=(-Dgallium-va=disabled)
fi
if use video_cards_d3d12; then
emesonargs+=($(meson_feature vaapi gallium-d3d12-video))
fi
if use video_cards_d3d12 ||
use video_cards_r300 ||
use video_cards_r600 ||
use video_cards_radeonsi ||
use video_cards_nouveau; then
emesonargs+=($(meson_feature vdpau gallium-vdpau))
else
emesonargs+=(-Dgallium-vdpau=disabled)
fi
if use video_cards_freedreno ||
use video_cards_nouveau ||
use video_cards_vmware; then
emesonargs+=($(meson_feature xa gallium-xa))
else
emesonargs+=(-Dgallium-xa=disabled)
fi
if use video_cards_freedreno ||
use video_cards_lima ||
use video_cards_panfrost ||
use video_cards_v3d ||
use video_cards_vc4 ||
use video_cards_vivante; then
gallium_enable -- kmsro
fi
gallium_enable -- swrast
gallium_enable video_cards_freedreno freedreno
gallium_enable video_cards_intel crocus i915 iris
gallium_enable video_cards_lima lima
gallium_enable video_cards_d3d12 d3d12
gallium_enable video_cards_nouveau nouveau
gallium_enable video_cards_panfrost panfrost
gallium_enable video_cards_v3d v3d
gallium_enable video_cards_vc4 vc4
gallium_enable video_cards_virgl virgl
gallium_enable video_cards_vivante etnaviv
gallium_enable video_cards_vmware svga
gallium_enable zink zink
gallium_enable video_cards_r300 r300
gallium_enable video_cards_r600 r600
gallium_enable video_cards_radeonsi radeonsi
if ! use video_cards_r300 && \
! use video_cards_r600; then
gallium_enable video_cards_radeon r300 r600
fi
if use llvm && use opencl; then
PKG_CONFIG_PATH="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/$(get_libdir)/pkgconfig"
# See https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/rusticl.rst
emesonargs+=(
$(meson_native_true gallium-rusticl)
-Drust_std=2021
)
fi
if use vulkan; then
vulkan_enable video_cards_lavapipe swrast
vulkan_enable video_cards_freedreno freedreno
vulkan_enable video_cards_intel intel intel_hasvk
vulkan_enable video_cards_d3d12 microsoft-experimental
vulkan_enable video_cards_radeonsi amd
vulkan_enable video_cards_v3d broadcom
fi
driver_list() {
local drivers="$(sort -u <<< "${1// /$'\n'}")"
echo "${drivers//$'\n'/,}"
}
local vulkan_layers
use vulkan && vulkan_layers+="device-select"
use vulkan-overlay && vulkan_layers+=",overlay"
emesonargs+=(-Dvulkan-layers=${vulkan_layers#,})
if use llvm && use vulkan && use video_cards_intel && use amd64; then
emesonargs+=(-Dintel-clc=system)
else
emesonargs+=(-Dintel-clc=disabled)
fi
emesonargs+=(
$(meson_use test build-tests)
-Dglx=$(usex X dri disabled)
-Dshared-glapi=enabled
-Ddri3=enabled
-Degl=enabled
-Dexpat=enabled
-Dgbm=enabled
-Dglvnd=true
$(meson_feature gles1)
$(meson_feature gles2)
$(meson_feature llvm)
$(meson_feature lm-sensors lmsensors)
$(meson_use osmesa)
$(meson_use selinux)
$(meson_feature unwind libunwind)
$(meson_feature zstd)
$(meson_use cpu_flags_x86_sse2 sse2)
-Dvalgrind=$(usex valgrind auto disabled)
-Dvideo-codecs=$(usex proprietary-codecs "h264dec,h264enc,h265dec,h265enc,vc1dec" "")
-Dgallium-drivers=$(driver_list "${GALLIUM_DRIVERS[*]}")
-Dvulkan-drivers=$(driver_list "${VULKAN_DRIVERS[*]}")
--buildtype $(usex debug debug plain)
-Db_ndebug=$(usex debug false true)
)
meson_src_configure
}
multilib_src_test() {
meson_src_test -t 100
}
# $1 - VIDEO_CARDS flag (check skipped for "--")
# other args - names of DRI drivers to enable
gallium_enable() {
if [[ $1 == -- ]] || use $1; then
shift
GALLIUM_DRIVERS+=("$@")
fi
}
vulkan_enable() {
if [[ $1 == -- ]] || use $1; then
shift
VULKAN_DRIVERS+=("$@")
fi
}

View file

@ -1 +0,0 @@
carla-9999-r1.ebuild

View file

@ -0,0 +1,102 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8,9,10} )
inherit python-single-r1 xdg-utils
DESCRIPTION="Fully-featured audio plugin host, supports many audio drivers and plugin formats"
HOMEPAGE="http://kxstudio.linuxaudio.org/Applications:Carla"
if [[ ${PV} == *9999 ]]; then
# Disable submodules to prevent external plugins from being built and installed
inherit git-r3
EGIT_REPO_URI="https://github.com/falkTX/Carla.git"
EGIT_SUBMODULES=()
else
SRC_URI="https://github.com/falkTX/Carla/archive/v${PV}.tar.gz -> ${P}.tar.gz"
RESTRICT="mirror"
KEYWORDS="~amd64"
S="${WORKDIR}/Carla-${PV}"
fi
LICENSE="GPL-2 LGPL-3"
SLOT="0"
IUSE="alsa gtk gtk2 opengl osc pulseaudio rdf sf2 sndfile X"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}
$(python_gen_cond_dep 'dev-python/PyQt5[gui,opengl?,svg,widgets,${PYTHON_USEDEP}]')
virtual/jack
alsa? ( media-libs/alsa-lib )
gtk? ( x11-libs/gtk+:3 )
gtk2? ( x11-libs/gtk+:2 )
osc? (
media-libs/liblo
media-libs/pyliblo
)
pulseaudio? ( media-sound/pulseaudio )
rdf? ( dev-python/rdflib )
sf2? ( media-sound/fluidsynth )
sndfile? ( media-libs/libsndfile )
X? ( x11-base/xorg-server )"
DEPEND=${RDEPEND}
src_prepare() {
sed -i -e "s|exec \$PYTHON|exec ${PYTHON}|" \
data/carla \
data/carla-control \
data/carla-database \
data/carla-jack-multi \
data/carla-jack-single \
data/carla-patchbay \
data/carla-rack \
data/carla-settings || die "sed failed"
default
}
src_compile() {
myemakeargs=(
LIBDIR="/usr/$(get_libdir)"
SKIP_STRIPPING=true
HAVE_FFMPEG=false
HAVE_ZYN_DEPS=false
HAVE_ZYN_UI_DEPS=false
HAVE_QT4=false
HAVE_QT5=true
HAVE_PYQT5=true
DEFAULT_QT=5
HAVE_ALSA=$(usex alsa true false)
HAVE_FLUIDSYNTH=$(usex sf2 true false)
HAVE_GTK2=$(usex gtk2 true false)
HAVE_GTK3=$(usex gtk true false)
HAVE_LIBLO=$(usex osc true false)
HAVE_PULSEAUDIO=$(usex pulseaudio true false)
HAVE_SNDFILE=$(usex sndfile true false)
HAVE_X11=$(usex X true false)
)
# Print which options are enabled/disabled
make features PREFIX="/usr" "${myemakeargs[@]}"
emake PREFIX="/usr" "${myemakeargs[@]}"
}
src_install() {
emake DESTDIR="${D}" PREFIX="/usr" "${myemakeargs[@]}" install
if ! use osc; then
find "${D}/usr" -iname "carla-control*" | xargs rm
fi
}
pkg_postinst() {
xdg_mimeinfo_database_update
xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
xdg_mimeinfo_database_update
xdg_desktop_database_update
xdg_icon_cache_update
}

View file

@ -1 +0,0 @@
pipewire-9999.ebuild

View file

@ -0,0 +1,480 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# 1. Please regularly check (even at the point of bumping) Fedora's packaging
# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
#
# 2. Upstream also sometimes amend release notes for the previous release to mention
# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
#
# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
inherit git-r3
else
if [[ ${PV} == *_p* ]] ; then
MY_COMMIT=""
SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
S="${WORKDIR}"/${PN}-${MY_COMMIT}
else
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
fi
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~riscv ~sparc ~x86"
fi
DESCRIPTION="Multimedia processing graphs"
HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
IUSE="bluetooth dbus docs echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
IUSE+=" modemmanager pipewire-alsa readline roc selinux sound-server ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
# configuring their systems to send PW sink output to the emulated
# JACK's sink - doing so is likely to yield no audio, cause a CPU
# cycles consuming loop (and may even cause GUI crashes)!
# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
# which provides adequate guarantee that alsa-lib will be able to provide audio services.
# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
REQUIRED_USE="
ffmpeg? ( extra )
bluetooth? ( dbus )
jack-sdk? ( !jack-client )
modemmanager? ( bluetooth )
system-service? ( systemd )
!sound-server? ( !pipewire-alsa )
jack-client? ( dbus )
"
RESTRICT="!test? ( test )"
BDEPEND="
>=dev-util/meson-0.59
virtual/pkgconfig
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
dbus? ( dev-util/gdbus-codegen )
docs? (
app-doc/doxygen
media-gfx/graphviz
)
"
# * While udev could technically be optional, it's needed for a number of options,
# and not really worth it, bug #877769.
#
# * Supports both legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1.
# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
RDEPEND="
acct-group/audio
acct-group/pipewire
media-libs/alsa-lib[${MULTILIB_USEDEP}]
sys-libs/ncurses:=[unicode(+)]
virtual/libintl[${MULTILIB_USEDEP}]
virtual/libudev[${MULTILIB_USEDEP}]
bluetooth? (
dev-libs/glib
media-libs/fdk-aac
media-libs/libldac
media-libs/libfreeaptx
media-libs/opus
media-libs/sbc
>=net-wireless/bluez-4.101:=
virtual/libusb:1
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
echo-cancel? ( media-libs/webrtc-audio-processing:1 )
extra? ( >=media-libs/libsndfile-1.0.20 )
ffmpeg? ( media-video/ffmpeg:= )
flatpak? ( dev-libs/glib )
gstreamer? (
>=dev-libs/glib-2.32.0:2
>=media-libs/gstreamer-1.10.0:1.0
media-libs/gst-plugins-base:1.0
)
gsettings? ( >=dev-libs/glib-2.26.0:2 )
ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
jack-sdk? (
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
liblc3? ( media-sound/liblc3 )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
sound-server? ( !media-sound/pulseaudio-daemon )
roc? ( media-libs/roc-toolkit )
readline? ( sys-libs/readline:= )
selinux? ( sys-libs/libselinux )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
system-service? ( acct-user/pipewire )
v4l? ( media-libs/libv4l )
X? (
media-libs/libcanberra
x11-libs/libX11
x11-libs/libXfixes
)
zeroconf? ( net-dns/avahi )
"
DEPEND="${RDEPEND}"
# TODO: Consider use cases where pipewire is not used for driving audio
# Doing so with WirePlumber currently involves editing Lua scripts
PDEPEND=">=media-video/wireplumber-0.4.8-r3"
# Present RDEPEND that are currently always disabled due to the PW
# code using them being required to be disabled by Gentoo guidelines
# (i.e. developer binaries not meant for users) and unready code
# media-libs/libsdl2
# >=media-libs/vulkan-loader-1.1.69
#
# Ditto for DEPEND
# >=dev-util/vulkan-headers-1.1.69
DOCS=( {README,INSTALL}.md NEWS )
PATCHES=(
"${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
)
python_check_deps() {
python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
}
src_prepare() {
default
# Used for upstream backports
[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
}
multilib_src_configure() {
# https://bugs.gentoo.org/838301
filter-flags -fno-semantic-interposition
local emesonargs=(
-Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
$(meson_feature dbus)
$(meson_native_use_feature zeroconf avahi)
$(meson_native_use_feature docs docs)
$(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
$(meson_native_disabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
$(meson_feature ieee1394 libffado)
$(meson_native_use_feature gstreamer)
$(meson_native_use_feature gstreamer gstreamer-device-provider)
$(meson_native_use_feature gsettings)
$(meson_native_use_feature systemd)
$(meson_native_use_feature system-service systemd-system-service)
-Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
-Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
$(meson_native_use_feature systemd systemd-user-service)
$(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
$(meson_feature selinux)
-Dspa-plugins=enabled
-Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
-Dcompress-offload=disabled # TODO: tinycompress unpackaged
-Daudiomixer=enabled # Matches upstream
-Daudioconvert=enabled # Matches upstream
$(meson_native_use_feature bluetooth bluez5)
$(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
$(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
# https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
$(meson_native_use_feature modemmanager bluez5-backend-native-mm)
$(meson_native_use_feature bluetooth bluez5-backend-ofono)
$(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
$(meson_native_use_feature bluetooth bluez5-codec-aac)
$(meson_native_use_feature bluetooth bluez5-codec-aptx)
$(meson_native_use_feature bluetooth bluez5-codec-ldac)
$(meson_native_use_feature bluetooth opus)
$(meson_native_use_feature bluetooth bluez5-codec-opus)
$(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
$(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
$(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
$(meson_native_use_feature flatpak)
-Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
$(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
$(meson_use jack-sdk jack-devel)
$(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
-Dsupport=enabled # Miscellaneous/common plugins, such as null sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
-Dbluez5-codec-lc3plus=disabled # unpackaged
$(meson_native_use_feature liblc3 bluez5-codec-lc3)
$(meson_native_use_feature lv2)
$(meson_native_use_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
$(meson_native_use_feature roc)
$(meson_native_use_feature readline)
$(meson_native_use_feature ssl raop)
-Dvideoconvert=enabled # Matches upstream
-Dvideotestsrc=enabled # Matches upstream
-Dvolume=enabled # Matches upstream
-Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
$(meson_native_use_feature extra pw-cat)
-Dudev=enabled
-Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
-Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
-Dlibmysofa=disabled # libmysofa is unpackaged
$(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
-Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
# We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
# just became stable, with 5.15 being the previous LTS. Many people
# are still on it.
-Dpam-defaults-install=true
# Just for bell sounds in X11 right now.
$(meson_native_use_feature X x11)
$(meson_native_use_feature X x11-xfixes)
$(meson_native_use_feature X libcanberra)
)
meson_src_configure
}
multilib_src_test() {
meson_src_test --timeout-multiplier 10
}
multilib_src_install() {
# Our custom DOCS do not exist in multilib source directory
DOCS= meson_src_install
}
multilib_src_install_all() {
einstalldocs
if use pipewire-alsa; then
dodir /etc/alsa/conf.d
# Install pipewire conf loader hook
insinto /usr/share/alsa/alsa.conf.d
doins "${FILESDIR}"/99-pipewire-default-hook.conf
eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
# These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
# And the current dosym8 -r implementation is likely affected by the same issue, too.
dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
fi
# Enable required wireplumber alsa and bluez monitors
if use sound-server; then
dodir /etc/wireplumber/main.lua.d
echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die
dodir /etc/wireplumber/bluetooth.lua.d
echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die
fi
if use system-service; then
newtmpfiles - pipewire.conf <<-EOF || die
d /run/pipewire 0755 pipewire pipewire - -
EOF
fi
if ! use systemd; then
insinto /etc/xdg/autostart
newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
exeinto /usr/bin
newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher
doman "${FILESDIR}"/gentoo-pipewire-launcher.1
# Disable pipewire-pulse if sound-server is disabled.
if ! use sound-server ; then
sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
fi
eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
fi
}
pkg_postrm() {
udev_reload
}
pkg_preinst() {
HAD_SOUND_SERVER=0
HAD_SYSTEM_SERVICE=0
if has_version "media-video/pipewire[sound-server(-)]" ; then
HAD_SOUND_SERVER=1
fi
if has_version "media-video/pipewire[system-service(-)]" ; then
HAD_SYSTEM_SERVICE=1
fi
}
pkg_postinst() {
udev_reload
use system-service && tmpfiles_process pipewire.conf
local ver
for ver in ${REPLACING_VERSIONS} ; do
if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
# https://bugs.gentoo.org/908490
# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
ewarn "Please restart KWin/Mutter after upgrading PipeWire."
ewarn "Screencasting may not work until you do."
fi
if ver_test ${ver} -le 0.3.66-r1 ; then
elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
elog "and limits needed to function smoothly:"
elog
elog "1. Please make sure your user is in the 'pipewire' group for"
elog "the best experience with realtime scheduling (PAM limits behavior)!"
elog "You can add your account with:"
elog " usermod -aG pipewire <youruser>"
elog
elog "2. For the best experience with fast user switching, it is recommended"
elog "that you remove your user from the 'audio' group unless you rely on the"
elog "audio group for device access control or ACLs.:"
elog " usermod -rG audio <youruser>"
elog
if ! use jack-sdk ; then
elog
elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
elog "alternative libraries have been installed to a non-default location."
elog "To use them, put pw-jack <application> before every JACK application."
elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
elog "provider is still needed to compile the JACK applications themselves."
elog
fi
if use systemd ; then
ewarn
ewarn "PipeWire daemon startup has been moved to a launcher script!"
ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
ewarn
ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
ewarn "advised that a D-Bus user session is set up before starting the script."
ewarn
fi
if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
elog
elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
elog "are recommended to edit pulseaudio client configuration files:"
elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
elog "if it exists, and disable autospawning of the original daemon by setting:"
elog
elog " autospawn = no"
elog
elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
elog
elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
elog "command:"
elog
elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
elog
fi
if has_version 'net-misc/ofono' ; then
ewarn "Native backend has become default. Please disable oFono via:"
if systemd_is_booted ; then
ewarn "systemctl disable ofono"
else
ewarn "rc-update delete ofono"
fi
fi
fi
done
if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
# TODO: We could drop most of this if we set up systemd presets?
# They're worth looking into because right now, the out-of-the-box experience
# is automatic on OpenRC, while it needs manual intervention on systemd.
if use sound-server && use systemd ; then
elog
elog "When switching from PulseAudio, you may need to disable PulseAudio:"
elog
elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
elog
elog "To use PipeWire, the user units must be manually enabled"
elog "by running this command as each user you use for desktop activities:"
elog
elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
elog
elog "A reboot is recommended to avoid interferences from still running"
elog "PulseAudio daemon."
elog
elog "Both new users and those upgrading need to enable WirePlumber"
elog "for relevant users:"
elog
elog " systemctl --user disable pipewire-media-session.service"
elog " systemctl --user --force enable wireplumber.service"
elog
elog "Root user may replace --user with --global to change system default"
elog "configuration for all of the above commands."
elog
fi
if ! use sound-server ; then
ewarn
ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
ewarn "your sound, please enable it. See the wiki at"
ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
ewarn "for more details."
ewarn
fi
fi
if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
ewarn
ewarn "You have enabled the system-service USE flag, which installs"
ewarn "the system-wide systemd units that enable PipeWire to run as a system"
ewarn "service. This is more than likely NOT what you want. You are strongly"
ewarn "advised not to enable this mode and instead stick with systemd user"
ewarn "units. The default configuration files will likely not work out of the"
ewarn "box, and you are on your own with configuration."
ewarn
fi
elog "For latest tips and tricks, troubleshooting information, and documentation"
elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
elog
optfeature_header "The following can be installed for optional runtime features:"
optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
if use sound-server && ! use pipewire-alsa; then
optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
fi
}

View file

@ -1,4 +1,4 @@
BDEPEND=|| ( dev-lang/python:3.12 dev-lang/python:3.11 dev-lang/python:3.10 ) || ( ( sys-devel/clang:17 spirv? ( dev-util/spirv-llvm-translator:17 ) ) ( sys-devel/clang:16 spirv? ( dev-util/spirv-llvm-translator:16 ) ) ( sys-devel/clang:15 spirv? ( dev-util/spirv-llvm-translator:15 ) ) ( sys-devel/clang:14 spirv? ( dev-util/spirv-llvm-translator:14 ) ) ( sys-devel/clang:13 spirv? ( dev-util/spirv-llvm-translator:13 ) ) ) app-alternatives/ninja >=dev-build/cmake-3.20.5 >=dev-vcs/git-1.8.2.1[curl]
BDEPEND=|| ( dev-lang/python:3.12 dev-lang/python:3.11 dev-lang/python:3.10 ) || ( ( llvm-core/clang:17 spirv? ( dev-util/spirv-llvm-translator:17 ) ) ( llvm-core/clang:16 spirv? ( dev-util/spirv-llvm-translator:16 ) ) ( llvm-core/clang:15 spirv? ( dev-util/spirv-llvm-translator:15 ) ) ( llvm-core/clang:14 spirv? ( dev-util/spirv-llvm-translator:14 ) ) ( llvm-core/clang:13 spirv? ( dev-util/spirv-llvm-translator:13 ) ) ) app-alternatives/ninja >=dev-build/cmake-3.20.5 >=dev-vcs/git-1.8.2.1[curl]
DEFINED_PHASES=compile configure install prepare setup test unpack
DEPEND=!!llvm-core/llvm:0
DESCRIPTION=OpenCL C library
@ -10,4 +10,4 @@ LICENSE=Apache-2.0-with-LLVM-exceptions || ( MIT BSD )
PROPERTIES=live
SLOT=0
_eclasses_=toolchain-funcs 6afdb6107430c1832ca7e16aacbf8fa1 multilib b2a329026f2e404e9e371097dda47f96 flag-o-matic 357f1a896fbedcd06e5ce55419c49eb9 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 xdg-utils 42869b3c8d86a70ef3cf75165a395e09 cmake 10a50dfaf728b802fcfd37f8d0da9056 llvm-utils 7f49c40879f833f9d07e2d5a9643077b llvm df1cea363f19e80316ea702563b607be git-r3 875eb471682d3e1f18da124be97dcc81 llvm.org 3c3c3293d504545c5444490c6d1a708a python-utils-r1 b7726144f5af59e186d66746d0f513e5 python-any-r1 891415dfe39ad9b41b461f2b86354af0
_md5_=dc9bc15e80ab532bfe00e0f981ba4b75
_md5_=6b44c90e7a177441660696db6c80898d

View file

@ -1,4 +1,4 @@
BDEPEND=|| ( dev-lang/python:3.12 dev-lang/python:3.11 dev-lang/python:3.10 ) || ( ( sys-devel/clang:17 spirv? ( dev-util/spirv-llvm-translator:17 ) ) ( sys-devel/clang:16 spirv? ( dev-util/spirv-llvm-translator:16 ) ) ( sys-devel/clang:15 spirv? ( dev-util/spirv-llvm-translator:15 ) ) ( sys-devel/clang:14 spirv? ( dev-util/spirv-llvm-translator:14 ) ) ( sys-devel/clang:13 spirv? ( dev-util/spirv-llvm-translator:13 ) ) ) verify-sig? ( >=sec-keys/openpgp-keys-llvm-18.1.6 ) app-alternatives/ninja >=dev-build/cmake-3.20.5 verify-sig? ( app-crypt/gnupg >=app-portage/gemato-20 )
BDEPEND=|| ( dev-lang/python:3.12 dev-lang/python:3.11 dev-lang/python:3.10 ) || ( ( llvm-core/clang:17 spirv? ( dev-util/spirv-llvm-translator:17 ) ) ( llvm-core/clang:16 spirv? ( dev-util/spirv-llvm-translator:16 ) ) ( llvm-core/clang:15 spirv? ( dev-util/spirv-llvm-translator:15 ) ) ( llvm-core/clang:14 spirv? ( dev-util/spirv-llvm-translator:14 ) ) ( llvm-core/clang:13 spirv? ( dev-util/spirv-llvm-translator:13 ) ) ) verify-sig? ( >=sec-keys/openpgp-keys-llvm-18.1.6 ) app-alternatives/ninja >=dev-build/cmake-3.20.5 verify-sig? ( app-crypt/gnupg >=app-portage/gemato-20 )
DEFINED_PHASES=compile configure install prepare setup test unpack
DEPEND=!!llvm-core/llvm:0
DESCRIPTION=OpenCL C library
@ -10,4 +10,4 @@ LICENSE=Apache-2.0-with-LLVM-exceptions || ( MIT BSD )
SLOT=0
SRC_URI=https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0-rc1/llvm-project-18.1.0rc1.src.tar.xz verify-sig? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.0-rc1/llvm-project-18.1.0rc1.src.tar.xz.sig )
_eclasses_=toolchain-funcs 6afdb6107430c1832ca7e16aacbf8fa1 multilib b2a329026f2e404e9e371097dda47f96 flag-o-matic 357f1a896fbedcd06e5ce55419c49eb9 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 xdg-utils 42869b3c8d86a70ef3cf75165a395e09 cmake 10a50dfaf728b802fcfd37f8d0da9056 llvm-utils 7f49c40879f833f9d07e2d5a9643077b llvm df1cea363f19e80316ea702563b607be eapi9-pipestatus d2c134036ac31c3085aebc9147f572bd verify-sig 7433426b6b28bf2737ba4b82c8aa8c53 llvm.org 3c3c3293d504545c5444490c6d1a708a python-utils-r1 b7726144f5af59e186d66746d0f513e5 python-any-r1 891415dfe39ad9b41b461f2b86354af0
_md5_=dc9bc15e80ab532bfe00e0f981ba4b75
_md5_=6b44c90e7a177441660696db6c80898d

View file

@ -1,4 +1,4 @@
BDEPEND=|| ( >=sys-devel/gcc-14:* >=sys-devel/clang-18:* ) app-misc/jq dev-build/cmake >=dev-util/hyprwayland-scanner-0.3.8 virtual/pkgconfig x11-libs/libdrm x11-libs/libxcb >=dev-build/meson-1.2.3 app-alternatives/ninja dev-build/meson-format-array
BDEPEND=|| ( >=sys-devel/gcc-14:* >=llvm-core/clang-18:* ) app-misc/jq dev-build/cmake >=dev-util/hyprwayland-scanner-0.3.8 virtual/pkgconfig x11-libs/libdrm x11-libs/libxcb >=dev-build/meson-1.2.3 app-alternatives/ninja dev-build/meson-format-array
DEFINED_PHASES=compile configure install prepare setup test
DEPEND=app-alternatives/ninja dev-build/cmake dev-build/meson dev-vcs/git virtual/pkgconfig dev-cpp/tomlplusplus dev-libs/glib:2 dev-libs/libinput >=dev-libs/wayland-1.20.0 gui-libs/aquamarine >=gui-libs/hyprcursor-0.1.9 media-libs/libglvnd x11-libs/cairo x11-libs/libdrm x11-libs/libxkbcommon x11-libs/pango x11-libs/pixman x11-libs/libXcursor X? ( x11-libs/libxcb:0= x11-base/xwayland x11-libs/xcb-util-errors x11-libs/xcb-util-wm ) >=dev-libs/hyprland-protocols-0.3 >=dev-libs/hyprlang-0.3.2 >=dev-libs/wayland-protocols-1.36 >=gui-libs/hyprutils-0.2.1
DESCRIPTION=A dynamic tiling Wayland compositor that doesn't sacrifice on its looks
@ -12,4 +12,4 @@ RDEPEND=app-alternatives/ninja dev-build/cmake dev-build/meson dev-vcs/git virtu
SLOT=0
SRC_URI=https://github.com/hyprwm/Hyprland/releases/download/v0.43.0/source-v0.43.0.tar.gz -> hyprland-0.43.0.gh.tar.gz
_eclasses_=toolchain-funcs 6afdb6107430c1832ca7e16aacbf8fa1 multilib b2a329026f2e404e9e371097dda47f96 flag-o-matic 357f1a896fbedcd06e5ce55419c49eb9 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 python-utils-r1 b7726144f5af59e186d66746d0f513e5 meson 99466844dd8d4fcfb07578a76f5a9922
_md5_=0e0554f6d2d545544263090b138564ec
_md5_=06f88a9608022ac76a4cc5baa84b4221

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
hypr-9999.ebuild

View file

@ -0,0 +1,53 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs
DESCRIPTION="A dynamic Linux tiling window manager for Xorg"
HOMEPAGE="https://github.com/hyprwm/Hypr"
if [[ "${PV}" = *9999 ]]; then
EGIT_REPO_URI="https://github.com/hyprwm/Hypr.git"
inherit git-r3
else
SRC_URI="https://github.com/hyprwm/Hypr/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
S="${WORKDIR}/Hypr-${PV}"
PATCHES=(
"${FILESDIR}/fix-build.patch"
)
fi
LICENSE="BSD"
SLOT="0"
DEPEND="
x11-libs/cairo
dev-util/ninja
x11-libs/libxcb
x11-base/xcb-proto
x11-libs/xcb-util
x11-libs/xcb-util-cursor
x11-libs/xcb-util-keysyms
x11-libs/xcb-util-wm
dev-cpp/gtkmm:3.0
gui-libs/gtk
x11-apps/xmodmap
"
pkg_pretend() {
if ! tc-is-gcc; then
ewarn "Only GCC is officially supported as compiler"
ewarn "Proceed with your own caution"
fi
}
src_install() {
dobin "${BUILD_DIR}/Hypr"
dodoc "${S}/example/hypr.conf"
}