# Copyright 2021-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # You will need games-util/steam-client-meta from the steam-overlay for this to work # List generated by 'cargo ebuild --manifest-path [absolute path]/alvr/*/Cargo.toml' and sorted by sort -u *.ebuild EAPI=8 CRATES=" ab_glyph@0.2.11 ab_glyph_rasterizer@0.1.4 addr2line@0.15.1 adler@1.0.2 ahash@0.3.8 ahash@0.4.7 ahash@0.7.4 aho-corasick@0.7.18 alcro@0.5.3 alsa@0.5.0 alsa-sys@0.3.1 andrew@0.3.1 android_glue@0.2.3 android_logger@0.10.1 android_log-sys@0.2.0 ansi_term@0.11.0 anyhow@1.0.40 approx@0.5.0 arrayvec@0.5.2 ash@0.32.1 associative-cache@1.0.1 atk@0.9.0 atk-sys@0.10.0 atomic_refcell@0.1.7 atty@0.2.14 autocfg@1.0.1 backtrace@0.3.59 base64@0.13.0 base-x@0.2.8 bincode@1.3.3 bindgen@0.56.0 bindgen@0.58.1 bindgen@0.59.0 bitflags@1.2.1 bit-set@0.5.2 bitvec@0.19.5 bit-vec@0.6.3 block@0.1.6 block-buffer@0.9.0 bumpalo@3.6.1 byteorder@1.4.3 bytes@1.0.1 cairo-rs@0.9.1 cairo-sys-rs@0.10.0 calloop@0.6.5 cc@1.0.67 cesu8@1.1.0 cexpr@0.4.0 cexpr@0.5.0 cfg_aliases@0.1.1 cfg-if@0.1.10 cfg-if@1.0.0 cgl@0.3.2 chrono@0.4.19 chunked_transfer@1.4.0 clang-sys@1.2.0 clap@2.33.3 claxon@0.4.3 clipboard-win@3.1.1 cocoa@0.24.0 cocoa-foundation@0.1.0 codespan-reporting@0.11.1 combine@4.5.2 console_log@0.2.0 const_fn@0.4.7 copyless@0.1.5 copypasta@0.7.1 coreaudio-rs@0.10.0 coreaudio-sys@0.2.8 core-foundation@0.7.0 core-foundation@0.9.1 core-foundation-sys@0.6.2 core-foundation-sys@0.7.0 core-foundation-sys@0.8.2 core-graphics@0.19.2 core-graphics@0.22.2 core-graphics-types@0.1.1 core-text@19.2.0 core-video-sys@0.1.4 cpal@0.13.3 cpufeatures@0.1.4 crossbeam@0.8.0 crossbeam-channel@0.5.1 crossbeam-deque@0.8.0 crossbeam-epoch@0.9.4 crossbeam-queue@0.3.1 crossbeam-utils@0.8.4 d3d12@0.4.0 dark-light@0.1.1 darling@0.10.2 darling_core@0.10.2 darling_macro@0.10.2 dashmap@4.0.2 derivative@2.2.0 digest@0.9.0 dirs@3.0.2 dirs-sys@0.3.6 discard@1.0.4 dispatch@0.2.0 dlib@0.4.2 dlib@0.5.0 doc-comment@0.3.3 downcast-rs@1.2.0 drm-fourcc@2.1.1 druid@0.7.0 druid-derive@0.4.0 druid-shell@0.7.0 dwrote@0.11.0 eframe@0.13.1 egui@0.13.1 egui_glium@0.13.1 egui_web@0.13.0 either@1.6.1 emath@0.13.0 encoding_rs@0.8.28 encoding_rs_io@0.1.7 env_logger@0.8.3 epaint@0.13.0 epi@0.13.0 errno@0.2.7 errno-dragonfly@0.1.1 exec@0.3.1 external-memory@0.0.1 failure@0.1.8 fern@0.6.0 fixedbitset@0.2.0 fluent@0.16.0 fluent-bundle@0.12.0 fluent-bundle@0.15.1 fluent-langneg@0.13.0 fluent-syntax@0.11.0 fluent-syntax@0.9.3 fnv@1.0.7 foreign-types@0.3.2 foreign-types-shared@0.1.1 form_urlencoded@1.0.1 fs_extra@1.2.0 funty@1.1.0 futures@0.3.15 futures-channel@0.3.15 futures-core@0.3.15 futures-executor@0.3.15 futures-io@0.3.15 futures-macro@0.3.15 futures-sink@0.3.15 futures-task@0.3.15 futures-timer@3.0.2 futures-util@0.3.15 fxhash@0.2.1 gcc@0.3.55 gdk@0.13.2 gdk-pixbuf@0.9.0 gdk-pixbuf-sys@0.10.0 gdk-sys@0.10.0 generic-array@0.14.4 getrandom@0.2.2 gfx-auxil@0.10.0 gfx-backend-dx11@0.9.0 gfx-backend-dx12@0.9.1 gfx-backend-empty@0.9.0 gfx-backend-gl@0.9.0 gfx-backend-metal@0.9.1 gfx-backend-vulkan@0.9.0 gfx-hal@0.9.0 gfx-renderdoc@0.1.0 gimli@0.24.0 gio@0.9.1 gio-sys@0.10.1 gl_generator@0.14.0 glib@0.10.3 glib-macros@0.10.1 glib-sys@0.10.1 glium@0.30.1 glob@0.3.0 glow@0.9.0 glutin@0.27.0 glutin_egl_sys@0.1.5 glutin_emscripten_sys@0.1.1 glutin_gles2_sys@0.1.5 glutin_glx_sys@0.1.7 glutin_wgl_sys@0.1.5 gobject-sys@0.10.0 governor@0.3.2 gpu-alloc@0.4.7 gpu-alloc-types@0.2.0 gpu-descriptor@0.1.1 gpu-descriptor-types@0.1.1 gtk@0.9.2 gtk-sys@0.10.0 h2@0.3.3 hashbrown@0.8.2 hashbrown@0.9.1 headers@0.3.4 headers-core@0.2.0 heck@0.3.2 hermit-abi@0.1.18 hound@3.4.0 http@0.2.4 httparse@1.4.1 http-body@0.4.2 httpdate@1.0.0 humantime@2.1.0 hyper@0.14.7 hyper-tls@0.5.0 ident_case@1.0.1 idna@0.2.3 indexmap@1.6.2 Inflector@0.11.4 inplace_it@0.3.3 instant@0.1.9 intl-memoizer@0.5.1 intl_pluralrules@7.0.1 ipnet@2.3.0 itertools@0.9.0 itoa@0.4.7 jni@0.18.0 jni@0.19.0 jni-sys@0.3.0 jobserver@0.1.22 js-sys@0.3.51 keyboard-types@0.5.0 khronos_api@3.1.0 khronos-egl@4.1.0 kurbo@0.7.1 lazy-bytes-cast@5.0.1 lazycell@1.3.0 lazy_static@1.4.0 lewton@0.10.2 libc@0.2.94 libloading@0.6.7 libloading@0.7.0 locale_config@0.3.0 lock_api@0.4.4 log@0.4.14 mach@0.3.2 malloc_buf@0.0.6 matches@0.1.8 matrixmultiply@0.3.1 maybe-uninit@2.0.0 memchr@2.4.0 memmap2@0.1.0 memmap2@0.2.3 memoffset@0.6.3 metal@0.23.0 mime@0.3.16 minimp3@0.5.1 minimp3-sys@0.3.2 miniz_oxide@0.4.4 mio@0.7.11 mio-misc@1.2.1 miow@0.3.7 msgbox@0.6.0 naga@0.5.0 nalgebra@0.28.0 nalgebra-macros@0.1.0 native-tls@0.2.7 ndk@0.3.0 ndk-glue@0.3.0 ndk-macro@0.2.0 ndk-sys@0.2.1 nix@0.18.0 nix@0.19.1 nix@0.20.0 nom@5.1.2 nom@6.1.2 nonzero_ext@0.2.0 no-std-compat@0.4.1 ntapi@0.3.6 num-complex@0.4.0 num_cpus@1.13.0 num-derive@0.3.3 num_enum@0.5.1 num_enum_derive@0.5.1 num-integer@0.1.44 num-rational@0.4.0 num-traits@0.2.14 objc@0.2.7 objc_exception@0.1.2 objc-foundation@0.1.1 objc_id@0.1.1 object@0.24.0 oboe@0.4.1 oboe-sys@0.4.0 ogg@0.8.0 once_cell@1.7.2 opaque-debug@0.3.0 openssl@0.10.34 openssl-probe@0.1.4 openssl-sys@0.9.63 ordered-float@2.7.0 osmesa-sys@0.1.2 os_str_bytes@3.1.0 ouroboros@0.9.5 ouroboros_macro@0.9.5 owned_ttf_parser@0.12.1 owned_ttf_parser@0.6.0 pango@0.9.1 pango-sys@0.10.0 parking_lot@0.11.1 parking_lot_core@0.8.3 paste@1.0.5 peeking_take_while@0.1.2 pem@0.8.3 percent-encoding@2.1.0 petgraph@0.5.1 pico-args@0.4.1 piet@0.3.1 piet-cairo@0.3.0 piet-common@0.3.2 piet-coregraphics@0.3.0 piet-direct2d@0.3.0 piet-web@0.3.1 pin-project@1.0.7 pin-project-internal@1.0.7 pin-project-lite@0.2.6 pin-utils@0.1.0 pkg-config@0.3.19 ppv-lite86@0.2.10 proc-macro2@1.0.26 proc-macro-crate@0.1.5 proc-macro-error@1.0.4 proc-macro-error-attr@1.0.4 proc-macro-hack@0.5.19 proc-macro-nested@0.1.7 profiling@1.0.3 quanta@0.4.1 quote@1.0.9 radium@0.5.3 rand@0.8.3 rand_chacha@0.3.0 rand_core@0.6.2 rand_hc@0.3.0 range-alloc@0.1.2 rawpointer@0.2.1 raw-window-handle@0.3.3 rayon@1.5.0 rayon-core@1.9.0 rcgen@0.8.11 redox_syscall@0.2.8 redox_users@0.4.0 regex@1.5.4 regex-syntax@0.6.25 remove_dir_all@0.5.3 renderdoc-sys@0.7.1 rental@0.5.6 rental-impl@0.5.5 reqwest@0.11.3 ring@0.16.20 rodio@0.14.0 rose_tree@0.2.0 runas@0.2.1 rustc-demangle@0.1.19 rustc-hash@1.1.0 rustc_version@0.2.3 rustls@0.19.1 rusttype@0.9.2 ryu@1.0.5 same-file@1.0.6 schannel@0.1.19 scoped-tls@1.0.0 scopeguard@1.1.0 sct@0.6.1 security-framework@2.2.0 security-framework-sys@2.2.0 semver@0.9.0 semver@1.0.3 semver-parser@0.7.0 serde@1.0.127 serde_derive@1.0.127 serde_json@1.0.66 serde_urlencoded@0.7.0 sha1@0.6.0 sha-1@0.9.6 shared_library@0.1.9 shlex@0.1.1 shlex@1.0.0 signal-hook-registry@1.3.0 simba@0.5.1 simple_logger@1.11.0 single-instance@0.3.1 slab@0.4.3 slice-deque@0.3.0 slotmap@0.4.2 smallvec@1.6.1 smithay-client-toolkit@0.12.3 smithay-client-toolkit@0.14.0 smithay-clipboard@0.6.4 socket2@0.4.0 spin@0.5.2 spirv_cross@0.23.1 stable_deref_trait@1.2.0 standback@0.2.17 stdweb@0.1.3 stdweb@0.4.20 stdweb-derive@0.5.3 stdweb-internal-macros@0.2.9 stdweb-internal-runtime@0.1.5 storage-map@0.3.0 strsim@0.8.0 strsim@0.9.3 strum@0.18.0 strum_macros@0.18.0 syn@1.0.72 sysinfo@0.19.2 system-deps@1.3.2 takeable-option@0.5.0 tap@1.0.1 tempfile@3.2.0 termcolor@1.1.2 textwrap@0.11.0 thiserror@1.0.24 thiserror-impl@1.0.24 thunderdome@0.4.1 time@0.1.43 time@0.2.26 time-macros@0.1.1 time-macros-impl@0.1.1 tinyfiledialogs@3.3.10 tinystr@0.3.4 tinyvec@1.2.0 tinyvec_macros@0.1.0 tokio@1.6.0 tokio-macros@1.2.0 tokio-native-tls@0.3.0 tokio-tungstenite@0.15.0 tokio-util@0.6.7 toml@0.5.8 tower-service@0.3.1 tracing@0.1.26 tracing-core@0.1.18 try-lock@0.2.3 ttf-parser@0.12.3 ttf-parser@0.6.2 tungstenite@0.14.0 type-map@0.4.0 typenum@1.13.0 unic-bidi@0.9.0 unic-char-property@0.9.0 unic-char-range@0.9.0 unic-common@0.9.0 unic-langid@0.9.0 unic-langid-impl@0.9.0 unicode-bidi@0.3.5 unicode-normalization@0.1.17 unicode-segmentation@1.7.1 unicode-width@0.1.8 unicode-xid@0.2.2 unic-ucd-bidi@0.9.0 unic-ucd-version@0.9.0 untrusted@0.7.1 ureq@2.1.1 url@2.2.2 spirv_headers@1.5.0 utf16_lit@1.0.1 utf-8@0.7.6 vcpkg@0.2.12 vec_map@0.8.2 version_check@0.9.3 version-compare@0.0.10 walkdir@2.3.2 want@0.3.0 wasi@0.10.2+wasi-snapshot-preview1 wasm-bindgen@0.2.74 wasm-bindgen-backend@0.2.74 wasm-bindgen-futures@0.4.24 wasm-bindgen-macro@0.2.74 wasm-bindgen-macro-support@0.2.74 wasm-bindgen-shared@0.2.74 wayland-client@0.28.5 wayland-commons@0.28.5 wayland-cursor@0.28.5 wayland-egl@0.28.5 wayland-protocols@0.28.5 wayland-scanner@0.28.5 wayland-sys@0.28.5 webbrowser@0.5.5 webpki@0.21.4 webpki-roots@0.21.1 web-sys@0.3.50 wgpu@0.9.0 wgpu-core@0.9.2 wgpu-types@0.9.0 which@3.1.1 widestring@0.4.3 winapi@0.3.9 winapi-i686-pc-windows-gnu@0.4.0 winapi-util@0.1.5 winapi-x86_64-pc-windows-gnu@0.4.0 winit@0.25.0 winreg@0.7.0 winreg@0.8.0 winreg@0.9.0 winres@0.1.11 wio@0.2.2 wyz@0.2.0 x11-clipboard@0.5.2 x11-dl@2.18.5 xcb@0.9.0 xcursor@0.3.3 xdg@2.2.0 xi-unicode@0.2.1 xi-unicode@0.3.0 xml-rs@0.8.3 yasna@0.4.0 " inherit desktop cargo xdg DESCRIPTION="ALVR is an open source remote VR display for the Oculus Go/Quest" HOMEPAGE="https://github.com/alvr-org/ALVR" SRC_URI="https://github.com/alvr-org/ALVR/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" SRC_URI+=" ${CARGO_CRATE_URIS} " LICENSE="MIT" SLOT="0" KEYWORDS="~amd64" S="${WORKDIR}/${P^^}" IUSE="+client +server vaapi vulkan x264 x265" RDEPEND=" >=media-video/ffmpeg-4.3[encode,vulkan?,x264?,x265?] vaapi? ( media-video/ffmpeg[libdrm,vaapi] ) sys-libs/libunwind www-client/chromium " DEPEND="${RDEPEND} vulkan? ( dev-util/vulkan-headers ) " BDEPEND="${RDEPEND} virtual/pkgconfig client? ( media-gfx/imagemagick ) " PATCHES=( "${FILESDIR}/${P}-build.patch" ) src_configure() { local ECARGO_EXTRA_ARGS=" -p vrcompositor-wrapper $(usex server "-p alvr_server" "" ) $(usex client "-p alvr_client -p alvr_launcher" "" ) $(usex vulkan "-p alvr_vulkan-layer" "" ) " cargo_src_configure } src_install() { if use client; then dobin target/release/alvr_launcher dolib.so target/release/libalvr_client.so domenu packaging/freedesktop/alvr.desktop for size in {16,32,48,64,128,256}; do convert alvr/launcher/res/launcher.ico \ -thumbnail ${size} -alpha on -background none -flatten \ ${PN}-${size}.png || die newicon -s ${size} ${PN}-${size}.png ${PN}.png done fi if use server; then #dolib.so target/release/libalvr_server.so insinto /usr/lib/steamvr/alvr/bin/linux64/ newins target/release/libalvr_server.so driver_alvr_server.so insinto /usr/lib/steamvr/alvr/ doins alvr/xtask/resources/driver.vrdrivermanifest fi if use vulkan; then dolib.so target/release/libalvr_vulkan_layer.so insinto /usr/share/vulkan/explicit_layer.d/ doins alvr/vulkan-layer/layer/alvr_x86_64.json fi insinto /usr/lib/alvr doins target/release/vrcompositor-wrapper doins packaging/firewall/alvr_fw_config.sh insinto /usr/share/${PN}/selinux/ doins packaging/selinux/* insinto /usr/share/${PN}/presets/ doins alvr/xtask/resources/presets/* insinto /usr/share/${PN}/ doins -r alvr/dashboard insinto /usr/lib/firewalld/services/ doins packaging/firewall/alvr-firewalld.xml insinto /etc/ufw/applications.d/ doins packaging/firewall/ufw-alvr }