aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www-plugins/firefoxpwa/firefoxpwa-2.12.0-r1.ebuild523
1 files changed, 523 insertions, 0 deletions
diff --git a/www-plugins/firefoxpwa/firefoxpwa-2.12.0-r1.ebuild b/www-plugins/firefoxpwa/firefoxpwa-2.12.0-r1.ebuild
new file mode 100644
index 000000000..11238aed7
--- /dev/null
+++ b/www-plugins/firefoxpwa/firefoxpwa-2.12.0-r1.ebuild
@@ -0,0 +1,523 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ab_glyph@0.2.25
+ ab_glyph_rasterizer@0.1.8
+ addr2line@0.21.0
+ adler32@1.2.0
+ adler@1.0.2
+ aho-corasick@1.1.3
+ aligned-vec@0.5.0
+ alloc-no-stdlib@2.0.4
+ alloc-stdlib@0.2.2
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.13
+ anstyle-parse@0.2.3
+ anstyle-query@1.0.2
+ anstyle-wincon@3.0.2
+ anstyle@1.0.6
+ anyhow@1.0.82
+ arbitrary@1.3.2
+ arg_enum_proc_macro@0.3.4
+ arrayref@0.3.7
+ arrayvec@0.7.4
+ async-compression@0.4.9
+ autocfg@1.2.0
+ av1-grain@0.2.3
+ avif-serialize@0.8.1
+ backtrace@0.3.71
+ base64@0.21.7
+ base64@0.22.1
+ bit_field@0.10.2
+ bitflags@1.3.2
+ bitflags@2.5.0
+ bitstream-io@2.2.0
+ blake3@1.5.1
+ brotli-decompressor@4.0.0
+ brotli@5.0.0
+ built@0.7.2
+ bumpalo@3.16.0
+ bytemuck@1.15.0
+ byteorder-lite@0.1.0
+ byteorder@1.5.0
+ bytes@1.6.0
+ bzip2-sys@0.1.11+1.0.8
+ bzip2@0.4.4
+ cc@1.0.96
+ cfg-expr@0.15.8
+ cfg-if@1.0.0
+ cfg_aliases@0.2.0
+ chrono@0.4.38
+ clap@4.5.4
+ clap_builder@4.5.2
+ clap_complete@4.5.2
+ clap_derive@4.5.4
+ clap_lex@0.7.0
+ color_quant@1.1.0
+ colorchoice@1.0.0
+ configparser@3.0.4
+ const_format@0.2.32
+ const_format_proc_macros@0.2.32
+ constant_time_eq@0.3.0
+ core-foundation-sys@0.8.6
+ core-foundation@0.9.4
+ crc32fast@1.4.0
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.19
+ crunchy@0.2.2
+ csscolorparser@0.6.2
+ darling@0.20.8
+ darling_core@0.20.8
+ darling_macro@0.20.8
+ data-url@0.3.1
+ deflate@0.8.6
+ deranged@0.3.11
+ directories@5.0.1
+ dirs-sys@0.4.1
+ dmg@0.1.2
+ either@1.11.0
+ encoding_rs@0.8.34
+ equivalent@1.0.1
+ errno@0.3.8
+ exr@1.72.0
+ fastrand@2.1.0
+ fdeflate@0.3.4
+ filedescriptor@0.8.2
+ filetime@0.2.23
+ flate2@1.0.30
+ float-cmp@0.9.0
+ flume@0.11.0
+ fnv@1.0.7
+ fontconfig-parser@0.5.6
+ fontdb@0.16.2
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ form_urlencoded@1.2.1
+ fs_extra@1.3.0
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-io@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ gag@1.0.0
+ getrandom@0.2.14
+ gif@0.13.1
+ gimli@0.28.1
+ glob@0.3.1
+ h2@0.4.4
+ half@2.4.1
+ hashbrown@0.12.3
+ hashbrown@0.14.5
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hex@0.4.3
+ http-body-util@0.1.1
+ http-body@1.0.0
+ http@1.1.0
+ httparse@1.8.0
+ hyper-tls@0.6.0
+ hyper-util@0.1.3
+ hyper@1.3.1
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ icns@0.3.1
+ ident_case@1.0.1
+ idna@0.5.0
+ image-webp@0.1.2
+ image@0.25.1
+ imagesize@0.12.0
+ imgref@1.10.1
+ indexmap@1.9.3
+ indexmap@2.2.6
+ interpolate_name@0.2.4
+ ipnet@2.9.0
+ itertools@0.12.1
+ itoa@1.0.11
+ jobserver@0.1.31
+ jpeg-decoder@0.3.1
+ js-sys@0.3.69
+ kurbo@0.11.0
+ language-tags@0.3.2
+ lazy_static@1.4.0
+ lebe@0.5.2
+ libc@0.2.154
+ libfuzzer-sys@0.4.7
+ libredox@0.1.3
+ line-wrap@0.2.0
+ linux-raw-sys@0.4.13
+ lock_api@0.4.12
+ log@0.4.21
+ loop9@0.1.5
+ maybe-rayon@0.1.1
+ memchr@2.7.2
+ memmap2@0.9.4
+ mime@0.3.17
+ minimal-lexical@0.2.1
+ miniz_oxide@0.3.7
+ miniz_oxide@0.7.2
+ mio@0.8.11
+ native-tls@0.2.11
+ new_debug_unreachable@1.0.6
+ nom@7.1.3
+ noop_proc_macro@0.3.0
+ num-bigint@0.4.4
+ num-conv@0.1.0
+ num-derive@0.4.2
+ num-integer@0.1.46
+ num-rational@0.4.1
+ num-traits@0.2.18
+ num_cpus@1.16.0
+ num_threads@0.1.7
+ object@0.32.2
+ once_cell@1.19.0
+ openssl-macros@0.1.1
+ openssl-probe@0.1.5
+ openssl-src@300.2.3+3.2.1
+ openssl-sys@0.9.102
+ openssl@0.10.64
+ option-ext@0.2.0
+ owned_ttf_parser@0.20.0
+ parse-display-derive@0.8.2
+ parse-display@0.8.2
+ paste@1.0.14
+ percent-encoding@2.3.1
+ phf@0.11.2
+ phf_generator@0.11.2
+ phf_macros@0.11.2
+ phf_shared@0.11.2
+ pico-args@0.5.0
+ pin-project-internal@1.1.5
+ pin-project-lite@0.2.14
+ pin-project@1.1.5
+ pin-utils@0.1.0
+ pix@0.13.3
+ pkg-config@0.3.30
+ plist@1.6.1
+ png@0.16.8
+ png@0.17.13
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ proc-macro2@1.0.81
+ profiling-procmacros@1.0.15
+ profiling@1.0.15
+ qoi@0.4.1
+ quick-error@1.2.3
+ quick-error@2.0.1
+ quick-xml@0.31.0
+ quote@1.0.36
+ quoted-string@0.2.2
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rav1e@0.7.1
+ ravif@0.11.5
+ rayon-core@1.12.1
+ rayon@1.10.0
+ redox_syscall@0.4.1
+ redox_users@0.4.5
+ regex-automata@0.4.6
+ regex-syntax@0.7.5
+ regex-syntax@0.8.3
+ regex@1.10.4
+ reqwest@0.12.4
+ resvg@0.41.0
+ rgb@0.8.37
+ roxmltree@0.19.0
+ rustc-demangle@0.1.23
+ rustix@0.38.34
+ rustls-pemfile@2.1.2
+ rustls-pki-types@1.5.0
+ rustybuzz@0.13.0
+ ryu@1.0.17
+ sanitize-filename@0.5.0
+ schannel@0.1.23
+ scopeguard@1.2.0
+ security-framework-sys@2.10.0
+ security-framework@2.10.0
+ serde@1.0.199
+ serde_derive@1.0.199
+ serde_json@1.0.116
+ serde_spanned@0.6.5
+ serde_urlencoded@0.7.1
+ serde_with@3.8.1
+ serde_with_macros@3.8.1
+ simd-adler32@0.3.7
+ simd_helpers@0.1.0
+ simplecss@0.2.1
+ simplelog@0.12.2
+ siphasher@0.3.11
+ siphasher@1.0.1
+ slab@0.4.9
+ slotmap@1.0.7
+ smallvec@1.13.2
+ smart-default@0.7.1
+ socket2@0.5.7
+ spin@0.9.8
+ strict-num@0.1.1
+ strsim@0.10.0
+ strsim@0.11.1
+ structmeta-derive@0.2.0
+ structmeta@0.2.0
+ svgtypes@0.15.0
+ syn@2.0.60
+ sync_wrapper@0.1.2
+ system-configuration-sys@0.5.0
+ system-configuration@0.5.1
+ system-deps@6.2.2
+ tar@0.4.40
+ target-lexicon@0.12.14
+ tempfile@3.10.1
+ termcolor@1.4.1
+ thiserror-impl@1.0.59
+ thiserror@1.0.59
+ tiff@0.9.1
+ time-core@0.1.2
+ time-macros@0.2.18
+ time@0.3.36
+ tiny-skia-path@0.11.4
+ tiny-skia@0.11.4
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tokio-native-tls@0.3.1
+ tokio-socks@0.5.1
+ tokio-util@0.7.10
+ tokio@1.37.0
+ toml@0.8.12
+ toml_datetime@0.6.5
+ toml_edit@0.22.12
+ tower-layer@0.3.2
+ tower-service@0.3.2
+ tower@0.4.13
+ tracing-core@0.1.32
+ tracing@0.1.40
+ try-lock@0.2.5
+ ttf-parser@0.20.0
+ ulid@1.1.2
+ unicode-bidi-mirroring@0.2.0
+ unicode-bidi@0.3.15
+ unicode-ccc@0.2.0
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unicode-properties@0.1.1
+ unicode-script@0.5.6
+ unicode-vo@0.1.0
+ unicode-xid@0.2.4
+ url@2.5.0
+ urlencoding@2.1.3
+ usvg@0.41.0
+ utf8parse@0.2.1
+ v_frame@0.3.8
+ vcpkg@0.2.15
+ version-compare@0.2.0
+ version_check@0.9.4
+ want@0.3.1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.92
+ wasm-bindgen-futures@0.4.42
+ wasm-bindgen-macro-support@0.2.92
+ wasm-bindgen-macro@0.2.92
+ wasm-bindgen-shared@0.2.92
+ wasm-bindgen@0.2.92
+ web-sys@0.3.69
+ web-time@1.1.0
+ weezl@0.1.8
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.8
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.48.5
+ windows-targets@0.52.5
+ windows@0.52.0
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.5
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.5
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.5
+ windows_i686_gnullvm@0.52.5
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.5
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.5
+ winnow@0.6.7
+ winreg@0.52.0
+ xattr@1.3.1
+ xmlwriter@0.1.0
+ zstd-safe@7.1.0
+ zstd-sys@2.0.10+zstd.1.5.6
+ zstd@0.13.1
+ zune-core@0.4.12
+ zune-inflate@0.2.54
+ zune-jpeg@0.4.11
+"
+
+declare -A GIT_CRATES=(
+ [mime-parse]='https://github.com/filips123/mime;57416f447a10c3343df7fe80deb0ae8a7c77cf0a;mime-%commit%/mime-parse'
+ [mime]='https://github.com/filips123/mime;57416f447a10c3343df7fe80deb0ae8a7c77cf0a;mime-%commit%'
+ [web_app_manifest]='https://github.com/filips123/WebAppManifestRS;477c5bbc7406eec01aea40e18338dafcec78c917;WebAppManifestRS-%commit%'
+)
+
+inherit cargo desktop flag-o-matic shell-completion toolchain-funcs xdg
+
+DESCRIPTION="A tool to install, manage and use PWAs in Mozilla Firefox (native component)"
+HOMEPAGE="https://pwasforfirefox.filips.si/"
+
+SRC_URI="
+ https://github.com/filips123/PWAsForFirefox/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+S="${WORKDIR}/PWAsForFirefox-${PV}/native"
+
+# Main project license
+LICENSE="MPL-2.0"
+
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD MIT MPL-2.0
+ Unicode-DFS-2016 ZLIB
+"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="custom-cflags lto static"
+
+# Add app-arch/bzip2 when it finally get pkg-config file
+DEPEND="
+ !static? (
+ app-arch/zstd:=
+ dev-libs/openssl:=
+ )
+"
+RDEPEND="${DEPEND}"
+# As Rust produces LLVM IR when using LTO, lld is needed to link. Furthermore,
+# as some crates contain C code, clang should be used to compile them to produce
+# compatible IR.
+BDEPEND="
+ lto? (
+ !custom-cflags? (
+ sys-devel/clang
+ sys-devel/lld
+ )
+ )
+ !static? ( virtual/pkgconfig )
+"
+
+QA_FLAGS_IGNORED="
+ usr/bin/firefoxpwa
+ usr/libexec/firefoxpwa-connector
+"
+
+src_prepare() {
+ default
+
+ # Set version in source files as per build instructions
+ sed -i "s/version = \"0.0.0\"/version = \"${PV}\"/g" Cargo.toml || die
+ sed -i "s/DISTRIBUTION_VERSION = '0.0.0'/DISTRIBUTION_VERSION = '${PV}'/g" \
+ userchrome/profile/chrome/pwa/chrome.jsm || die
+}
+
+src_configure() {
+ # Setup toolchain
+ export CARGO_PROFILE_RELEASE_LTO=$(usex lto true false)
+ strip-flags
+
+ if use lto; then
+ if ! use custom-cflags; then
+ CC="${CHOST}-clang"
+ CXX="${CHOST}-clang++"
+ RUSTFLAGS="-Clinker=clang -Clink-arg=-fuse-ld=lld ${RUSTFLAGS}"
+
+ # Fix -flto[=n] not being recognized by clang.
+ if tc-is-clang && is-flag "-flto=*"; then
+ replace-flags "-flto=*" "-flto"
+ fi
+ fi
+ else
+ filter-lto
+ fi
+
+ # Ask to use system dependencies
+ if ! use static; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ export OPENSSL_NO_VENDOR=1
+ fi
+
+ # Configure features
+ local myfeatures=(
+ $(usev static)
+ )
+
+ cargo_src_configure
+}
+
+src_install() {
+ # Executables
+ dobin target/*/firefoxpwa
+ exeinto /usr/libexec
+ doexe target/*/firefoxpwa-connector
+
+ # Manifest
+ local target_dirs=( /usr/lib{,64}/mozilla/native-messaging-hosts )
+ for target_dir in "${target_dirs[@]}"; do
+ insinto "${target_dir}"
+ newins manifests/linux.json firefoxpwa.json
+ done
+
+ # Completions
+ newbashcomp target/*/completions/firefoxpwa.bash firefoxpwa
+ dofishcomp target/*/completions/firefoxpwa.fish
+ dozshcomp target/*/completions/_firefoxpwa
+
+ # UserChrome
+ insinto /usr/share/firefoxpwa
+ doins -r ./userchrome
+
+ # Documentation
+ dodoc ../README.md
+ newdoc ../native/README.md README-NATIVE.md
+ newdoc ../extension/README.md README-EXTENSION.md
+
+ # AppStream Metadata
+ insinto /usr/share/metainfo
+ doins packages/appstream/si.filips.FirefoxPWA.metainfo.xml
+
+ # Icon
+ doicon -s scalable packages/appstream/si.filips.FirefoxPWA.svg
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "You have successfully installed the native part of the PWAsForFirefox project."
+ elog "You should also install the Firefox extension if you haven't already."
+ elog
+ elog "Download:"
+ elog "\thttps://addons.mozilla.org/firefox/addon/pwas-for-firefox/"
+ fi
+
+ xdg_pkg_postinst
+}
+
+pkg_postrm() {
+ if [[ ! ${REPLACED_BY_VERSION} ]]; then
+ elog "Runtime, profiles and web apps are still installed in user directories."
+ elog "You can remove them manually after this package is uninstalled."
+ elog "Doing that will remove all installed web apps and their data."
+ fi
+
+ xdg_pkg_postrm
+}