summaryrefslogtreecommitdiff
path: root/dev-util/watchman/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
commitd934827bf44b7cfcf6711964418148fa60877668 (patch)
tree0625f358789b5e015e49db139cc1dbc9be00428f /dev-util/watchman/files
parent2e34d110f164bf74d55fced27fe0000201b3eec5 (diff)
gentoo resync : 25.11.2020
Diffstat (limited to 'dev-util/watchman/files')
-rw-r--r--dev-util/watchman/files/4.9.0-changes.patch80
-rw-r--r--dev-util/watchman/files/4.9.0-python3.patch65
2 files changed, 145 insertions, 0 deletions
diff --git a/dev-util/watchman/files/4.9.0-changes.patch b/dev-util/watchman/files/4.9.0-changes.patch
new file mode 100644
index 000000000000..4625bc815539
--- /dev/null
+++ b/dev-util/watchman/files/4.9.0-changes.patch
@@ -0,0 +1,80 @@
+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
new file mode 100644
index 000000000000..5b416f24ae46
--- /dev/null
+++ b/dev-util/watchman/files/4.9.0-python3.patch
@@ -0,0 +1,65 @@
+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: