You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-emulation/ruffle/ruffle-0_p20230125.ebuild

590 lines
13 KiB

# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
Inflector-0.11.4
addr2line-0.19.0
adler-1.0.2
adler32-1.2.0
ahash-0.7.6
aho-corasick-0.7.20
aliasable-0.1.3
alsa-0.6.0
alsa-sys-0.3.1
android_system_properties-0.1.5
anyhow-1.0.68
approx-0.5.1
arboard-3.2.0
arrayref-0.3.6
arrayvec-0.5.2
arrayvec-0.7.2
ash-0.37.2+1.3.238
async-channel-1.8.0
atk-sys-0.15.1
atty-0.2.14
autocfg-1.1.0
backtrace-0.3.67
base-x-0.2.11
base64-0.13.1
base64-0.21.0
bindgen-0.61.0
bit-set-0.5.3
bit-vec-0.6.3
bit_field-0.10.1
bitflags-1.3.2
bitstream-io-1.6.0
bitvec-0.19.6
block-0.1.6
block-buffer-0.10.3
bstr-0.2.17
bumpalo-3.11.1
bytemuck-1.12.3
bytemuck_derive-1.3.0
byteorder-1.4.3
bytes-1.3.0
cairo-sys-rs-0.15.1
calloop-0.10.4
castaway-0.1.2
cc-1.0.77
cesu8-1.1.0
cexpr-0.6.0
cfg-expr-0.11.0
cfg-if-0.1.10
cfg-if-1.0.0
chrono-0.4.23
clang-sys-1.4.0
clap-4.0.32
clap_derive-4.0.21
clap_lex-0.3.0
clipboard-win-4.4.2
cmake-0.1.49
cocoa-0.24.1
cocoa-foundation-0.1.0
codespan-reporting-0.11.1
color_quant-1.1.0
colored-2.0.0
com-rs-0.2.1
combine-4.6.6
concurrent-queue-2.0.0
console-0.15.4
console_error_panic_hook-0.1.7
convert_case-0.6.0
cookie-factory-0.3.2
core-foundation-0.9.3
core-foundation-sys-0.8.3
core-graphics-0.22.3
core-graphics-types-0.1.1
core-text-19.2.0
coreaudio-rs-0.10.0
coreaudio-sys-0.2.11
cpal-0.14.2
cpufeatures-0.2.5
crc-3.0.0
crc-catalog-2.1.0
crc32fast-1.3.2
crossbeam-channel-0.5.6
crossbeam-deque-0.8.2
crossbeam-epoch-0.9.13
crossbeam-utils-0.8.14
crossfont-0.5.1
crunchy-0.2.2
crypto-common-0.1.6
csv-1.1.6
csv-core-0.1.10
ctor-0.1.26
cty-0.2.2
curl-0.4.44
curl-sys-0.4.59+curl-7.86.0
cxx-1.0.83
cxx-build-1.0.83
cxxbridge-flags-1.0.83
cxxbridge-macro-1.0.83
darling-0.13.4
darling-0.14.2
darling_core-0.13.4
darling_core-0.14.2
darling_macro-0.13.4
darling_macro-0.14.2
data-encoding-2.3.3
derive-try-from-primitive-1.0.0
diff-0.1.13
digest-0.10.6
dirs-4.0.0
dirs-sys-0.3.7
discard-1.0.4
dispatch-0.2.0
dlib-0.5.0
downcast-rs-1.2.0
dwrote-0.11.0
either-1.8.0
embed-resource-1.8.0
encode_unicode-0.3.6
encoding_rs-0.8.31
enum-map-2.4.2
enum-map-derive-0.11.0
enumset-1.0.12
enumset_derive-0.6.1
env_logger-0.10.0
errno-0.2.8
errno-dragonfly-0.1.2
error-code-2.3.1
euclid-0.22.7
event-listener-2.5.3
expat-sys-2.1.6
exr-1.5.2
fastrand-1.8.0
flate2-1.0.25
float_next_after-0.1.5
flume-0.10.14
fnv-1.0.7
foreign-types-0.3.2
foreign-types-0.5.0
foreign-types-macros-0.2.2
foreign-types-shared-0.1.1
foreign-types-shared-0.3.1
form_urlencoded-1.1.0
freetype-rs-0.26.0
freetype-sys-0.13.1
funty-1.1.0
futures-0.3.25
futures-channel-0.3.25
futures-core-0.3.25
futures-executor-0.3.25
futures-io-0.3.25
futures-lite-1.12.0
futures-macro-0.3.25
futures-sink-0.3.25
futures-task-0.3.25
futures-util-0.3.25
fxhash-0.2.1
gdk-pixbuf-sys-0.15.10
gdk-sys-0.15.1
generational-arena-0.2.8
generator-0.7.2
generic-array-0.14.6
gethostname-0.2.3
getrandom-0.2.8
gif-0.11.4
gif-0.12.0
gimli-0.27.0
gio-sys-0.15.10
glib-sys-0.15.10
glob-0.3.0
gobject-sys-0.15.10
gpu-alloc-0.5.3
gpu-alloc-types-0.2.0
gpu-allocator-0.21.0
gpu-descriptor-0.2.3
gpu-descriptor-types-0.1.1
gtk-sys-0.15.3
half-2.1.0
hashbrown-0.12.3
hassle-rs-0.9.0
heck-0.4.0
hermit-abi-0.1.19
hermit-abi-0.2.6
hexf-parse-0.2.1
http-0.2.8
humantime-2.1.0
iana-time-zone-0.1.53
iana-time-zone-haiku-0.1.1
ident_case-1.0.1
idna-0.3.0
image-0.24.5
indexmap-1.9.2
indicatif-0.17.2
insta-1.26.0
instant-0.1.12
io-lifetimes-1.0.3
is-terminal-0.4.1
isahc-1.7.2
itoa-0.4.8
itoa-1.0.4
jni-0.19.0
jni-0.20.0
jni-sys-0.3.0
jobserver-0.1.25
jpeg-decoder-0.3.0
js-sys-0.3.60
khronos-egl-4.1.0
lazy_static-1.4.0
lazycell-1.3.0
lebe-0.5.2
lexical-core-0.7.6
libc-0.2.138
libflate-1.2.0
libflate_lz77-1.1.0
libloading-0.7.4
libm-0.2.6
libnghttp2-sys-0.1.7+1.45.0
libz-sys-1.1.8
link-cplusplus-1.0.7
linked-hash-map-0.5.6
linux-raw-sys-0.1.4
lock_api-0.4.9
log-0.4.17
loom-0.5.6
lyon-1.0.1
lyon_algorithms-1.0.2
lyon_geom-1.0.4
lyon_path-1.0.3
lyon_tessellation-1.0.7
lzma-rs-0.3.0
mach-0.3.2
malloc_buf-0.0.6
matchers-0.1.0
memchr-2.5.0
memmap2-0.5.8
memoffset-0.6.5
memoffset-0.7.1
metal-0.24.0
mime-0.3.16
minimal-lexical-0.2.1
miniz_oxide-0.6.2
mio-0.8.5
nanorand-0.7.0
ndk-0.6.0
ndk-0.7.0
ndk-context-0.1.1
ndk-glue-0.7.0
ndk-macro-0.3.0
ndk-sys-0.3.0
ndk-sys-0.4.1+23.1.7779620
nix-0.23.2
nix-0.24.3
nix-0.25.1
nom-6.1.2
nom-7.1.1
nu-ansi-term-0.46.0
num-bigint-0.4.3
num-complex-0.4.2
num-derive-0.3.3
num-integer-0.1.45
num-rational-0.4.1
num-traits-0.2.15
num_cpus-1.14.0
num_enum-0.5.7
num_enum_derive-0.5.7
number_prefix-0.4.0
objc-0.2.7
objc-foundation-0.1.1
objc_exception-0.1.2
objc_id-0.1.1
object-0.30.1
oboe-0.4.6
oboe-sys-0.4.5
once_cell-1.17.0
openssl-probe-0.1.5
openssl-sys-0.9.79
os_info-3.5.1
os_str_bytes-6.4.1
ouroboros-0.15.5
ouroboros_macro-0.15.5
output_vt100-0.1.3
overload-0.1.1
pango-sys-0.15.10
parking-2.0.0
parking_lot-0.12.1
parking_lot_core-0.9.5
path-slash-0.2.1
peeking_take_while-0.1.2
percent-encoding-2.2.0
pin-project-1.0.12
pin-project-internal-1.0.12
pin-project-lite-0.2.9
pin-utils-0.1.0
pkg-config-0.3.26
png-0.17.7
polling-2.5.2
portable-atomic-0.3.17
pp-rs-0.2.1
ppv-lite86-0.2.17
pretty_assertions-1.3.0
primal-check-0.3.3
proc-macro-crate-1.2.1
proc-macro-error-1.0.4
proc-macro-error-attr-1.0.4
proc-macro2-1.0.49
profiling-1.0.7
profiling-procmacros-1.0.7
quote-1.0.23
radium-0.5.3
rand-0.8.5
rand_chacha-0.3.1
rand_core-0.6.4
range-alloc-0.1.2
raw-window-handle-0.4.3
raw-window-handle-0.5.0
rayon-1.6.1
rayon-core-1.10.1
redox_syscall-0.2.16
redox_users-0.4.3
regex-1.7.1
regex-automata-0.1.10
regex-syntax-0.6.28
regress-0.4.1
renderdoc-sys-0.7.1
rfd-0.10.0
rle-decode-fast-1.0.3
ron-0.8.0
rustc-demangle-0.1.21
rustc-hash-1.1.0
rustc_version-0.2.3
rustc_version-0.4.0
rustdct-0.7.1
rustfft-6.1.0
rustix-0.36.5
rustversion-1.0.11
ryu-1.0.11
safe_arch-0.5.2
safe_arch-0.6.0
same-file-1.0.6
schannel-0.1.20
scoped-tls-1.0.1
scoped_threadpool-0.1.9
scopeguard-1.1.0
scratch-1.0.2
sctk-adwaita-0.4.3
semver-0.9.0
semver-1.0.14
semver-parser-0.7.0
serde-1.0.152
serde-wasm-bindgen-0.4.5
serde-xml-rs-0.6.0
serde_derive-1.0.152
serde_json-1.0.91
servo-fontconfig-0.5.1
servo-fontconfig-sys-5.1.0
sha1-0.6.1
sha1_smol-1.0.0
sha2-0.10.6
sharded-slab-0.1.4
shlex-1.1.0
similar-2.2.1
simple_asn1-0.6.2
slab-0.4.7
slotmap-1.0.6
sluice-0.5.5
smallvec-1.10.0
smithay-client-toolkit-0.16.0
socket2-0.4.7
spin-0.9.4
spirv-0.2.0+1.5.4
static_assertions-1.1.0
stdweb-0.4.20
stdweb-derive-0.5.3
stdweb-internal-macros-0.2.9
stdweb-internal-runtime-0.1.5
str-buf-1.0.6
strength_reduce-0.2.4
strsim-0.10.0
symphonia-0.5.1
symphonia-bundle-mp3-0.5.1
symphonia-core-0.5.1
symphonia-metadata-0.5.1
syn-1.0.107
synstructure-0.12.6
system-deps-6.0.3
tap-1.0.1
termcolor-1.1.3
thiserror-1.0.38
thiserror-impl-1.0.38
thread_local-1.1.4
threadpool-1.8.1
tiff-0.8.1
time-0.3.17
time-core-0.1.0
time-macros-0.2.6
tiny-skia-0.7.0
tiny-skia-path-0.7.0
tinyvec-1.6.0
tinyvec_macros-0.1.0
toml-0.5.10
tracing-0.1.37
tracing-attributes-0.1.23
tracing-core-0.1.30
tracing-futures-0.2.5
tracing-log-0.1.3
tracing-subscriber-0.3.16
tracing-tracy-0.10.0
tracing-wasm-0.2.1
tracy-client-0.14.2
tracy-client-sys-0.19.0
transpose-0.2.2
typed-arena-2.0.2
typenum-1.16.0
unicode-bidi-0.3.8
unicode-ident-1.0.5
unicode-normalization-0.1.22
unicode-segmentation-1.10.0
unicode-width-0.1.10
unicode-xid-0.2.4
url-2.3.1
valuable-0.1.0
vcpkg-0.2.15
vec_map-0.8.2
version-compare-0.1.1
version_check-0.9.4
vswhom-0.1.0
vswhom-sys-0.1.2
waker-fn-1.1.0
walkdir-2.3.2
wasi-0.11.0+wasi-snapshot-preview1
wasm-bindgen-0.2.83
wasm-bindgen-backend-0.2.83
wasm-bindgen-futures-0.4.33
wasm-bindgen-macro-0.2.83
wasm-bindgen-macro-support-0.2.83
wasm-bindgen-shared-0.2.83
wayland-client-0.29.5
wayland-commons-0.29.5
wayland-cursor-0.29.5
wayland-protocols-0.29.5
wayland-scanner-0.29.5
wayland-sys-0.29.5
weak-table-0.3.2
web-sys-0.3.60
webbrowser-0.8.4
weezl-0.1.7
wepoll-ffi-0.1.2
wide-0.7.5
widestring-0.5.1
winapi-0.3.9
winapi-i686-pc-windows-gnu-0.4.0
winapi-util-0.1.5
winapi-wsapoll-0.1.1
winapi-x86_64-pc-windows-gnu-0.4.0
windows-0.37.0
windows-0.39.0
windows-0.43.0
windows-sys-0.36.1
windows-sys-0.42.0
windows_aarch64_gnullvm-0.42.0
windows_aarch64_msvc-0.36.1
windows_aarch64_msvc-0.37.0
windows_aarch64_msvc-0.39.0
windows_aarch64_msvc-0.42.0
windows_i686_gnu-0.36.1
windows_i686_gnu-0.37.0
windows_i686_gnu-0.39.0
windows_i686_gnu-0.42.0
windows_i686_msvc-0.36.1
windows_i686_msvc-0.37.0
windows_i686_msvc-0.39.0
windows_i686_msvc-0.42.0
windows_x86_64_gnu-0.36.1
windows_x86_64_gnu-0.37.0
windows_x86_64_gnu-0.39.0
windows_x86_64_gnu-0.42.0
windows_x86_64_gnullvm-0.42.0
windows_x86_64_msvc-0.36.1
windows_x86_64_msvc-0.37.0
windows_x86_64_msvc-0.39.0
windows_x86_64_msvc-0.42.0
winit-0.27.5
winreg-0.10.1
wio-0.2.2
wyz-0.2.0
x11-dl-2.20.1
x11rb-0.10.1
x11rb-protocol-0.10.0
xcursor-0.3.4
xml-rs-0.8.4
yaml-rust-0.4.5
yansi-0.5.1"
declare -A GIT_CRATES=(
[d3d12]="https://github.com/gfx-rs/d3d12-rs;a990c93ec64eeab78f2292763d0715da9dba1d59;d3d12-rs-%commit%"
[dasp]="https://github.com/RustAudio/dasp;f05a703d247bb504d7e812b51e95f3765d9c5e94;dasp-%commit%/dasp"
[flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;19fecd07b9888c4bdaa66771c468095783b52bed;rust-flash-lso-%commit%/flash-lso"
[gc-arena]="https://github.com/kyren/gc-arena;318b2ea594dcdadd01f7789025e3b3940be96b2c;gc-arena-%commit%/src/gc-arena"
[glow]="https://github.com/grovesNL/glow;c8a011fcd57a5c68cc917ed394baa484bdefc909"
[h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;023e14c73e565c4c778d41f66cfbac5ece6419b2;h263-rs-%commit%/yuv"
[h263-rs]="https://github.com/ruffle-rs/h263-rs;023e14c73e565c4c778d41f66cfbac5ece6419b2;h263-rs-%commit%/h263"
[naga]="https://github.com/gfx-rs/naga;1be8024bda3594987b417bead5024b98be9ab521"
[naga_oil]="https://github.com/Aaron1011/naga_oil;f4474b53285a85fe67cc35372c9d7ff4517cb556"
[nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;4a33521c29a918950df8ae9fe07e527ac65553f5;nellymoser-%commit%"
[nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;9416fcc9fc8aab8f4681aa9093b42922214abbd3;nihav-vp6-%commit%/nihav-codec-support"
[nihav_core]="https://github.com/ruffle-rs/nihav-vp6;9416fcc9fc8aab8f4681aa9093b42922214abbd3;nihav-vp6-%commit%/nihav-core"
[nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;9416fcc9fc8aab8f4681aa9093b42922214abbd3;nihav-vp6-%commit%/nihav-duck"
[quick-xml]="https://github.com/ruffle-rs/quick-xml;8496365ec1412eb5ba5de350937b6bce352fa0ba"
[wgpu]="https://github.com/gfx-rs/wgpu;c5851275c59b1d5d949b142d6aa973d0bb638181;wgpu-%commit%/wgpu"
)
inherit cargo desktop flag-o-matic xdg
MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
MY_P="${PN}-${MY_PV}"
DESCRIPTION="Flash Player emulator written in Rust"
HOMEPAGE="https://ruffle.rs/"
SRC_URI="
https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
$(cargo_crate_uris)"
S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0 BSD BSD-2 Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl"
SLOT="0"
KEYWORDS="~amd64"
# dlopen: libX* (see winit+x11-dl crates)
RDEPEND="
dev-libs/glib:2
dev-libs/openssl:=
media-libs/alsa-lib
media-libs/fontconfig
media-libs/freetype
sys-libs/zlib:=
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/libXcursor
x11-libs/libXrandr
x11-libs/libXrender"
DEPEND="
${RDEPEND}
x11-base/xorg-proto"
BDEPEND="
virtual/jre:*
virtual/pkgconfig
>=virtual/rust-1.64"
QA_FLAGS_IGNORED="usr/bin/${PN}.*"
PATCHES=(
"${FILESDIR}"/${P}-no-patch-naga.patch
)
src_compile() {
filter-lto # does not play well with C code in crates
cargo_src_compile --bins # note: configure --bins would skip tests
}
src_install() {
dodoc README.md
newicon web/packages/extension/assets/images/icon180.png ${PN}.png
make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
"MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
cd target/$(usex debug{,} release) || die
newbin ${PN}_desktop ${PN}
newbin exporter ${PN}_exporter
dobin ${PN}_scanner
}
pkg_postinst() {
xdg_pkg_postinst
if [[ ! ${REPLACING_VERSIONS} ]]; then
elog "${PN} is experimental software that is still under heavy development"
elog "and only receiving nightly releases. Plans in Gentoo is to update"
elog "roughly every months if no known major regressions (feel free to"
elog "report if you feel a newer nightly is needed ahead of time)."
elog
elog "There is currently no plans to support wasm builds / browser"
elog "extensions, this provides the desktop viewer and other tools."
fi
}