# Copyright 2023-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Autogenerated by pycargoebuild 0.13.4 EAPI=8 CRATES=" adler@1.0.2 aho-corasick@0.7.19 ansi_term@0.12.1 anyhow@1.0.38 arrayref@0.3.6 arrayvec@0.5.2 atty@0.2.14 autocfg@1.1.0 base64@0.13.0 base64@0.21.0 bitflags@0.9.1 bitflags@1.2.1 bitflags@2.4.1 blake2b_simd@0.5.11 block-buffer@0.9.0 block@0.1.6 bstr@0.2.15 bumpalo@3.16.0 bytemuck@1.15.0 bytemuck_derive@1.6.0 byteorder@1.4.3 bytes@1.1.0 bzip2-sys@0.1.11+1.0.8 bzip2@0.4.4 calloop-wayland-source@0.2.0 calloop@0.12.4 caps@0.5.2 cc@1.0.73 cfg-if@0.1.10 cfg-if@1.0.0 cfg_aliases@0.2.1 chrono@0.4.19 clap@3.2.25 clap_lex@0.2.4 colored@2.1.0 concurrent-queue@2.4.0 console@0.14.1 const_format@0.2.14 const_format_proc_macros@0.2.14 constant_time_eq@0.1.5 core-foundation-sys@0.8.2 core-foundation@0.9.1 cpufeatures@0.2.1 crc32fast@1.2.1 crossbeam-channel@0.5.0 crossbeam-deque@0.8.1 crossbeam-epoch@0.9.8 crossbeam-queue@0.3.5 crossbeam-utils@0.8.19 crossbeam@0.8.1 cstr_core@0.2.5 ctor@0.1.20 cty@0.2.2 cursor-icon@1.1.0 dashmap@5.4.0 dbus@0.9.1 dialoguer@0.8.0 diff@0.1.12 difference@2.0.0 digest@0.9.0 dirs-sys@0.3.5 dirs@1.0.5 dirs@3.0.1 dlib@0.5.2 downcast-rs@1.2.0 downcast@0.10.0 dtoa@0.4.7 dunce@1.0.1 either@1.6.1 encode_unicode@0.3.6 encoding_rs@0.8.28 enum-as-inner@0.3.3 enum-as-inner@0.6.0 equivalent@1.0.1 errno-dragonfly@0.1.1 errno@0.2.7 errno@0.3.8 filetime@0.2.14 flate2@1.0.20 float-cmp@0.8.0 fnv@1.0.7 foreign-types-shared@0.1.1 foreign-types@0.3.2 form_urlencoded@1.0.1 fragile@1.0.0 fs2@0.4.3 fs_extra@1.3.0 fsevent-sys@2.0.1 fsevent@0.4.0 fuchsia-cprng@0.1.1 fuchsia-zircon-sys@0.3.3 fuchsia-zircon@0.3.3 futf@0.1.4 futures-channel@0.3.17 futures-core@0.3.17 futures-io@0.3.17 futures-sink@0.3.17 futures-task@0.3.17 futures-util@0.3.17 gcc@0.3.55 generic-array@0.14.4 getrandom@0.1.16 getrandom@0.2.2 glob@0.3.0 h2@0.3.26 hashbrown@0.12.3 hashbrown@0.14.3 heck@0.3.2 heck@0.4.1 hermit-abi@0.1.18 hermit-abi@0.3.9 hex@0.4.3 html2text@0.12.0 html5ever@0.26.0 http-body@0.4.3 http@0.2.4 httparse@1.8.0 httpdate@1.0.1 hyper-rustls@0.23.2 hyper-tls@0.5.0 hyper@0.14.26 idna@0.2.3 include_dir@0.6.0 include_dir_impl@0.6.0 indexmap@1.9.3 indexmap@2.2.2 indoc@1.0.3 inotify-sys@0.1.5 inotify@0.7.1 iovec@0.1.4 ipnet@2.3.1 itertools@0.10.0 itoa@0.4.7 itoa@1.0.6 js-sys@0.3.53 kernel32-sys@0.2.2 lazy_static@1.4.0 lazycell@1.3.0 libc@0.2.161 libdbus-sys@0.2.1 libloading@0.7.0 linked-hash-map@0.5.4 linux-raw-sys@0.4.13 lock_api@0.4.11 log-panics@2.0.0 log@0.4.14 mac-notification-sys@0.3.0 mac@0.1.1 malloc_buf@0.0.6 markdown@0.3.0 markup5ever@0.11.0 matches@0.1.9 memchr@2.5.0 memmap2@0.8.0 memmap2@0.9.4 memoffset@0.6.5 memoffset@0.9.1 mime@0.3.16 miniz_oxide@0.4.4 mio-extras@2.0.6 mio@0.6.23 mio@0.8.6 miow@0.2.2 mockall@0.9.1 mockall_derive@0.9.1 named_pipe@0.4.1 native-tls@0.2.11 natord@1.0.9 net2@0.2.37 new_debug_unreachable@1.0.4 nix@0.29.0 nom@6.1.2 normalize-line-endings@0.3.0 notify-rust@4.2.2 notify@4.0.17 ntapi@0.4.1 num-integer@0.1.44 num-traits@0.2.14 num_cpus@1.13.0 objc-foundation@0.1.1 objc@0.2.7 objc_id@0.1.1 once_cell@1.19.0 opaque-debug@0.3.0 opener@0.5.0 openssl-macros@0.1.0 openssl-probe@0.1.4 openssl-sys@0.9.103 openssl@0.10.66 ordered-float@2.1.1 os_str_bytes@6.6.1 output_vt100@0.1.2 parking_lot_core@0.9.9 path-slash@0.1.4 percent-encoding@2.1.0 phf@0.10.1 phf_codegen@0.10.0 phf_generator@0.10.0 phf_generator@0.8.0 phf_shared@0.10.0 phf_shared@0.8.0 pin-project-lite@0.2.14 pin-utils@0.1.0 pipeline@0.5.0 pkg-config@0.3.19 polling@3.6.0 ppv-lite86@0.2.10 precomputed-hash@0.1.1 predicates-core@1.0.2 predicates-tree@1.0.2 predicates@1.0.8 pretty_assertions@0.7.2 proc-macro-hack@0.5.19 proc-macro2@1.0.78 pure-rust-locales@0.5.6 quick-xml@0.36.2 quote@0.3.15 quote@1.0.35 rand@0.4.6 rand@0.7.3 rand@0.8.3 rand_chacha@0.2.2 rand_chacha@0.3.0 rand_core@0.3.1 rand_core@0.4.2 rand_core@0.5.1 rand_core@0.6.2 rand_hc@0.2.0 rand_hc@0.3.0 rand_pcg@0.2.1 rayon-core@1.9.3 rayon@1.5.3 rdrand@0.4.0 redox_syscall@0.1.57 redox_syscall@0.2.5 redox_syscall@0.4.1 redox_users@0.3.5 regex-automata@0.1.10 regex-syntax@0.6.27 regex@1.5.5 remove_dir_all@0.5.3 reqwest@0.11.17 ring@0.16.20 rust-argon2@0.8.3 rustix@0.38.32 rustls-pemfile@1.0.2 rustls@0.20.8 ryu@1.0.5 same-file@1.0.6 schannel@0.1.19 scoped-tls@1.0.0 scopeguard@1.1.0 sct@0.7.0 security-framework-sys@2.3.0 security-framework@2.3.1 serde@1.0.123 serde_derive@1.0.123 serde_json@1.0.62 serde_urlencoded@0.7.1 serde_yaml@0.8.17 sha2@0.9.6 simplelog@0.9.0 siphasher@0.3.6 slab@0.4.9 smallvec@1.13.2 smithay-client-toolkit@0.18.1 socket2@0.4.9 spin@0.5.2 string_cache@0.8.1 string_cache_codegen@0.5.1 strsim@0.10.0 strum@0.22.0 strum@0.8.0 strum_macros@0.22.0 strum_macros@0.8.0 syn@0.11.11 syn@1.0.67 syn@2.0.48 synom@0.11.3 sys-locale@0.1.0 sysinfo@0.28.4 tempdir@0.3.7 tempfile@3.2.0 tendril@0.4.2 termcolor@1.1.2 terminal_size@0.1.17 test-case@1.1.0 textwrap@0.16.1 thiserror-impl@1.0.56 thiserror@1.0.56 time@0.1.44 tinyvec@1.3.1 tinyvec_macros@0.1.0 tokio-native-tls@0.3.0 tokio-rustls@0.23.4 tokio-util@0.7.3 tokio@1.28.2 toml@0.5.8 tower-service@0.3.1 tracing-core@0.1.32 tracing@0.1.40 treeline@0.1.0 try-lock@0.2.3 typenum@1.14.0 unicase@2.6.0 unicode-bidi@0.3.6 unicode-ident@1.0.12 unicode-normalization@0.1.19 unicode-segmentation@1.12.0 unicode-width@0.1.8 unicode-xid@0.0.4 unicode-xid@0.2.1 unindent@0.1.7 untrusted@0.7.1 url@2.2.2 utf-8@0.7.6 vcpkg@0.2.15 version_check@0.9.2 wait-timeout@0.2.0 walkdir@2.3.1 want@0.3.0 wasi@0.10.0+wasi-snapshot-preview1 wasi@0.11.0+wasi-snapshot-preview1 wasi@0.9.0+wasi-snapshot-preview1 wasm-bindgen-backend@0.2.76 wasm-bindgen-futures@0.4.26 wasm-bindgen-macro-support@0.2.76 wasm-bindgen-macro@0.2.76 wasm-bindgen-shared@0.2.76 wasm-bindgen@0.2.76 wayland-backend@0.3.7 wayland-client@0.31.6 wayland-csd-frame@0.3.0 wayland-cursor@0.31.1 wayland-protocols-wlr@0.2.0 wayland-protocols@0.31.2 wayland-scanner@0.31.5 wayland-sys@0.31.5 web-sys@0.3.53 webpki-roots@0.22.6 webpki@0.22.2 widestring@0.4.3 winapi-build@0.1.1 winapi-i686-pc-windows-gnu@0.4.0 winapi-util@0.1.5 winapi-x86_64-pc-windows-gnu@0.4.0 winapi@0.2.8 winapi@0.3.9 windows-sys@0.45.0 windows-sys@0.48.0 windows-sys@0.52.0 windows-targets@0.42.2 windows-targets@0.48.5 windows-targets@0.52.4 windows@0.24.0 windows_aarch64_gnullvm@0.42.2 windows_aarch64_gnullvm@0.48.5 windows_aarch64_gnullvm@0.52.4 windows_aarch64_msvc@0.42.2 windows_aarch64_msvc@0.48.5 windows_aarch64_msvc@0.52.4 windows_i686_gnu@0.24.0 windows_i686_gnu@0.42.2 windows_i686_gnu@0.48.5 windows_i686_gnu@0.52.4 windows_i686_msvc@0.24.0 windows_i686_msvc@0.42.2 windows_i686_msvc@0.48.5 windows_i686_msvc@0.52.4 windows_x86_64_gnu@0.24.0 windows_x86_64_gnu@0.42.2 windows_x86_64_gnu@0.48.5 windows_x86_64_gnu@0.52.4 windows_x86_64_gnullvm@0.42.2 windows_x86_64_gnullvm@0.48.5 windows_x86_64_gnullvm@0.52.4 windows_x86_64_msvc@0.24.0 windows_x86_64_msvc@0.42.2 windows_x86_64_msvc@0.48.5 windows_x86_64_msvc@0.52.4 winreg@0.10.1 winreg@0.9.0 winres@0.1.11 winrt-notification@0.2.2 winrt-notification@0.5.1 winrt@0.4.0 ws2_32-sys@0.2.1 xcursor@0.3.3 xkbcommon@0.7.0 xkeysym@0.2.0 xml-rs@0.6.1 xml-rs@0.8.8 xml5ever@0.17.0 yaml-rust@0.4.5 zeroize@1.3.0 zip@0.5.13 " # Needed because espanso-migrate depends on the git version of yaml-rust declare -A GIT_CRATES=( [yaml-rust]='https://github.com/federico-terzi/yaml-rust;454221bebabc93307bbf7aa7f556407dd3027363;yaml-rust-%commit%' ) inherit cargo desktop fcaps linux-info systemd xdg-utils DESCRIPTION="Cross-platform Text Expander written in Rust" HOMEPAGE="https://espanso.org" SRC_URI=" https://github.com/espanso/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS} " LICENSE="GPL-3" # Dependent crate licenses LICENSE+=" Apache-2.0 BSD-2 BSD CC0-1.0 ISC MIT MPL-2.0 ZLIB" SLOT="0" KEYWORDS="~amd64" IUSE="wayland" DEPEND=" acct-group/input dev-libs/openssl sys-apps/dbus x11-libs/wxGTK wayland? ( x11-libs/libxkbcommon[wayland] ) !wayland? ( x11-libs/libX11 x11-libs/libxcb x11-libs/libXtst x11-libs/libxkbcommon[X] ) " RDEPEND="${DEPEND}" QA_FLAGS_IGNORED="usr/bin/${PN}" pkg_setup() { CONFIG_CHECK="~INPUT_UINPUT" ERROR_INPUT_UINPUT="Espanso with Wayland needs the UINPUT" ERROR_INPUT_UINPUT+=" input device driver to detect user inputs. Without it," ERROR_INPUT_UINPUT+=" Espanso will not work as intended" # Now do the actual checks setup above, but only when using wayland use wayland && linux-info_pkg_setup rust_pkg_setup } src_configure() { local myfeatures=( modulo native-tls $(usev wayland) ) cargo_src_configure --verbose --no-default-features } src_compile() { cargo_src_compile -p "${PN}" } src_install() { cargo_src_install --path "${PN}" newicon -s 128 "espanso/src/res/linux/icon.png" "${PN}.png" domenu "espanso/src/res/linux/${PN}.desktop" # install the systemd-service (user level) sed -i "s|{{{espanso_path}}}|/usr/bin/espanso|g" "espanso/src/res/linux/systemd.service" || die systemd_newuserunit "espanso/src/res/linux/systemd.service" "${PN}.service" } pkg_postinst() { # See https://espanso.org/docs/install/linux/#adding-the-required-capabilities use wayland && fcaps cap_dac_override "usr/bin/${PN}" xdg_icon_cache_update xdg_desktop_database_update } pkg_postrm() { xdg_icon_cache_update xdg_desktop_database_update }