# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Auto-Generated by cargo-ebuild 0.5.2 EAPI=8 CRATES=" addr2line-0.17.0 adler-1.0.2 adler32-1.2.0 ahash-0.7.6 ahash-0.8.2 aho-corasick-0.7.19 android_system_properties-0.1.5 anyhow-1.0.66 arrayref-0.3.6 arrayvec-0.7.2 ash-0.37.0+1.3.209 assert_fs-1.0.9 async-broadcast-0.4.1 async-channel-1.7.1 async-executor-1.5.0 async-fs-1.6.0 async-io-1.10.0 async-lock-2.6.0 async-net-1.7.0 async-process-1.5.0 async-recursion-1.0.0 async-task-4.3.0 async-trait-0.1.58 atomic-waker-1.0.0 atty-0.2.14 autocfg-1.1.0 backtrace-0.3.66 base64-0.13.1 benchmarking-0.4.11 bit-set-0.5.3 bit-vec-0.6.3 bit_field-0.10.1 bitflags-1.3.2 block-0.1.6 block-buffer-0.9.0 block-buffer-0.10.3 blocking-1.2.0 bstr-0.1.4 bstr-0.2.17 bumpalo-3.11.1 bytemuck-1.12.3 bytemuck_derive-1.3.0 byteorder-1.4.3 bytes-1.2.1 cache-padded-1.2.0 camino-1.1.1 cassowary-0.3.0 cast-0.3.0 cc-1.0.76 cfg-if-0.1.10 cfg-if-1.0.0 cfg_aliases-0.1.1 cgl-0.3.2 chrono-0.4.23 clap-2.34.0 clap-4.0.23 clap_complete-4.0.5 clap_complete_fig-4.0.1 clap_derive-4.0.21 clap_lex-0.3.0 clipboard-win-2.2.0 clipboard_macos-0.1.0 cocoa-0.20.2 codespan-reporting-0.11.1 color_quant-1.1.0 colored-1.9.3 colorgrad-0.6.2 concurrent-queue-1.2.4 concurrent-queue-2.0.0 core-foundation-0.7.0 core-foundation-0.9.3 core-foundation-sys-0.7.0 core-foundation-sys-0.8.3 core-graphics-0.19.2 core-graphics-0.22.3 core-graphics-types-0.1.1 core-text-19.2.0 cpufeatures-0.2.5 crc32fast-1.3.2 criterion-0.3.6 criterion-plot-0.4.5 crossbeam-0.8.2 crossbeam-channel-0.5.6 crossbeam-deque-0.8.2 crossbeam-epoch-0.9.11 crossbeam-queue-0.3.6 crossbeam-utils-0.8.12 crunchy-0.2.2 crypto-common-0.1.6 csscolorparser-0.6.2 csv-1.1.6 csv-core-0.1.10 cty-0.2.2 cxx-1.0.81 cxx-build-1.0.81 cxxbridge-flags-1.0.81 cxxbridge-macro-1.0.81 d3d12-0.5.0 darling-0.14.2 darling_core-0.14.2 darling_macro-0.14.2 dashmap-5.4.0 data-encoding-2.3.2 deltae-0.3.0 derivative-2.2.0 dhat-0.3.2 diff-0.1.13 difflib-0.4.0 digest-0.9.0 digest-0.10.5 dirs-2.0.2 dirs-4.0.0 dirs-next-2.0.0 dirs-sys-0.3.7 dirs-sys-next-0.1.2 dlib-0.5.0 doc-comment-0.3.3 downcast-rs-1.2.0 dwrote-0.11.0 either-1.8.0 embed-resource-1.7.4 emojis-0.5.1 encoding_rs-0.8.31 enum-display-derive-0.1.1 enumflags2-0.7.5 enumflags2_derive-0.7.4 env_logger-0.9.3 euclid-0.22.7 event-listener-2.5.3 exr-1.5.2 fallible-iterator-0.2.0 fallible-streaming-iterator-0.1.9 fastrand-1.8.0 filenamegen-0.2.4 filetime-0.2.18 finl_unicode-1.2.0 fixedbitset-0.4.2 flate2-1.0.24 float-cmp-0.9.0 flume-0.10.14 fnv-1.0.7 foreign-types-0.3.2 foreign-types-shared-0.1.1 form_urlencoded-1.1.0 fsevent-sys-4.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-timer-3.0.2 futures-util-0.3.25 fuzzy-matcher-0.3.7 fxhash-0.2.1 generic-array-0.14.6 getopts-0.2.21 getrandom-0.1.16 getrandom-0.2.8 gif-0.11.4 gimli-0.26.2 git2-0.14.4 gl_generator-0.14.0 glium-0.31.0 globset-0.4.9 globwalk-0.8.1 glow-0.11.2 governor-0.4.2 gpu-alloc-0.5.3 gpu-alloc-types-0.2.0 gpu-descriptor-0.2.3 gpu-descriptor-types-0.1.1 guillotiere-0.6.2 h2-0.3.15 half-1.8.2 half-2.1.0 hashbrown-0.11.2 hashbrown-0.12.3 hashlink-0.7.0 hdrhistogram-7.5.2 heck-0.4.0 hermit-abi-0.1.19 hex-0.4.3 hexf-parse-0.2.1 hostname-0.3.1 http-0.2.8 http-body-0.4.5 http_req-0.8.1 httparse-1.8.0 httpdate-1.0.2 humantime-2.1.0 hyper-0.14.23 hyper-tls-0.5.0 iana-time-zone-0.1.53 iana-time-zone-haiku-0.1.1 ident_case-1.0.1 idna-0.3.0 ignore-0.4.18 image-0.24.5 indexmap-1.9.1 inotify-0.9.6 inotify-sys-0.1.5 instant-0.1.12 intrusive-collections-0.9.4 ioctl-rs-0.1.6 ipnet-2.5.1 itertools-0.10.5 itoa-0.4.8 itoa-1.0.4 jobserver-0.1.25 jpeg-decoder-0.3.0 js-sys-0.3.60 k9-0.11.6 khronos-egl-4.1.0 khronos_api-3.1.0 kqueue-1.0.7 kqueue-sys-1.0.3 lab-0.11.0 lazy_static-1.4.0 lazycell-1.3.0 leb128-0.2.5 lebe-0.5.2 libc-0.2.137 libflate-1.2.0 libflate_lz77-1.1.0 libgit2-sys-0.13.4+1.4.2 libloading-0.6.7 libloading-0.7.4 libsqlite3-sys-0.24.2 libssh2-sys-0.2.23 libz-sys-1.1.8 line-wrap-0.1.1 line_drawing-0.8.1 link-cplusplus-1.0.7 linked-hash-map-0.5.6 lock_api-0.4.9 log-0.4.17 lru-0.7.8 lua-src-544.0.1 luajit-src-210.4.3+resty8384278 mach-0.3.2 malloc_buf-0.0.6 maplit-1.0.2 match_cfg-0.1.0 memchr-2.5.0 memmap2-0.2.3 memmap2-0.3.1 memmap2-0.5.8 memmem-0.1.1 memoffset-0.5.6 memoffset-0.6.5 metal-0.24.0 metrics-0.17.1 metrics-macros-0.4.1 mime-0.3.16 minimal-lexical-0.2.1 miniz_oxide-0.4.4 miniz_oxide-0.5.4 miniz_oxide-0.6.2 mintex-0.1.2 mio-0.8.5 mlua-0.8.6 naga-0.10.0 names-0.12.0 nanorand-0.7.0 native-tls-0.2.11 nix-0.22.3 nix-0.23.1 nix-0.24.2 nix-0.25.0 no-std-compat-0.4.1 nom-5.1.2 nom-7.1.1 nonzero_ext-0.3.0 normalize-line-endings-0.3.0 notify-5.0.0 ntapi-0.3.7 num-0.3.1 num-bigint-0.3.3 num-complex-0.3.1 num-derive-0.3.3 num-integer-0.1.45 num-iter-0.1.43 num-rational-0.3.2 num-rational-0.4.1 num-traits-0.2.15 num_cpus-1.14.0 objc-0.2.7 objc-foundation-0.1.1 objc_exception-0.1.2 objc_id-0.1.1 object-0.29.0 once_cell-1.16.0 oorandom-11.1.3 opaque-debug-0.3.0 open-3.0.3 openssl-0.10.38 openssl-probe-0.1.5 openssl-src-300.0.11+3.0.7 openssl-sys-0.9.71 ordered-float-3.4.0 ordered-stream-0.1.1 os_str_bytes-6.4.0 parking-2.0.0 parking_lot-0.11.2 parking_lot-0.12.1 parking_lot_core-0.8.5 parking_lot_core-0.9.4 pathdiff-0.2.1 pem-1.1.0 percent-encoding-2.2.0 pest-2.4.1 pest_derive-2.4.1 pest_generator-2.4.1 pest_meta-2.4.1 phf-0.8.0 phf-0.10.1 phf-0.11.1 phf_codegen-0.8.0 phf_generator-0.8.0 phf_generator-0.11.1 phf_macros-0.11.1 phf_shared-0.8.0 phf_shared-0.10.0 phf_shared-0.11.1 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 plist-1.3.1 plotters-0.3.4 plotters-backend-0.3.4 plotters-svg-0.3.3 png-0.17.7 polling-2.4.0 ppv-lite86-0.2.17 predicates-2.1.3 predicates-core-1.0.5 predicates-tree-1.0.7 proc-macro-crate-1.2.1 proc-macro-error-1.0.4 proc-macro-error-attr-1.0.4 proc-macro2-1.0.47 profiling-1.0.7 pulldown-cmark-0.9.2 pure-rust-locales-0.5.6 quanta-0.9.3 quick-xml-0.22.0 quote-1.0.21 rand-0.7.3 rand-0.8.5 rand_chacha-0.2.2 rand_chacha-0.3.1 rand_core-0.5.1 rand_core-0.6.4 rand_hc-0.2.0 rand_pcg-0.2.1 range-alloc-0.1.2 raw-cpuid-10.6.0 raw-window-handle-0.5.0 rayon-1.5.3 rayon-core-1.9.3 rcgen-0.9.3 redox_syscall-0.2.16 redox_users-0.4.3 regex-1.7.0 regex-automata-0.1.10 regex-syntax-0.6.28 remove_dir_all-0.5.3 renderdoc-sys-0.7.1 reqwest-0.11.12 resize-0.5.5 rgb-0.8.34 ring-0.16.20 rle-decode-fast-1.0.3 rstest-0.15.0 rstest_macros-0.14.0 rusqlite-0.27.0 rustc-demangle-0.1.21 rustc-hash-1.1.0 rustc_version-0.4.0 ryu-1.0.11 safemem-0.3.3 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 security-framework-2.7.0 security-framework-sys-2.6.1 semver-0.11.0 semver-1.0.14 semver-parser-0.10.2 serde-1.0.147 serde_cbor-0.11.2 serde_derive-1.0.147 serde_json-1.0.87 serde_repr-0.1.9 serde_urlencoded-0.7.1 serde_with-2.0.1 serde_with_macros-2.0.1 serde_yaml-0.9.14 serial-0.4.0 serial-core-0.4.0 serial-unix-0.4.0 serial-windows-0.4.0 sha1-0.10.5 sha2-0.9.9 shared_library-0.1.9 shell-words-1.1.0 shlex-1.1.0 signal-hook-0.1.17 signal-hook-0.3.14 signal-hook-registry-1.4.0 siphasher-0.3.10 slab-0.4.7 slotmap-1.0.6 smallvec-1.10.0 smawk-0.3.1 smithay-client-toolkit-0.15.4 smol-1.2.5 smol-potat-1.1.2 smol-potat-macro-0.6.0 socket2-0.4.7 spa-0.3.0 spin-0.5.2 spin-0.9.4 spirv-0.2.0+1.5.4 sqlite-cache-0.1.3 ssh2-0.9.3 starship-battery-0.7.9 static_assertions-1.1.0 strict-num-0.1.0 strsim-0.10.0 svg_fmt-0.4.1 syn-1.0.103 sys-info-0.9.1 takeable-option-0.5.0 tar-0.4.38 tempfile-3.3.0 term_size-0.3.2 termcolor-1.1.3 terminfo-0.7.3 termios-0.2.2 termios-0.3.3 termtree-0.4.0 textwrap-0.11.0 textwrap-0.16.0 thiserror-1.0.37 thiserror-impl-1.0.37 thousands-0.2.0 thread_local-1.1.4 threadpool-1.8.1 tiff-0.8.0 time-0.1.43 time-0.3.17 time-core-0.1.0 time-macros-0.2.6 tiny-skia-0.8.2 tiny-skia-path-0.8.2 tinytemplate-1.2.1 tinyvec-1.6.0 tinyvec_macros-0.1.0 tokio-1.21.2 tokio-macros-1.8.0 tokio-native-tls-0.3.0 tokio-util-0.7.4 toml-0.5.8 tower-service-0.3.2 tracing-0.1.37 tracing-attributes-0.1.23 tracing-core-0.1.30 try-lock-0.2.3 typenum-1.15.0 ucd-trie-0.1.5 uds_windows-1.0.2 unicase-2.6.0 unicode-bidi-0.3.8 unicode-ident-1.0.5 unicode-linebreak-0.1.4 unicode-normalization-0.1.22 unicode-segmentation-1.10.0 unicode-width-0.1.10 unicode-xid-0.2.4 unsafe-libyaml-0.2.4 untrusted-0.7.1 uom-0.30.0 url-2.3.1 utf8parse-0.2.0 varbincode-0.1.0 vcpkg-0.2.15 version_check-0.9.4 vswhom-0.1.0 vswhom-sys-0.1.1 waker-fn-1.1.0 walkdir-2.3.2 want-0.3.0 wasi-0.9.0+wasi-snapshot-preview1 wasi-0.10.2+wasi-snapshot-preview1 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-egl-0.29.5 wayland-protocols-0.29.5 wayland-scanner-0.29.5 wayland-sys-0.29.5 web-sys-0.3.60 weezl-0.1.7 wepoll-ffi-0.1.2 wgpu-0.14.0 wgpu-core-0.14.0 wgpu-hal-0.14.1 wgpu-types-0.14.1 whoami-1.2.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 windows-0.33.0 windows-sys-0.36.1 windows-sys-0.42.0 windows_aarch64_gnullvm-0.42.0 windows_aarch64_msvc-0.33.0 windows_aarch64_msvc-0.36.1 windows_aarch64_msvc-0.42.0 windows_i686_gnu-0.33.0 windows_i686_gnu-0.36.1 windows_i686_gnu-0.42.0 windows_i686_msvc-0.33.0 windows_i686_msvc-0.36.1 windows_i686_msvc-0.42.0 windows_x86_64_gnu-0.33.0 windows_x86_64_gnu-0.36.1 windows_x86_64_gnu-0.42.0 windows_x86_64_gnullvm-0.42.0 windows_x86_64_msvc-0.33.0 windows_x86_64_msvc-0.36.1 windows_x86_64_msvc-0.42.0 winreg-0.10.1 wio-0.2.2 xcb-1.2.0 xcb-imdkit-0.1.2 x11-2.20.0 xattr-0.2.3 xcursor-0.3.4 xkbcommon-0.5.0 xml-rs-0.8.4 yaml-rust-0.4.5 yasna-0.5.0 zbus-3.4.0 zbus_macros-3.4.0 zbus_names-2.2.0 zstd-0.11.2+zstd.1.5.2 zstd-safe-5.0.2+zstd.1.5.2 zstd-sys-2.0.1+zstd.1.5.2 zvariant-3.7.1 zvariant_derive-3.7.1 " inherit bash-completion-r1 desktop cargo xdg-utils DESCRIPTION="A GPU-accelerated cross-platform terminal emulator and multiplexer" HOMEPAGE="https://wezfurlong.org/wezterm/" MY_PV="20221119-145034-49b9839f" MY_P="${PN}-${MY_PV}" SRC_URI=" https://github.com/wez/${PN}/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz $(cargo_crate_uris) " SUBMODULES=( "freetype2 github freetype https://github.com/wez/freetype2 3f83daeecb1a78d851b660eed025eeba362c0e4a" "libpng github freetype https://github.com/glennrp/libpng 8439534daa1d3a5705ba92e653eda9251246dd61" "zlib github freetype https://github.com/madler/zlib cacf7f1d4e3d44d871b605da3b647f07d718623f" "harfbuzz github harfbuzz https://github.com/harfbuzz/harfbuzz 970321db7bddbe8c579b73751fc655a924ea3ce6" "libssh-rs-tmp github crates https://github.com/wez/libssh-rs d36e5648274063c187968fd5ce0b1a7aa350a025" "libssh gitlab crates https://gitlab.com/wez1/libssh-mirror 56e1b0a43a7601d3b2989299262a09db5d81eea0" ) # License set may be more restrictive as OR is not respected # use cargo-license for a more accurate license picture LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions Artistic-2 BSD BSD-2 Boost-1.0 CC0-1.0 GPL-3 ISC LGPL-2.1 MIT MPL-2.0 Unicode-DFS-2016 Unlicense WTFPL-2 ZLIB" SLOT="0" KEYWORDS="~amd64" IUSE="wayland" RESTRICT=test # tests require network PATCHES=( "${FILESDIR}/${PN}-20221119-vendored-sources.patch" "${FILESDIR}/${PN}-20221119-xcb.patch" "${FILESDIR}/${PN}-20221119-xcb-imdkit.patch" ) DEPEND=" dev-libs/openssl wayland? ( dev-libs/wayland ) media-libs/fontconfig media-libs/mesa sys-apps/dbus x11-libs/libX11 x11-libs/libxkbcommon x11-libs/xcb-util x11-libs/xcb-util-image x11-libs/xcb-util-keysyms x11-libs/xcb-util-wm x11-themes/hicolor-icon-theme " RDEPEND="${DEPEND}" BDEPEND=" dev-lang/rust dev-util/cmake dev-util/pkgconf dev-vcs/git " QA_FLAGS_IGNORED=" usr/bin/.* " S="${WORKDIR}/${MY_P}" submodule_uris() { for line in "${SUBMODULES[@]}"; do read -r name hoster dep url commit <<< "${line}" || die if [ ${hoster} == "github" ]; then SRC_URI+=" ${url}/archive/${commit}.tar.gz -> ${url##*/}-${commit}.tar.gz" elif [ ${hoster} == "gitlab" ]; then SRC_URI+=" ${url}/-/archive/${commit}/${url##*/}-${commit}.tar.gz -> ${url##*/}-${commit}.tar.gz" else die fi done } submodule_uris src_prepare() { for line in "${SUBMODULES[@]}"; do read -r name hoster dep url commit <<< "${line}" || die mkdir -p "${S}/deps/${dep}/${name}" || die cp -r "${WORKDIR}"/${url##*/}-${commit}/* "${S}/deps/${dep}/${name}" || die done pushd "${WORKDIR}"/cargo_home/gentoo/xcb-imdkit-0.1.2 || die eapply "${FILESDIR}"/xcb-imdkit-0.1.2-p1.patch eapply "${FILESDIR}"/xcb-imdkit-0.1.2-p2.patch eapply "${FILESDIR}"/xcb-imdkit-0.1.2-p3.patch popd || die mv "${S}/deps/crates/libssh-rs-tmp/libssh-rs" "${S}/deps/crates" || die mv "${S}/deps/crates/libssh-rs-tmp/libssh-rs-sys" "${S}/deps/crates" || die cp -r "${S}"/deps/crates/libssh/* "${S}/deps/crates/libssh-rs-sys/vendored/" || die rm -rf "${S}/deps/crates/libssh-rs-tmp" || die rm -rf "${S}/deps/crates/libssh" || die echo '{"files":{}}' > "${S}/deps/crates/libssh-rs/.cargo-checksum.json" || die echo '{"files":{}}' > "${S}/deps/crates/libssh-rs-sys/.cargo-checksum.json" || die echo '{"files":{}}' > "${WORKDIR}/cargo_home/gentoo/xcb-imdkit-0.1.2/.cargo-checksum.json" || die default eapply_user } src_configure() { if use wayland; then cargo_src_configure else local myfeatures=( $(usex wayland vendored-fonts '') ) cargo_src_configure --no-default-features fi } src_install() { exeinto /usr/bin doexe target/release/wezterm doexe target/release/wezterm-gui doexe target/release/wezterm-mux-server doexe target/release/strip-ansi-escapes insinto /usr/share/icons/hicolor/128x128/apps newins assets/icon/terminal.png org.wezfurlong.wezterm.png newmenu assets/wezterm.desktop org.wezfurlong.wezterm.desktop insinto /usr/share/metainfo newins assets/wezterm.appdata.xml org.wezfurlong.wezterm.appdata.xml newbashcomp assets/shell-completion/bash ${PN} insopts -m 0644 insinto /usr/share/zsh/site-functions newins assets/shell-completion/zsh _${PN} insopts -m 0644 insinto /usr/share/fish/vendor_completions.d newins assets/shell-completion/fish ${PN}.fish } pkg_postinst() { xdg_icon_cache_update einfo "It may be necessary to install a cursor theme, for example:" einfo "emerge x11-themes/xcursor-themes" einfo "and to configure wezterm to use the cursor theme, see:" einfo "https://wezfurlong.org/wezterm/faq.html?highlight=xcursor_theme#i-use-x11-or-wayland-and-my-mouse-cursor-theme-doesnt-seem-to-work" if use wayland; then einfo "It may be necessary to set the environment variable XCURSOR_PATH" einfo "to the directory containing the cursor icons, for example" einfo 'export XCURSOR_PATH="/usr/share/cursors/xorg-x11/"' einfo "before starting the wayland window compositor to avoid the error" einfo "ERROR window::os::wayland::frame > Unable to set cursor to left_ptr: cursor not found" fi einfo "Update checking is not implemented on Gentoo, which results in wezterm" einfo "saying an update is available when the current x11-terms/wezterm" einfo "is installed. It is recommended to disable update checking." einfo "For example, in the file ~/.wezterm.lua:" einfo "return {" einfo ' xcursor_theme = "whiteglass"' einfo " check_for_updates = false" einfo "}" } pkg_postrm() { xdg_icon_cache_update }