summaryrefslogtreecommitdiff
path: root/dev-util/watchman
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
commit2719f73b6813d11d13a9650cdd2ab8ec6e69385d (patch)
tree8c816148bcbd22757d892089c989ae614eae4f5a /dev-util/watchman
parent0f558761aa2dee1017b4751e4017205e015a9560 (diff)
gentoo resync : 09.07.2022
Diffstat (limited to 'dev-util/watchman')
-rw-r--r--dev-util/watchman/Manifest3
-rw-r--r--dev-util/watchman/files/watchman-2022.07.04.00-python-working-dir.patch73
-rw-r--r--dev-util/watchman/watchman-2022.07.04.00.ebuild210
3 files changed, 286 insertions, 0 deletions
diff --git a/dev-util/watchman/Manifest b/dev-util/watchman/Manifest
index e95034168310..53d28f13f879 100644
--- a/dev-util/watchman/Manifest
+++ b/dev-util/watchman/Manifest
@@ -1,5 +1,6 @@
AUX watchman-2022.02.28.00-libatomic.patch 2254 BLAKE2B 4eec2caf20f9c892bd9d2a7961da35cf79b606bc519a7b0b725b41b9fe844f4ec9ebc8de233565fd4889c492b7c3b45581e00e6c90ca981f37bf3f047f93f577 SHA512 12fbe5afb62008c97a60340ea05a148932ffe9428f2c0114fbe2fccf7ff428aa43e6a0c856edb78ec1a0d81cba92dd6cda92a079c24213e77b69d6bb88a25b06
AUX watchman-2022.02.28.00-python-working-dir.patch 2409 BLAKE2B b92a51ac410063384c94047681a93fd3c2033a92dfbb0d65c9b00463696fb7917f03faa20c5f39dd331d6e7715db7b53d1fa77ca3ad20caa7b29971e90c8da21 SHA512 6429eab55af5faa6bb1cc946792209541f5c8228c1dc48de89a5777d2c402a41515f6810b6c3fb760c4c3bc2bfbec8b5b9c44f6d72229e20aac5988bb2a1fb4f
+AUX watchman-2022.07.04.00-python-working-dir.patch 2455 BLAKE2B 3a8c37f87884caae46d87194d397cefd6f1d58d78d22f3cda43bde3a5262a9d88dcf8f1747790786a889384ee5fd0ed2507ed2faffd63f338e08b445aec2876e SHA512 9c7bcea9502e5fa11e63ca3b0fb0132a67512beece934becf9a2ebdc1097f29b7a454a22c519f801779da8c9e682d2d306fa79e2f38cc1d21aca21d3a25151e1
AUX watchman.tmpfiles 32 BLAKE2B 88c6a5c4b1d7a35d4ed485ab1e7ba0e18a8433d176318f69e77030d4980931876fdd8d1811e0af8c924c89c358cffb7cc9ab4effbc363cfae8adc6d88597313a SHA512 5c4230d23a045704efd5851abe0cb4c6e9eba91e128bbfc677e231868ea161364055fea65800a9b8bec61d95c6a2824dffa536755e12d3b6599a81cdea5c063b
DIST ahash-0.3.8.crate 28650 BLAKE2B 93dcd622dc4497d0ce436461349119e96266c25278a7252a8cd295ced922b430895041ec767b6cbfdef57ada69e9b7bc67cce5155a6bdac9fe3c87c25e3a9e74 SHA512 dfd49903b0950a4fd3bf7432108f687322fd3771bce59126e2aee2a6ed5c2d8b31199090e96f31d549092b957f2cf470f201f2d65b1b838f7a182aee8a750a25
DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
@@ -85,6 +86,7 @@ DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d23
DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856ad80dd74990be19eb6af99823b147163384f61d471e2d9ec054d78a7064072344be53783e57073e8fffc6d5555c149b4834a9bf31dba SHA512 06977a294d76369a3867c45abdd8a87ea5c84e5a3681075ba0d14af1aee3114ff24495c7e7f7fe1e6e42230e65fba0e062898e69bc89e0209af62c2d14094ec7
DIST watchman-2022.03.28.00.tar.gz 3781468 BLAKE2B 5db1f60c7149af418037a0ce7a00656bc652ec90a4bae261dd48c0bc21d2424ad30e049fe1142b072b5a01ca1380a5cd495fafa74d5c10785e097685f8fb5b21 SHA512 3275e66fe522fc45b3f0c8c458d6d2f61ee314f04d6b12935100535bc060603cafe76c8b13c0b8d334c13b63320ff4b84dc8dfb0f5ce09efc28d94e5d7a5974d
DIST watchman-2022.04.11.00.tar.gz 3783345 BLAKE2B 0b4b4cadfb45e5a894428ab27fde3e7b70e3e3021d0cf76a15f7d072e0c86589d4b9f8c32d75e0c055a8dd30832360e669cc3d7f86061d214a3e18adc61a3781 SHA512 129eaded13ecaff0f4bfa2ffcd5fd27a1685a5f98e53d7b9dba837ad09054c9f8054992d92009580e20f80f367eb71276edab11bfbd4604ade353b08a29076d7
+DIST watchman-2022.07.04.00.tar.gz 3785684 BLAKE2B b27f71cd5d505d9383858434eaa90dd9a70478507a2750f10c3fdc88e39978cc6f94402d498dc26e2b5043018913bf71a28c04870dbefe8ee79fbe3e963a86e8 SHA512 43bbccd5e69905105da54fb661f506d2b3ef43719660deb07cb4b3b47b1569af71edcdc798ffdae79ec26c7cf24988394321d0f183f20af51daf6d54f4a3d8e5
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
@@ -96,4 +98,5 @@ DIST windows_x86_64_gnu-0.32.0.crate 744209 BLAKE2B 76106af387f443f2a24a0cd15d53
DIST windows_x86_64_msvc-0.32.0.crate 669835 BLAKE2B f8c9dc578d652c2abf0d689dfa9681da29f760bc45ecec83b7d994e7df7c04f91fbcebee464ebd94d5fe7eb0dea90ac7c04578b56264d89ca9d91213fd89b17f SHA512 4720246d2aed3c3b3c252cda7773096642e78891b1a9776c920da908b2d3741e9e341060424327f1c16e4cb47b6e22af1be229589a51b5a3a04d2a6447275332
EBUILD watchman-2022.03.28.00.ebuild 4692 BLAKE2B 380179dc8f5d8a8f98136d9078a6950c4136f7859dc7fbb8ff6e858292426ccbd171db50c59d6722439adcd7808c2f7ccf007d8003caf932922ecf51ab61da82 SHA512 0c25b80ba316477132eb6c940b50ff1b470a23644652405c38d4248a0b939b68e356417c1c625d9acf11cf98b5ecef8e74bf4298097b937f2ec5965f287db998
EBUILD watchman-2022.04.11.00.ebuild 4693 BLAKE2B 6bf2175c1a839bc5802d8874d3bb6925c51eb04cd0c97d02f219223e3cd16d21abac05e6385ae0ba669de79bf970b6762b1fc18c2257e1d7c73e7cb86d7088a1 SHA512 85f80e28c6df9db0a56c8a122062792aaf40adfe738b9fc5bd1b005b291962d58728ed08f087a4f13aa9b5fbac52344dd4c9f0a03af831ad939453290e2a0c47
+EBUILD watchman-2022.07.04.00.ebuild 4687 BLAKE2B b9b8376653dab8674d042f6f5a0f4f99deeb1459e8dba60e975711d239e61f40a7871ea04dc1ba84e694a242a48957f3766b119a38aaafbd46ba52899fd638c3 SHA512 ac344b1bc10a34808b4a9453280cd682a77bc8e687e7cc8b8e50d9bb413d17a668863a3ebff904d459a0481dc67f4bc485d2a635c3251c25af3a03bb1d672883
MISC metadata.xml 691 BLAKE2B 68506bb31b8d7524b07a12bd2a237ed985215701eb2a28bacfd63ba5f3d61713b0369523a369c5880392e2f4790da4f908538627f3c3d58fe7c78faf9ebc9a15 SHA512 71c073c60fd880455dee0af9193a4279975ba34558144cfe03baa50d2a7c2c5074631a53fb89504d852e9782478f0add9dcea361f36cefe8a42f8f94ae27831a
diff --git a/dev-util/watchman/files/watchman-2022.07.04.00-python-working-dir.patch b/dev-util/watchman/files/watchman-2022.07.04.00-python-working-dir.patch
new file mode 100644
index 000000000000..cd475fb1bfbf
--- /dev/null
+++ b/dev-util/watchman/files/watchman-2022.07.04.00-python-working-dir.patch
@@ -0,0 +1,73 @@
+--- a/watchman/python/setup.py
++++ b/watchman/python/setup.py
+@@ -13,30 +13,10 @@ try:
+ except ImportError:
+ from distutils.core import setup, Extension
+
+-watchman_src_dir = os.environ.get("CMAKE_CURRENT_SOURCE_DIR")
+-if watchman_src_dir is None:
+- watchman_src_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
+-
+-# Setuptools is very picky about the path on Windows. They have to be relative
+-# paths, and on Windows that means we have to be on the same drive as the source
+-# files. Otherwise it is impossible to obtain a relative path across different
+-# drives. However this has an implication that we will not be able to build this
+-# package outside the repository. Not great but it works.
+-py_dir = os.path.join(watchman_src_dir, "watchman", "python")
+-if os.name == "nt":
+- os.chdir(py_dir)
+- py_dir = os.path.relpath(py_dir)
+-
+-
+-def srcs(names):
+- """transform a list of sources to be relative to py_dir"""
+- return ["%s/%s" % (py_dir, n) for n in names]
+-
+
+ setup(
+ name="pywatchman",
+ version="1.4.1",
+- package_dir={"": py_dir},
+ description="Watchman client for python",
+ author="Wez Furlong, Rain",
+ author_email="wez@fb.com",
+@@ -47,7 +27,7 @@ setup(
+ keywords=("watchman inotify fsevents kevent kqueue portfs filesystem watcher"),
+ license="BSD",
+ packages=["pywatchman"],
+- ext_modules=[Extension("pywatchman.bser", sources=srcs(["pywatchman/bser.c"]))],
++ ext_modules=[Extension("pywatchman.bser", sources=["pywatchman/bser.c"])],
+ platforms="Platform Independent",
+ classifiers=[
+ "Development Status :: 5 - Production/Stable",
+@@ -63,12 +43,10 @@ setup(
+ "Programming Language :: Python :: 3.6",
+ ],
+ zip_safe=True,
+- scripts=srcs(
+- [
++ scripts=[
+ "bin/watchman-make",
+ "bin/watchman-wait",
+ "bin/watchman-replicate-subscription",
+- ]
+- ),
++ ],
+ test_suite="tests",
+ )
+--- a/watchman/python/tests/tests.py 2022-07-09 05:21:29.017605168 +0100
++++ b/watchman/python/tests/tests.py 2022-07-09 05:21:34.920982537 +0100
+@@ -27,13 +27,6 @@
+ )
+
+
+-if os.path.basename(bser.__file__) == "pybser.py":
+- raise Exception(
+- "bser module resolved to pybser! Something is broken in your build. __file__={!r}, sys.path={!r}".format(
+- bser.__file__, sys.path
+- )
+- )
+-
+ PILE_OF_POO = "\U0001F4A9"
+ NON_UTF8_STRING = b"\xff\xff\xff"
+
diff --git a/dev-util/watchman/watchman-2022.07.04.00.ebuild b/dev-util/watchman/watchman-2022.07.04.00.ebuild
new file mode 100644
index 000000000000..d70308e436e4
--- /dev/null
+++ b/dev-util/watchman/watchman-2022.07.04.00.ebuild
@@ -0,0 +1,210 @@
+# Copyright 2020-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 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
+"
+
+PYTHON_COMPAT=( python3_{8,9,10} )
+DISTUTILS_USE_PEP517=setuptools
+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/libpcre
+ ~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
+)
+
+# 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
+}