summaryrefslogtreecommitdiff
path: root/dev-util/watchman
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-24 23:59:54 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-24 23:59:54 +0000
commit401101f9c8077911929d3f2b60a37098460a5d89 (patch)
treec2bef4719f6787550f0916aeaa8f4f403a9296af /dev-util/watchman
parent4cbcc855382a06088e2f016f62cafdbcb7e40665 (diff)
gentoo resync : 25.03.2022
Diffstat (limited to 'dev-util/watchman')
-rw-r--r--dev-util/watchman/Manifest8
-rw-r--r--dev-util/watchman/files/4.9.0-changes.patch80
-rw-r--r--dev-util/watchman/files/4.9.0-python3.patch65
-rw-r--r--dev-util/watchman/metadata.xml4
-rw-r--r--dev-util/watchman/watchman-2022.03.21.00.ebuild210
-rw-r--r--dev-util/watchman/watchman-4.9.0.ebuild62
6 files changed, 213 insertions, 216 deletions
diff --git a/dev-util/watchman/Manifest b/dev-util/watchman/Manifest
index d61ee662aee8..2c7aa66889ee 100644
--- a/dev-util/watchman/Manifest
+++ b/dev-util/watchman/Manifest
@@ -1,5 +1,3 @@
-AUX 4.9.0-changes.patch 2974 BLAKE2B 71163fce5ec3f62e174810f485a43fe0a329757004cd32050a949d6c809c156774b3b95ddd43b45bcb95e02eebc94f551de498d0bf856c90483205e907980d64 SHA512 6700d62de75063db08f23799b05ef867ae3f9b608f9b9774846cb98c2ad651ce22786496ccaa15ef2c4b923cc51adb13a4c2af0ead0f1672ce990ca7e8560329
-AUX 4.9.0-python3.patch 2402 BLAKE2B 9378a4613048891e6d4b461a9442ff7585dc9f137c03de417c62fad5edb78f138e417e35abe9283f33bcc7da884a2b2e885ebfcfa638c183c1521660af97c300 SHA512 68490ac9eaed522f81e51bc1a2bd98f93282f929587c8e865baa519faecc921192f9e751a5ef8099a5ab6e1e5523855ba4bf8aadb2656506e632cb97eff16839
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.tmpfiles 32 BLAKE2B 88c6a5c4b1d7a35d4ed485ab1e7ba0e18a8433d176318f69e77030d4980931876fdd8d1811e0af8c924c89c358cffb7cc9ab4effbc363cfae8adc6d88597313a SHA512 5c4230d23a045704efd5851abe0cb4c6e9eba91e128bbfc677e231868ea161364055fea65800a9b8bec61d95c6a2824dffa536755e12d3b6599a81cdea5c063b
@@ -88,7 +86,7 @@ DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856
DIST watchman-2022.02.28.00.tar.gz 3778698 BLAKE2B d4c9cea5066cd187db53829f60d207eddfafc0db9f685ecc84217769d7fc269a409126dd6171d7e8146c3d2d945a45b09b97643c8e83932381d14a4933ad566c SHA512 2297ed75fb9fbe5d3c303eba7b701c06793b2dfa1dacdc1d2912e5c77449b06061ca2e54115d2de73f1f4e3358a84634b7a5510cdc6b327e961e2ecc04747092
DIST watchman-2022.03.07.00.tar.gz 3780084 BLAKE2B e5ad1002ece9e7846c1806e10b48a595137ba4a86db73272d04faf3ba633d1935d2fa5609002c74cb989fe9fccbc366307d3241c9593730b401732c1c6773556 SHA512 93098f814b1b3340e43851000d1c3e579c2d0bb7b98539e435456e89eeddd002d602a69825a35e19f70e3db0b20ca3bbd2c8c86a7bf63901dd45b79fe5523c06
DIST watchman-2022.03.14.00.tar.gz 3782279 BLAKE2B 5be4811347f0ef03718444d51c5654b1217b0263994c8a1ca0da901d0b72b6252a727746b8c00e727e8f305dfc54624a61c02effee8b1cc05b84aacbcf4bfbe8 SHA512 3c10a83889876e71d6665d25d9d524efc3d5bf50305000c085caf7712f26397bd33df8763a9686f86a5ac5e722ae56c54023ccb60b85223a01b4bb7a239bec44
-DIST watchman-4.9.0.tar.gz 3508045 BLAKE2B 413b779f02736442c371af1d9e18e5c84f05f9e9465c114dc4bdf79cbc1d823f1ad3167abef22818652a924ca2cb563c54d18f7599b987f579655d8a2b82162a SHA512 3c1222ba41383b26c2c427415e75abdb4bef5a95001438c3debe7cf3ca654944ecf08e432c5ad0aefa2a6554ae73ff0f6995e7f4ee61cdb2cde80f8378d3a704
+DIST watchman-2022.03.21.00.tar.gz 3782647 BLAKE2B 5a484d4900abf453fc5c6b2083367c5447131a832bb25e63d5edb98680d27ff3dc409a709a4335ccdd96133294e092e86fca889dfc6cc51f0eb6ca7b515ac09c SHA512 954a80e761f59e56b779355bb4fbc70b3e72ce95adaa2da9500927c4d3b0803eeb7f5e1f9ffa4e5ef164f99ee4afc23117a71af9067e823d01d71a585766522b
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
@@ -101,5 +99,5 @@ DIST windows_x86_64_msvc-0.32.0.crate 669835 BLAKE2B f8c9dc578d652c2abf0d689dfa9
EBUILD watchman-2022.02.28.00.ebuild 4693 BLAKE2B 6bf2175c1a839bc5802d8874d3bb6925c51eb04cd0c97d02f219223e3cd16d21abac05e6385ae0ba669de79bf970b6762b1fc18c2257e1d7c73e7cb86d7088a1 SHA512 85f80e28c6df9db0a56c8a122062792aaf40adfe738b9fc5bd1b005b291962d58728ed08f087a4f13aa9b5fbac52344dd4c9f0a03af831ad939453290e2a0c47
EBUILD watchman-2022.03.07.00.ebuild 4693 BLAKE2B 6bf2175c1a839bc5802d8874d3bb6925c51eb04cd0c97d02f219223e3cd16d21abac05e6385ae0ba669de79bf970b6762b1fc18c2257e1d7c73e7cb86d7088a1 SHA512 85f80e28c6df9db0a56c8a122062792aaf40adfe738b9fc5bd1b005b291962d58728ed08f087a4f13aa9b5fbac52344dd4c9f0a03af831ad939453290e2a0c47
EBUILD watchman-2022.03.14.00.ebuild 4693 BLAKE2B 6bf2175c1a839bc5802d8874d3bb6925c51eb04cd0c97d02f219223e3cd16d21abac05e6385ae0ba669de79bf970b6762b1fc18c2257e1d7c73e7cb86d7088a1 SHA512 85f80e28c6df9db0a56c8a122062792aaf40adfe738b9fc5bd1b005b291962d58728ed08f087a4f13aa9b5fbac52344dd4c9f0a03af831ad939453290e2a0c47
-EBUILD watchman-4.9.0.ebuild 1191 BLAKE2B 0a7796dc7f2ce67026b66b6c5513bdf86353264868252eb45c8d2a91877a6330b5d03bf83c3ac61b570fa24ee5f3859656d662e0ed3d0b29521e3b2327eb8d28 SHA512 64c532cdf36beb922898861a1600b7cdc0b94fe9d62ccefef4acd94a04a77961ad9219c15eded2c4b64133a57ff69e5e89d2ae2d46bc5986d7b6073af6f6014e
-MISC metadata.xml 803 BLAKE2B fd01ef08f78bfd314d0e5225c941a7e4163d4d0fc0a20baf90df2ddaef02282ef25c8d4e93ebc146c5c0c4a714c11f10f2023c9ce2f443b93f7cbdd318b1edd2 SHA512 ff3c9948cd2b58358cfecefaa59fddcb4163b1684485e5796f6c9c44acecb7d0504e59a5b8e75652859c975662c271df723984a902cb1248dd7fadfa8f48544d
+EBUILD watchman-2022.03.21.00.ebuild 4693 BLAKE2B 6bf2175c1a839bc5802d8874d3bb6925c51eb04cd0c97d02f219223e3cd16d21abac05e6385ae0ba669de79bf970b6762b1fc18c2257e1d7c73e7cb86d7088a1 SHA512 85f80e28c6df9db0a56c8a122062792aaf40adfe738b9fc5bd1b005b291962d58728ed08f087a4f13aa9b5fbac52344dd4c9f0a03af831ad939453290e2a0c47
+MISC metadata.xml 691 BLAKE2B 68506bb31b8d7524b07a12bd2a237ed985215701eb2a28bacfd63ba5f3d61713b0369523a369c5880392e2f4790da4f908538627f3c3d58fe7c78faf9ebc9a15 SHA512 71c073c60fd880455dee0af9193a4279975ba34558144cfe03baa50d2a7c2c5074631a53fb89504d852e9782478f0add9dcea361f36cefe8a42f8f94ae27831a
diff --git a/dev-util/watchman/files/4.9.0-changes.patch b/dev-util/watchman/files/4.9.0-changes.patch
deleted file mode 100644
index 4625bc815539..000000000000
--- a/dev-util/watchman/files/4.9.0-changes.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -ru old/python/bin/watchman-make new/python/bin/watchman-make
---- old/python/bin/watchman-make 2020-09-06 11:36:12.202435809 +0200
-+++ new/python/bin/watchman-make 2020-09-06 11:36:14.105482419 +0200
-@@ -55,7 +55,14 @@
- data = client.getSubscription(self.name)
- if data is None:
- return
-- self.triggered = True
-+ for item in data:
-+ # We only want to trigger if files matched;
-+ # updates without a files list are metadata
-+ # such as state-enter/leave notices so we skip them
-+ if 'files' in item:
-+ self.triggered = True
-+ if 'canceled' in item:
-+ raise RuntimeError('Watch was cancelled')
-
- def execute(self):
- if not self.triggered:
-@@ -165,6 +172,11 @@
- parser.add_argument('-r', '--run', type=str, help="""
- The script that should be run when changes are detected
- """)
-+parser.add_argument('--connect-timeout', type=float, default=600, help="""
-+Initial watchman client connection timeout. It should be sufficiently large to
-+prevent timeouts when watchman is busy (eg. performing a crawl). The default
-+value is 600 seconds.
-+""")
- args = parser.parse_args()
-
- if args.target is None and args.run is None:
-@@ -187,7 +199,7 @@
- sys.exit(1)
-
- targets = {}
--client = pywatchman.client(timeout=600)
-+client = pywatchman.client(timeout=args.connect_timeout)
- try:
- client.capabilityCheck(
- required=['cmd-watch-project', 'wildmatch'])
-diff -ru old/python/bin/watchman-wait new/python/bin/watchman-wait
---- old/python/bin/watchman-wait 2020-09-06 11:36:12.202435809 +0200
-+++ new/python/bin/watchman-wait 2020-09-06 11:36:14.106482444 +0200
-@@ -76,6 +76,11 @@
- Exit if no events trigger within the specified timeout. If timeout is
- zero (the default) then keep running indefinitely.
- """)
-+parser.add_argument('--connect-timeout', type=float, default=100, help="""
-+Initial watchman client connection timeout. It should be sufficiently large to
-+prevent timeouts when watchman is busy (eg. performing a crawl). The default
-+value is 100 seconds.
-+""")
- args = parser.parse_args()
-
-
-@@ -141,7 +146,7 @@
- def formatField(self, fname, val):
- if fname == 'name':
- # Respect the --relative path printing option
-- return os.path.relpath(val, args.relative)
-+ return os.path.relpath(os.path.join(self.name, val), args.relative)
- # otherwise just make sure it's a string so that we can join it
- return str(val)
-
-@@ -173,12 +178,13 @@
- for path in args.path:
- sub = Subscription(path)
-
-+# and start up the client + subscriptions
-+client = pywatchman.client(timeout=args.connect_timeout)
-+
- deadline = None
- if args.timeout > 0:
- deadline = time.time() + args.timeout
-
--# and start up the client + subscriptions
--client = pywatchman.client()
- try:
- client.capabilityCheck(
- required=['term-dirname', 'cmd-watch-project', 'wildmatch'])
diff --git a/dev-util/watchman/files/4.9.0-python3.patch b/dev-util/watchman/files/4.9.0-python3.patch
deleted file mode 100644
index 5b416f24ae46..000000000000
--- a/dev-util/watchman/files/4.9.0-python3.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -ru backup/old/python/bin/watchman-make old/python/bin/watchman-make
---- backup/old/python/bin/watchman-make 2020-09-06 11:33:34.449582111 +0200
-+++ old/python/bin/watchman-make 2020-09-06 11:33:43.473801969 +0200
-@@ -100,7 +100,7 @@
- targets = []
- setattr(namespace, self.dest, targets)
-
-- if isinstance(values, basestring):
-+ if isinstance(values, (str, bytes)):
- values = [values]
-
- if namespace.pattern is None or len(namespace.pattern) == 0:
-@@ -209,7 +209,7 @@
- client.setTimeout(600)
-
- result = client.receive()
-- for _, t in targets.iteritems():
-+ for _, t in targets.items():
- t.consumeEvents(client)
-
- # Now we wait for events to settle
-@@ -218,7 +218,7 @@
- while not settled:
- try:
- result = client.receive()
-- for _, t in targets.iteritems():
-+ for _, t in targets.items():
- t.consumeEvents(client)
- except pywatchman.SocketTimeout as ex:
- # Our short settle timeout hit, so we're now settled
-@@ -226,7 +226,7 @@
- break
-
- # Now we can work on executing the targets
-- for _, t in targets.iteritems():
-+ for _, t in targets.items():
- t.execute()
-
- # Print this at the bottom of the loop rather than the top
-@@ -249,4 +249,3 @@
- except KeyboardInterrupt:
- # suppress ugly stack trace when they Ctrl-C
- break
--
-diff -ru backup/old/python/bin/watchman-wait old/python/bin/watchman-wait
---- backup/old/python/bin/watchman-wait 2020-09-06 11:33:34.449582111 +0200
-+++ old/python/bin/watchman-wait 2020-09-06 11:33:43.473801969 +0200
-@@ -182,7 +182,7 @@
- try:
- client.capabilityCheck(
- required=['term-dirname', 'cmd-watch-project', 'wildmatch'])
-- for _, sub in subscriptions.iteritems():
-+ for _, sub in subscriptions.items():
- sub.start(client)
-
- except pywatchman.CommandError as ex:
-@@ -200,7 +200,7 @@
- # the client object will accumulate all subscription results
- # over time, so we ask it to remove and return those values
- # for each of the subscriptions
-- for _, sub in subscriptions.iteritems():
-+ for _, sub in subscriptions.items():
- sub.emit(client)
-
- except pywatchman.SocketTimeout as ex:
diff --git a/dev-util/watchman/metadata.xml b/dev-util/watchman/metadata.xml
index 3b59da3e2665..1eeed218300c 100644
--- a/dev-util/watchman/metadata.xml
+++ b/dev-util/watchman/metadata.xml
@@ -2,10 +2,6 @@
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>monsieurp@gentoo.org</email>
- <name>Patrice Clement</name>
- </maintainer>
- <maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>
</maintainer>
diff --git a/dev-util/watchman/watchman-2022.03.21.00.ebuild b/dev-util/watchman/watchman-2022.03.21.00.ebuild
new file mode 100644
index 000000000000..da684483d094
--- /dev/null
+++ b/dev-util/watchman/watchman-2022.03.21.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}"/watchman-2022.02.28.00-python-working-dir.patch
+ "${FILESDIR}"/watchman-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
+}
diff --git a/dev-util/watchman/watchman-4.9.0.ebuild b/dev-util/watchman/watchman-4.9.0.ebuild
deleted file mode 100644
index e3da13e7dd3f..000000000000
--- a/dev-util/watchman/watchman-4.9.0.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 2020-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{7,8,9} )
-inherit autotools distutils-r1
-
-COMMIT="8e0ba724d85de2c89f48161807e878667b9ed089" # v4.9.0 tag
-DESCRIPTION="A file watching service"
-HOMEPAGE="https://facebook.github.io/watchman/"
-SRC_URI="https://github.com/facebook/watchman/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-${COMMIT}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="pcre python"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-RDEPEND="pcre? ( dev-libs/libpcre )
- python? ( ${PYTHON_DEPS} )"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}/${PV}-python3.patch"
- "${FILESDIR}/${PV}-changes.patch"
-)
-
-src_prepare() {
- default
-
- eautoreconf
-}
-
-src_configure() {
- econf \
- --enable-lenient \
- --disable-statedir \
- --disable-cppclient \
- --without-python \
- $(use_with pcre)
-}
-
-src_compile() {
- default
-
- if use python; then
- pushd python >/dev/null || die
- distutils-r1_src_compile
- popd >/dev/null || die
- fi
-}
-
-src_install() {
- default
-
- if use python; then
- pushd python >/dev/null || die
- distutils-r1_src_install
- popd >/dev/null || die
- fi
-}