diff options
author | Sam James <sam@gentoo.org> | 2022-09-18 01:23:31 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-18 01:23:31 +0100 |
commit | 7fb71a30a32fdbe77ec247da4232e23118783e7e (patch) | |
tree | eba9321359c16f5f5913379e9fa9b8e388224388 | |
parent | dev-cpp/edencommon: add 2022.09.12.00 (diff) | |
download | gentoo-7fb71a30a32fdbe77ec247da4232e23118783e7e.tar.gz gentoo-7fb71a30a32fdbe77ec247da4232e23118783e7e.tar.bz2 gentoo-7fb71a30a32fdbe77ec247da4232e23118783e7e.zip |
dev-util/watchman: add 2022.09.12.00
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | dev-util/watchman/Manifest | 1 | ||||
-rw-r--r-- | dev-util/watchman/watchman-2022.09.12.00.ebuild | 217 |
2 files changed, 218 insertions, 0 deletions
diff --git a/dev-util/watchman/Manifest b/dev-util/watchman/Manifest index 0f8b6d03b22a..02a253dbcb69 100644 --- a/dev-util/watchman/Manifest +++ b/dev-util/watchman/Manifest @@ -88,6 +88,7 @@ DIST watchman-2022.08.15.00.tar.gz 3783166 BLAKE2B a2090fb9e62890ea77e264c6d2727 DIST watchman-2022.08.22.00.tar.gz 3785807 BLAKE2B 7be65183a03bbef4b880349bc04b27c71699ae3a7c140bddea4f3f40299d9bbf19d63980bba988eab4219205b7250c9de2045d29aa9a5c65820e03a1b4cc647d SHA512 33efa917f7561f8f6fddd77590ad87064cfcca10c3936ccc3fd078a3f425ae49ec4a7e0859251c3020f26a0e9086301fd23fc1fafe73746316bf336123463f9d DIST watchman-2022.08.29.00.tar.gz 3787691 BLAKE2B faf3f6afe351f7596256424c9e4f0c31fe826ee1097e216d04d869b3adee7ca1d4d9afbbea99fb3ca4f095d06171a1afe56fc5a71022242c4fde99246c3a1781 SHA512 25f6f133253335ece931fdbb131e8df4961c4b73877e2caa5008d3bd5e66e44b1121b7d4f2cd3367b1759476307aad8d6642089c482a6b65178b0a05510ea5f1 DIST watchman-2022.09.05.00.tar.gz 3787904 BLAKE2B e8bf19f3b3bb15a6d1bc6c902928c8390c6b3d275c193b1235585afe9598ba89c8e2ee77e4d2e41a7b20708e9e2d081ecd99b27702bf5d9551a3b9947cfb6371 SHA512 5c4d3a722e610556e7c76ddbb76996a7e8ff60c141d6264900da368417fe6f94cb68452d4aa3ab7818985b6460140388c89a3d5e00a3269a32a2e4acbc84c996 +DIST watchman-2022.09.12.00.tar.gz 3789078 BLAKE2B 57bb4f5e0e0c4fc3390296e78a62c4301997efcafe72f2cc9418c1d1527e03e6825c64c29aa1214d3cdedd6908a3e2ec89eb51e4c00cdf84129d8af6c3cb9fd9 SHA512 283db0b0d801ac5d0b87bf0edd054c0d4c90b1dee75b791f9fd999777dca9ba9efe46c26093ff932588e35679a9f835296b9109d0441c4dec1d37453f1373c1e DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 diff --git a/dev-util/watchman/watchman-2022.09.12.00.ebuild b/dev-util/watchman/watchman-2022.09.12.00.ebuild new file mode 100644 index 000000000000..ab5b42363940 --- /dev/null +++ b/dev-util/watchman/watchman-2022.09.12.00.ebuild @@ -0,0 +1,217 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# dev-cpp/edencommon +# dev-cpp/folly +# dev-util/watchman + +# TODO: Split into different variables then combine for each component? +# Not all is in rust/ dir. +# Rust components: watchman/cli watchman/rust/serde_bser watchman/rust/watchman_client +CRATES=" +ahash-0.3.8 +ansi_term-0.12.1 +anyhow-1.0.55 +atty-0.2.14 +autocfg-1.1.0 +bitflags-1.3.2 +byteorder-1.4.3 +bytes-1.1.0 +cfg-if-1.0.0 +clap-2.34.0 +const-random-0.1.13 +const-random-macro-0.1.13 +crossbeam-0.8.1 +crossbeam-channel-0.5.2 +crossbeam-deque-0.8.1 +crossbeam-epoch-0.9.7 +crossbeam-queue-0.3.4 +crossbeam-utils-0.8.7 +crunchy-0.2.2 +either-1.6.1 +futures-0.1.31 +futures-0.3.21 +futures-channel-0.3.21 +futures-core-0.3.21 +futures-executor-0.3.21 +futures-io-0.3.21 +futures-macro-0.3.21 +futures-sink-0.3.21 +futures-task-0.3.21 +futures-util-0.3.21 +getrandom-0.2.5 +heck-0.3.3 +hermit-abi-0.1.19 +jwalk-0.6.0 +lazy_static-1.4.0 +libc-0.2.119 +lock_api-0.4.6 +log-0.4.14 +maplit-1.0.2 +memchr-2.4.1 +memoffset-0.6.5 +mio-0.8.0 +miow-0.3.7 +ntapi-0.3.7 +num_cpus-1.13.1 +once_cell-1.9.0 +parking_lot-0.12.0 +parking_lot_core-0.9.1 +pin-project-lite-0.2.8 +pin-utils-0.1.0 +proc-macro2-1.0.36 +proc-macro-error-1.0.4 +proc-macro-error-attr-1.0.4 +proc-macro-hack-0.5.19 +quote-1.0.15 +rayon-1.5.1 +rayon-core-1.9.1 +redox_syscall-0.2.10 +scopeguard-1.1.0 +serde-1.0.136 +serde_derive-1.0.136 +signal-hook-registry-1.4.0 +slab-0.4.5 +smallvec-1.8.0 +socket2-0.4.4 +strsim-0.8.0 +structopt-0.3.26 +structopt-derive-0.4.18 +syn-1.0.86 +textwrap-0.11.0 +thiserror-1.0.30 +thiserror-impl-1.0.30 +tiny-keccak-2.0.2 +tokio-1.17.0 +tokio-macros-1.7.0 +tokio-util-0.6.9 +unicode-segmentation-1.9.0 +unicode-width-0.1.9 +unicode-xid-0.2.2 +vec_map-0.8.2 +version_check-0.9.4 +wasi-0.10.2+wasi-snapshot-preview1 +winapi-0.3.9 +winapi-i686-pc-windows-gnu-0.4.0 +winapi-x86_64-pc-windows-gnu-0.4.0 +windows_aarch64_msvc-0.32.0 +windows_i686_gnu-0.32.0 +windows_i686_msvc-0.32.0 +windows-sys-0.32.0 +windows_x86_64_gnu-0.32.0 +windows_x86_64_msvc-0.32.0 +" + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit cargo cmake distutils-r1 tmpfiles + +DESCRIPTION="A file watching service" +HOMEPAGE="https://facebook.github.io/watchman/" +SRC_URI="https://github.com/facebook/watchman/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" $(cargo_crate_uris)" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="llvm-libunwind python" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# See https://github.com/facebook/watchman/blob/main/CMakeLists.txt#L342 for libevent +RDEPEND=" + dev-libs/libevent:= + dev-libs/libpcre2 + ~dev-cpp/edencommon-${PV}:= + ~dev-cpp/folly-${PV}:= + dev-cpp/glog:= + >=dev-libs/libfmt-8.1.1-r1:= + dev-libs/openssl:= + llvm-libunwind? ( sys-libs/llvm-libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + python? ( ${PYTHON_DEPS} )" +# TODO: Make gtest test-only (needs a fair bit of patching) +DEPEND="${RDEPEND} + dev-cpp/gtest" + +PATCHES=( + "${FILESDIR}"/${PN}-2022.07.04.00-python-working-dir.patch + "${FILESDIR}"/${PN}-2022.02.28.00-libatomic.patch + "${FILESDIR}"/${PN}-2022.08.08.00-musl-fsword-fix.patch +) + +# Rust utility +QA_FLAGS_IGNORED="usr/bin/watchmanctl" + +distutils_enable_tests unittest + +src_prepare() { + cmake_src_prepare +} + +src_configure() { + # https://github.com/facebook/watchman/blob/789678cf9855fb07b402afb75b01e4f8786deba2/build/fbcode_builder/CMake/RustStaticLibrary.cmake#L17 + export RUST_VENDORED_CRATES_DIR="${ECARGO_VENDOR}" + export RUST_CARGO_HOME="${ECARGO_HOME}" + export CARGO_HOME="${ECARGO_HOME}" + # Build system already handles avoiding Rust-jobs-while-CMake-jobs-spawned issue + # https://github.com/facebook/watchman/blob/789678cf9855fb07b402afb75b01e4f8786deba2/build/fbcode_builder/CMake/RustStaticLibrary.cmake#L69 + # so no need to force -j1 via cargo jobs + + local mycmakeargs=( + # Rust wrangling + -DUSE_CARGO_VENDOR=ON + -DGENERATE_CARGO_VENDOR_CONFIG=OFF + -DRUST_CARGO_HOME="${RUST_CARGO_HOME}" + + # General bits + -DWATCHMAN_STATE_DIR="${EPREFIX}"/run/watchman + -DWATCHMAN_VERSION_OVERRIDE=${PV} + + # Fails to build against fbthrift for now in libatomic troubles + -DENABLE_EDEN_SUPPORT=OFF + + # We handle this ourselves + -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON + ) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + if use python ; then + pushd watchman/python >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi +} + +src_test() { + cmake_src_test + + if use python ; then + pushd watchman/python >/dev/null || die + distutils-r1_src_test + popd >/dev/null || die + fi +} + +src_install() { + cmake_src_install + + newtmpfiles "${FILESDIR}"/watchman.tmpfiles watchman.conf + + if use python ; then + pushd watchman/python >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi +} + +pkg_postinst() { + tmpfiles_process watchman.conf +} |