mirror of
https://github.com/archlinux/aur.git
synced 2026-03-14 23:16:48 +01:00
Rename to ruffle-nightly
This commit is contained in:
commit
b4d3280981
4 changed files with 341 additions and 0 deletions
64
.SRCINFO
Normal file
64
.SRCINFO
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
pkgbase = ruffle-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version)
|
||||
pkgver = 0.1.0+nightly+20241107
|
||||
pkgrel = 1
|
||||
url = https://ruffle.rs/
|
||||
arch = x86_64
|
||||
license = MIT OR Apache-2.0
|
||||
makedepends = cargo
|
||||
makedepends = cmake
|
||||
makedepends = java-environment
|
||||
makedepends = npm
|
||||
makedepends = nodejs-lts-iron
|
||||
makedepends = wasm-bindgen
|
||||
makedepends = binaryen
|
||||
makedepends = gtk3
|
||||
makedepends = alsa-lib
|
||||
makedepends = libxcb
|
||||
makedepends = systemd-libs
|
||||
makedepends = clang
|
||||
makedepends = jq
|
||||
makedepends = git
|
||||
makedepends = chromium
|
||||
makedepends = openssl
|
||||
options = !lto
|
||||
source = git+https://github.com/ruffle-rs/ruffle.git#tag=nightly-2024-11-07
|
||||
source = chromium-extension-ruffle.key
|
||||
sha256sums = c8500797af9b5928c1057f3f9dee1db4292c9f086d9902384d93cd178e19938a
|
||||
sha256sums = dac5c0e9661e41834b76d6d047dc94e41dd7a80d98e1c39cb4f2c95b1a7c7a46
|
||||
|
||||
pkgname = ruffle-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version) (Desktop app and utils)
|
||||
depends = hicolor-icon-theme
|
||||
depends = alsa-lib
|
||||
depends = systemd-libs
|
||||
depends = gcc-libs
|
||||
depends = glibc
|
||||
provides = ruffle
|
||||
conflicts = ruffle
|
||||
|
||||
pkgname = ruffle-demo-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version) (Demo web app)
|
||||
arch = any
|
||||
provides = ruffle-demo
|
||||
conflicts = ruffle-demo
|
||||
|
||||
pkgname = ruffle-selfhosted-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version) (JavaScript module)
|
||||
arch = any
|
||||
provides = ruffle-selfhosted
|
||||
conflicts = ruffle-selfhosted
|
||||
|
||||
pkgname = firefox-extension-ruffle-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version) (Unsigned Firefox extension)
|
||||
arch = any
|
||||
optdepends = firefox: Load extension in browser.
|
||||
provides = firefox-extension-ruffle
|
||||
conflicts = firefox-extension-ruffle
|
||||
|
||||
pkgname = chromium-extension-ruffle-nightly
|
||||
pkgdesc = A Flash Player emulator written in Rust. (Nightly version) (Self-signed Chromium extension)
|
||||
arch = any
|
||||
optdepends = chromium: Load extension in browser.
|
||||
provides = chromium-extension-ruffle
|
||||
conflicts = chromium-extension-ruffle
|
||||
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
src
|
||||
pkg
|
||||
*.pkg.tar.*
|
||||
*.log
|
||||
/ruffle/
|
||||
244
PKGBUILD
Normal file
244
PKGBUILD
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
# private key to sign chromium extension is generated with `openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt -traditional`
|
||||
|
||||
_channel=nightly
|
||||
_date=2024-11-07
|
||||
|
||||
pkgbase=ruffle-nightly
|
||||
pkgname=(
|
||||
ruffle-nightly
|
||||
ruffle-demo-nightly
|
||||
ruffle-selfhosted-nightly
|
||||
firefox-extension-ruffle-nightly
|
||||
chromium-extension-ruffle-nightly
|
||||
)
|
||||
pkgver="0.1.0+$_channel+${_date//-}"
|
||||
pkgrel=1
|
||||
arch=("x86_64")
|
||||
pkgdesc="A Flash Player emulator written in Rust. (Nightly version)"
|
||||
url="https://ruffle.rs/"
|
||||
license=("MIT OR Apache-2.0")
|
||||
makedepends=("cargo" "cmake" "java-environment" "npm" "nodejs-lts-iron"
|
||||
"wasm-bindgen" "binaryen" "gtk3" "alsa-lib" "libxcb" "systemd-libs"
|
||||
"clang" "jq" "git" "chromium" "openssl")
|
||||
source=("git+https://github.com/ruffle-rs/ruffle.git#tag=$_channel-$_date"
|
||||
"chromium-extension-ruffle.key")
|
||||
sha256sums=('c8500797af9b5928c1057f3f9dee1db4292c9f086d9902384d93cd178e19938a'
|
||||
'dac5c0e9661e41834b76d6d047dc94e41dd7a80d98e1c39cb4f2c95b1a7c7a46')
|
||||
options=("!lto")
|
||||
|
||||
_FIREFOX_EXTRNSION_ID="ruffle@ruffle.rs"
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/$pkgbase"
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
|
||||
cd web
|
||||
npm ci
|
||||
# TODO version_name=$version_number when not nightly
|
||||
jq --null-input \
|
||||
--arg version_channel "$_channel" \
|
||||
--arg version_number "$(jq -r .version package.json)" \
|
||||
--arg version_name "$_channel $_date" \
|
||||
--arg build_date "$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" \
|
||||
--arg build_id "$pkgrel" \
|
||||
--arg commitHash "$(git rev-parse HEAD)" \
|
||||
--arg firefox_extension_id "$_FIREFOX_EXTRNSION_ID" \
|
||||
'$ARGS.named' > version_seal.json
|
||||
echo "Generated version_seal.json:"
|
||||
cat version_seal.json
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/$pkgbase"
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
export CARGO_TARGET_DIR=target
|
||||
cargo build --frozen --release --all-features \
|
||||
--package=ruffle_desktop
|
||||
# libtracy_client-sys seems missing some symbols, skip enabling all features.
|
||||
cargo build --frozen --release \
|
||||
--package=ruffle_scanner \
|
||||
--package=exporter
|
||||
|
||||
export CARGO_FEATURES=jpegxr
|
||||
# Script will read binary at hardcoded path
|
||||
# See web/packages/core/tools/build_wasm.ts for more info.
|
||||
unset CARGO_TARGET_DIR
|
||||
# Flags does not supported by WASM target:
|
||||
# C/CXX: -mtune -march -fcf-protection
|
||||
# RUST: -Ctarget-cpu
|
||||
local flag flags
|
||||
for flags in "$CFLAGS" "$CXXFLAGS"
|
||||
do
|
||||
for flag in $flags
|
||||
do
|
||||
if [[ "$flag" =~ ^-m(tune|arch)=[0-9a-z]+ ]] || [[ "$flag" == "-fcf-protection" ]]
|
||||
then
|
||||
echo "Removing $flag in C/CXX FLAGS"
|
||||
CFLAGS=${CFLAGS/$flag/}
|
||||
fi
|
||||
done
|
||||
done
|
||||
if flags="$(echo "$RUSTFLAGS" | grep -o -P '(\ *-C\s*target-cpu=[0-9a-z]+)')"
|
||||
then
|
||||
for flag in $flags
|
||||
do
|
||||
echo "Removing $flag in Rust FLAGS"
|
||||
RUSTFLAGS=${RUSTFLAGS/$flag/}
|
||||
done
|
||||
fi
|
||||
|
||||
cd web
|
||||
npm run build:repro
|
||||
unset CARGO_FEATURES
|
||||
|
||||
echo "Signing chromium extension..."
|
||||
mkdir -p extension-chromium
|
||||
bsdtar -x -C extension-chromium -f packages/extension/dist/ruffle_extension.zip
|
||||
local extension_version pubkey extension_id userdatadir
|
||||
extension_version="$(jq -r .version extension-chromium/manifest.json)"
|
||||
pubkey="$(openssl rsa -in "$srcdir/chromium-extension-ruffle.key" -pubout -outform DER | base64 -w0)"
|
||||
extension_id="$(echo "$pubkey" | base64 -d | sha256sum | head -c32 | tr '0-9a-f' 'a-p')"
|
||||
echo "Chromium extension id is $extension_id"
|
||||
echo "$extension_id" > .chromium_extension_id
|
||||
jq --null-input \
|
||||
--arg external_crx "/usr/lib/chromium-extension-ruffle/$extension_id.crx" \
|
||||
--arg external_version "$extension_version" \
|
||||
'$ARGS.named' > "$extension_id.json"
|
||||
jq --ascii-output \
|
||||
--arg key "$pubkey" \
|
||||
'. + {"key": $key}' extension-chromium/manifest.json > manifest.json
|
||||
mv manifest.json extension-chromium/manifest.json
|
||||
|
||||
userdatadir="$(mktemp -d chromium-pack-XXXXXX)"
|
||||
chromium --user-data-dir="$userdatadir" --pack-extension="extension-chromium" \
|
||||
--pack-extension-key="$srcdir/chromium-extension-ruffle.key"
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$srcdir/$pkgbase"
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
cargo test --frozen --all-features \
|
||||
--package=ruffle_desktop
|
||||
cargo test --frozen \
|
||||
--package=ruffle_scanner \
|
||||
--package=exporter
|
||||
|
||||
cd web
|
||||
npm run test
|
||||
}
|
||||
|
||||
package_ruffle-nightly() {
|
||||
depends=("hicolor-icon-theme" "alsa-lib" "systemd-libs" "gcc-libs" "glibc")
|
||||
pkgdesc+=" (Desktop app and utils)"
|
||||
provides=("ruffle")
|
||||
conflicts=("ruffle")
|
||||
|
||||
cd "$srcdir/$pkgbase"
|
||||
local f
|
||||
find target/release -maxdepth 1 -executable -type f | while read -r f
|
||||
do
|
||||
local target
|
||||
target="$(basename "$f")"
|
||||
target=${target/_/-}
|
||||
if ! [[ "$target" =~ ^ruffle- ]]
|
||||
then
|
||||
target="ruffle-$target"
|
||||
fi
|
||||
if [[ "$target" == "ruffle-desktop" ]]
|
||||
then
|
||||
target="ruffle"
|
||||
fi
|
||||
echo "Installing $f to $target..."
|
||||
install -Dm755 "$f" "$pkgdir/usr/bin/$target"
|
||||
done
|
||||
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.desktop \
|
||||
"$pkgdir/usr/share/applications/rs.ruffle.Ruffle.desktop"
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.metainfo.xml \
|
||||
"$pkgdir/usr/share/metainfo/rs.ruffle.Ruffle.metainfo.xml"
|
||||
install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.svg \
|
||||
"$pkgdir/usr/share/icons/hicolor/scalable/apps/rs.ruffle.Ruffle.svg"
|
||||
install -Dm644 LICENSE.md \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE.md"
|
||||
install -Dm644 README.md \
|
||||
"$pkgdir/usr/share/doc/ruffle/README.md"
|
||||
}
|
||||
|
||||
package_ruffle-demo-nightly() {
|
||||
pkgdesc+=" (Demo web app)"
|
||||
arch=("any")
|
||||
provides=("ruffle-demo")
|
||||
conflicts=("ruffle-demo")
|
||||
|
||||
cd "$srcdir/$pkgbase"
|
||||
mkdir -p "$pkgdir/usr/share/webapps"
|
||||
cp -a --no-preserve=ownership \
|
||||
web/packages/demo/dist \
|
||||
"$pkgdir/usr/share/webapps/ruffle"
|
||||
install -Dm644 web/packages/demo/LICENSE_APACHE \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
|
||||
install -Dm644 web/packages/demo/LICENSE_MIT \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
|
||||
install -Dm644 web/packages/demo/README.md \
|
||||
"$pkgdir/usr/share/doc/ruffle/demo/README.md"
|
||||
}
|
||||
|
||||
package_ruffle-selfhosted-nightly() {
|
||||
pkgdesc+=" (JavaScript module)"
|
||||
arch=("any")
|
||||
provides=("ruffle-selfhosted")
|
||||
conflicts=("ruffle-selfhosted")
|
||||
|
||||
cd "$srcdir/$pkgbase"
|
||||
mkdir -p \
|
||||
"$pkgdir/usr/lib/node_modules" \
|
||||
"$pkgdir/usr/share/licenses/$pkgname"
|
||||
cp -a --no-preserve=ownership \
|
||||
web/packages/selfhosted/dist \
|
||||
"$pkgdir/usr/lib/node_modules/ruffle"
|
||||
ln -srfv \
|
||||
"$pkgdir/usr/lib/node_modules/ruffle/LICENSE_APACHE" \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
|
||||
ln -srfv \
|
||||
"$pkgdir/usr/lib/node_modules/ruffle/LICENSE_MIT" \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
|
||||
install -Dm644 web/packages/selfhosted/README.md \
|
||||
"$pkgdir/usr/share/doc/ruffle/selfhosted/README.md"
|
||||
}
|
||||
|
||||
package_firefox-extension-ruffle-nightly() {
|
||||
optdepends=("firefox: Load extension in browser.")
|
||||
pkgdesc+=" (Unsigned Firefox extension)"
|
||||
arch=("any")
|
||||
provides=("firefox-extension-ruffle")
|
||||
conflicts=("firefox-extension-ruffle")
|
||||
|
||||
cd "$srcdir/$pkgbase"
|
||||
install -Dm644 web/packages/extension/dist/firefox_unsigned.xpi \
|
||||
"$pkgdir/usr/lib/firefox/browser/extensions/$_FIREFOX_EXTRNSION_ID.xpi"
|
||||
install -Dm644 web/packages/extension/LICENSE_APACHE \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
|
||||
install -Dm644 web/packages/extension/LICENSE_MIT \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
|
||||
}
|
||||
|
||||
package_chromium-extension-ruffle-nightly() {
|
||||
optdepends=("chromium: Load extension in browser.")
|
||||
pkgdesc+=" (Self-signed Chromium extension)"
|
||||
arch=("any")
|
||||
provides=("chromium-extension-ruffle")
|
||||
conflicts=("chromium-extension-ruffle")
|
||||
|
||||
cd "$srcdir/$pkgbase"
|
||||
local extension_id
|
||||
extension_id=$(<web/.chromium_extension_id)
|
||||
echo "Installing chromium extension $extension_id..."
|
||||
install -Dm644 "web/$extension_id.json" \
|
||||
"$pkgdir/usr/share/chromium/extensions/$extension_id.json"
|
||||
install -Dm644 web/extension-chromium.crx \
|
||||
"$pkgdir/usr/lib/$pkgname/$extension_id.crx"
|
||||
install -Dm644 web/packages/extension/LICENSE_APACHE \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
|
||||
install -Dm644 web/packages/extension/LICENSE_MIT \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
|
||||
}
|
||||
28
chromium-extension-ruffle.key
Normal file
28
chromium-extension-ruffle.key
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCbGREdqWhocl6J
|
||||
SZDSx6psVkdOzxqjUFfvlr+rS3WAoJr3hm/Bq8xV2GEYUoOKe015MRf5SI8HkXNN
|
||||
0r/Rx4lVCOVtCpXIorcJCP3+J79Y0PcV2/kVPglATogYgB9kRLa16yJQ+9yWuaPt
|
||||
BrzOT5SpmuvW340a0hbfFW6fPzEhMjzabFWiLwGexQOxfikOKIYob2vSzeXpRqo6
|
||||
56SfonWOHu9Ozh1mgXES9DXgnNmnI95XRQjLO2sGbztz5pOx2s6JAbOrLs327F2m
|
||||
0pp3VL4UNIAaLAWbYMNysvZSwA8S5gh1kqVlKoAteOa5qLWF8IbW96wWTfQlkWy/
|
||||
USkS1n79AgMBAAECggEAB0jIGwKH2s/0TLJd0Oh7wpbSxorHj4AIgUItQlhK7n2c
|
||||
iZ+QxCHTePyuorvNXcWov9Zkb9rOjOZx6efKBoo+kvXWAKcMnd22hwAbHcK0I/G8
|
||||
iRRJwIunV5PYpH3v+3+WrTib5f3OQG37mvhECdSHAOg7x128fNP9KwEQrv4CyrJE
|
||||
mt74xYcCzcjeWmL69aHni3qPWF73mSrd7G72IsH1x9ej2Mv7Vf3XZIHZ7osKmamI
|
||||
zktsQay3jQSooTv8hHnQYgzTgP+DsvGsVIR9b8I1+sppszCO6fq7CPj3G4O5ccXn
|
||||
TTDiMIDCkQsp2oVWVAHrGyavIzIizymaaVwlDhZBgQKBgQDOVUd6/v9hWl6T4erZ
|
||||
uI9pl8uqF7BHPYujOr8/YWOhkNJg3MBoJSZPBIScdRvH6jNt8hpT7di8K4IKRXK1
|
||||
0ldN5SRWd0+NEFowCz27Hgth0yP18t8A7IzcdWl7zXZUvwuADhx6KI4eQKWM1eEY
|
||||
pFiamLMI0vAZ1E5di6Kvug0cDQKBgQDAbo6CxHj0iUr6mhGeISDqNvkFhVx/4urX
|
||||
0VeW1huE08MEgwjfgiGhR2NA5K+3Wx56DqZrQByNHB1147bBuQ+oPaFaDobeOMvK
|
||||
84IUZCDLdBlQod+OiRkEH7hBbO7TUhP/afD7DHWJMrYqrMm0Y9GNAby2ZwYwtQhg
|
||||
S+vR0kYCsQKBgAUSbZZlbEutWAPUmtxNQCE9XQFKYcfuiF8z032wXC2djL5aztQA
|
||||
jceFeekKq+snI6qBOAp2H0zI2QJ9oIs9p22/wzvo5Oi3zS+/Jv5Rh8AY25pxJPA1
|
||||
4GSO8k/bxhvhMlwsfKC4HH474pXqsATWDWOHe2ctID/SSzbbdt1Q+n+FAoGAMXI3
|
||||
HFLv4aYFpi9Ap6lLk+NcSZbjFdlxDtOz9gY+O/tN+TLSbNw7V/3H+zzICg1X33U0
|
||||
PgrTS08WItzIcS7kXw63DzT8Ys2lUBkSK7su0hibCKUPlMiVrQGZjvY2yAYnLVJD
|
||||
ob6p1P863+xWSAv+JIV1wEjoxks+Q8A+cEPfyYECgYAxnbbSKIiX+NIzOqExrOSm
|
||||
y6o0Xaf+xKQNiYkSglV9JjlPBjyXeSIEM+2PmB6FxGjhmSKdO0+9fx+OUqcBg9iD
|
||||
CjFf0y0bCwNvV3nWIfR5BzoZV4lXFwT9NIt4rb8YRQbBa3OtuAYDju70amvW1TiL
|
||||
JnkhzopNaX5lN+U7ZZQ7sQ==
|
||||
-----END PRIVATE KEY-----
|
||||
Loading…
Add table
Reference in a new issue