Compare commits
No commits in common. "rawhide" and "f37" have entirely different histories.
12 changed files with 332 additions and 1 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/watchman-2021.05.10.00.tar.gz
|
||||
3
README.md
Normal file
3
README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# watchman
|
||||
|
||||
The watchman package
|
||||
78
changelog
Normal file
78
changelog
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
* Tue Dec 28 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.05.10.00-7
|
||||
- Rebuilt with Folly 2021.12.20.00
|
||||
- Opt in to rpmautospec
|
||||
|
||||
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2021.05.10.00-6
|
||||
- Rebuilt with OpenSSL 3.0.0
|
||||
|
||||
* Mon Sep 13 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2021.05.10.00-5
|
||||
- Patch for folly API deprecation change
|
||||
- Patch for build issue on 32bit arch
|
||||
- Disable tests with gtest 1.11 for now
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.05.10.00-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Mon Jul 05 2021 Richard Shaw <hobbes1069@gmail.com> - 2021.05.10.00-3
|
||||
- Rebuild for new fmt version.
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2021.05.10.00-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Mon May 10 2021 Michel Alexandre Salim <michel@michel-slm.name> - 2021.05.10.00-1
|
||||
- Update to 2021.05.10.00
|
||||
|
||||
* Mon Apr 26 2021 Michel Alexandre Salim <michel@michel-slm.name> - 2021.04.26.00-1
|
||||
- Update to 2021.04.26.00
|
||||
|
||||
* Fri Apr 16 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.04.12.00-1
|
||||
- Update to 2021.04.12.00
|
||||
|
||||
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 2021.03.29.00-2
|
||||
- Rebuilt for removed libstdc++ symbol (#1937698)
|
||||
|
||||
* Mon Mar 29 2021 Michel Alexandre Salim <michel@michel-slm.name> - 2021.03.29.00-1
|
||||
- Update to 2021.03.29.00
|
||||
|
||||
* Wed Mar 24 2021 Michel Alexandre Salim <michel@michel-slm.name> - 2021.03.22.00-1
|
||||
- Update to 2021.03.22.00
|
||||
|
||||
* Mon Mar 15 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.03.15.00-1
|
||||
- Update to 2021.03.15.00
|
||||
|
||||
* Wed Feb 03 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.02.01.00-1
|
||||
- Update to 2021.02.01.00
|
||||
|
||||
* Tue Jan 26 17:51:20 PST 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.01.25.00-1
|
||||
- Update to 2021.01.25.00
|
||||
|
||||
* Tue Dec 29 12:16:46 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.12.28.00-1
|
||||
- Update to 2020.12.28.00
|
||||
|
||||
* Tue Dec 22 20:48:10 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.12.21.00-1
|
||||
- Update to 2020.12.21.00
|
||||
|
||||
* Tue Dec 1 12:26:55 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-7
|
||||
- Recreate state directory with tmpfiles (bz #1903141)
|
||||
|
||||
* Mon Nov 30 16:23:46 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-6
|
||||
- Rebuild for folly-2020.11.30.00
|
||||
|
||||
* Mon Nov 23 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-5
|
||||
- Rebuild for folly-2020.11.23.00
|
||||
|
||||
* Mon Nov 16 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-4
|
||||
- Rebuild for folly-2020.11.16.00
|
||||
|
||||
* Thu Nov 12 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-3
|
||||
- Also install Watchman's state directory
|
||||
|
||||
* Wed Nov 11 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-2
|
||||
- Support enabling tests
|
||||
- Add ExcludeArch on s390x for Folly dependency
|
||||
- Rename Python subpackage
|
||||
- Fix version number and licensing for Python subpackage
|
||||
- Move Python scripts to the Python subpackage
|
||||
|
||||
* Tue Nov 10 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.09.21.00-1
|
||||
- Initial package
|
||||
|
|
@ -1 +0,0 @@
|
|||
FTBFS; need to be repackaged after the Rust rewrite anyway
|
||||
1
sources
Normal file
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
SHA512 (watchman-2021.05.10.00.tar.gz) = 4ed14bf520afefc04a1bb742eb0a6cdee921aa2a8ab9f2a0fee18d5a7e1f48224fc9372a313dc5bf57883759a12710d2459232ed35e6c5e89e4ef0c5cfd02c23
|
||||
1
tmpfiles-watchman.conf
Normal file
1
tmpfiles-watchman.conf
Normal file
|
|
@ -0,0 +1 @@
|
|||
d /run/watchman 02777 root root
|
||||
36
watchman-2021.05.10.00-folly-new.patch
Normal file
36
watchman-2021.05.10.00-folly-new.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
--- watchman-2021.05.10.00/PendingCollection.cpp.folly 2021-05-09 08:48:24.000000000 +0900
|
||||
+++ watchman-2021.05.10.00/PendingCollection.cpp 2021-09-09 15:58:07.886372886 +0900
|
||||
@@ -301,9 +301,9 @@ PendingCollection::LockedPtr PendingColl
|
||||
}
|
||||
|
||||
if (timeoutms.count() == -1) {
|
||||
- cond_.wait(lock.getUniqueLock());
|
||||
+ cond_.wait(lock.as_lock());
|
||||
} else {
|
||||
- cond_.wait_for(lock.getUniqueLock(), timeoutms);
|
||||
+ cond_.wait_for(lock.as_lock(), timeoutms);
|
||||
}
|
||||
|
||||
pinged = lock->checkAndResetPinged();
|
||||
--- watchman-2021.05.10.00/perf.cpp.folly 2021-05-09 08:48:24.000000000 +0900
|
||||
+++ watchman-2021.05.10.00/perf.cpp 2021-09-09 15:59:22.202231238 +0900
|
||||
@@ -221,7 +221,7 @@ void PerfLogThread::loop() noexcept {
|
||||
// No samples remaining, and we have been asked to quit.
|
||||
return;
|
||||
}
|
||||
- cond_.wait(state.getUniqueLock());
|
||||
+ cond_.wait(state.as_lock());
|
||||
}
|
||||
|
||||
samples = nullptr;
|
||||
--- watchman-2021.05.10.00/state.cpp.folly 2021-05-09 08:48:24.000000000 +0900
|
||||
+++ watchman-2021.05.10.00/state.cpp 2021-09-09 15:59:59.626159910 +0900
|
||||
@@ -42,7 +42,7 @@ static void state_saver() noexcept {
|
||||
{
|
||||
auto state = saveState.lock();
|
||||
if (!state->needsSave) {
|
||||
- stateCond.wait(state.getUniqueLock());
|
||||
+ stateCond.wait(state.as_lock());
|
||||
}
|
||||
do_save = state->needsSave;
|
||||
state->needsSave = false;
|
||||
14
watchman-2021.05.10.00-wordsize.patch
Normal file
14
watchman-2021.05.10.00-wordsize.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
--- watchman-2021.05.10.00/InMemoryView.h.wordsize 2021-05-09 08:48:24.000000000 +0900
|
||||
+++ watchman-2021.05.10.00/InMemoryView.h 2021-09-09 19:55:39.910101746 +0900
|
||||
@@ -362,7 +362,11 @@ class InMemoryView : public QueryableVie
|
||||
time_t mtime;
|
||||
};
|
||||
|
||||
+#if __WORDSIZE == 32
|
||||
+ static_assert(80 == sizeof(PendingChangeLogEntry));
|
||||
+#else
|
||||
static_assert(88 == sizeof(PendingChangeLogEntry));
|
||||
+#endif
|
||||
|
||||
// If set, paths processed by processPending are logged here.
|
||||
std::unique_ptr<folly::LockFreeRingBuffer<PendingChangeLogEntry>>
|
||||
45
watchman-destdir.patch
Normal file
45
watchman-destdir.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From 433938a3a6f03b144151895e23c98906af1d4d7a Mon Sep 17 00:00:00 2001
|
||||
From: Michel Alexandre Salim <michel@michel-slm.name>
|
||||
Date: Tue, 26 Jan 2021 22:32:56 -0800
|
||||
Subject: [PATCH] watchman: use DESTDIR consistently
|
||||
|
||||
Delay `DESTDIR` evaluation in invocation of `python setup.py` so it uses
|
||||
the value passed when installing, not when configuring.
|
||||
|
||||
Also use don't prepend `CMAKE_INSTALL_PREFIX` for `WATCHMAN_STATE_DIR`.
|
||||
It will pick up `DESTDIR` automatically
|
||||
|
||||
Note: when building on Fedora, `DESTDIR` is set to the build root and
|
||||
`PREFIX` set to `/usr`, so adding the `PREFIX` would result in Python files
|
||||
being seen in `%{buildroot}/usr/usr`
|
||||
|
||||
Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
|
||||
---
|
||||
CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 3dbcd68a..2c197bcd 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -136,7 +136,7 @@ endfunction()
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h.new" "#pragma once\n")
|
||||
|
||||
if(NOT WIN32)
|
||||
- set(WATCHMAN_STATE_DIR "${CMAKE_INSTALL_PREFIX}/var/run/watchman" CACHE STRING
|
||||
+ set(WATCHMAN_STATE_DIR "/var/run/watchman" CACHE STRING
|
||||
"Run-time path of the persistent state directory")
|
||||
set(INSTALL_WATCHMAN_STATE_DIR OFF CACHE BOOL
|
||||
"Whether WATCHMAN_STATE_DIR should be created by the cmake install
|
||||
@@ -418,7 +418,7 @@ else()
|
||||
${CMAKE_COMMAND} -E env
|
||||
CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${PYTHON3} ${SETUP_PY} install
|
||||
- --root $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}
|
||||
+ --root \$ENV{DESTDIR}
|
||||
RESULT_VARIABLE STATUS)
|
||||
if (NOT STATUS STREQUAL 0)
|
||||
message(FATAL_ERROR \"pywatchman install failed\")
|
||||
--
|
||||
2.29.2
|
||||
|
||||
22
watchman-fix-for-fmt10.diff
Normal file
22
watchman-fix-for-fmt10.diff
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
--- a/json.cpp
|
||||
+++ b/json.cpp
|
||||
@@ -443,7 +443,7 @@ bool watchman_json_buffer::streamPdu(w_s
|
||||
return streamN(stm, len, jerr);
|
||||
}
|
||||
default:
|
||||
- logf(FATAL, "not streaming for pdu type {}\n", pdu_type);
|
||||
+ logf(FATAL, "not streaming for pdu type {}\n", static_cast<int>(pdu_type));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
--- a/bser.cpp
|
||||
+++ b/bser.cpp
|
||||
@@ -388,7 +388,7 @@ int w_bser_dump(const bser_ctx_t* ctx, c
|
||||
case W_STRING_MIXED:
|
||||
return bser_mixedstring(ctx, wstr, data);
|
||||
default:
|
||||
- w_assert(false, "unknown string type 0x%02x", wstr.type());
|
||||
+ w_assert(false, "unknown string type 0x%02x", static_cast<int>(wstr.type()));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
23
watchman-fix-for-py3_12.diff
Normal file
23
watchman-fix-for-py3_12.diff
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
--- a/build/fbcode_builder/CMake/fb_py_test_main.py
|
||||
+++ b/build/fbcode_builder/CMake/fb_py_test_main.py
|
||||
@@ -24,11 +24,6 @@ import traceback
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
-# Hide warning about importing "imp"; remove once python2 is gone.
|
||||
-with warnings.catch_warnings():
|
||||
- warnings.filterwarnings("ignore", category=DeprecationWarning)
|
||||
- import imp
|
||||
-
|
||||
try:
|
||||
from StringIO import StringIO
|
||||
except ImportError:
|
||||
@@ -195,7 +190,7 @@ class CallbackStream(object):
|
||||
return self._fileno
|
||||
|
||||
|
||||
-class BuckTestResult(unittest._TextTestResult):
|
||||
+class BuckTestResult(unittest.TextTestResult):
|
||||
"""
|
||||
Our own TestResult class that outputs data in a format that can be easily
|
||||
parsed by buck's test runner.
|
||||
108
watchman.spec
Normal file
108
watchman.spec
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
# some Python tests are failing
|
||||
# The following tests FAILED:
|
||||
# 40 - CacheTest.future (Child aborted)
|
||||
# 290 - test_py::tests.integration.test_site_spawn.TestSiteSpawn.test_failingSpawner (Failed)
|
||||
# 292 - test_py::tests.integration.test_site_spawn.TestSiteSpawn.test_spawner (Failed)
|
||||
# Errors while running CTest
|
||||
%bcond_with tests
|
||||
|
||||
Name: watchman
|
||||
Version: 2021.05.10.00
|
||||
Release: %autorelease
|
||||
Summary: File alteration monitoring service
|
||||
|
||||
%global stripped_version %(echo %{version} | sed -r 's/\\.0([[:digit:]])/.\\1/g')
|
||||
|
||||
License: Apache-2.0
|
||||
URL: https://facebook.github.io/%{name}/
|
||||
Source0: https://github.com/facebook/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: tmpfiles-%{name}.conf
|
||||
Patch0: %{name}-destdir.patch
|
||||
# https://github.com/facebook/folly/commit/b65ef9f8b5f9b495370b1e651732214cde8abc7d
|
||||
Patch1: watchman-2021.05.10.00-folly-new.patch
|
||||
# Fix build failure on 32bit arch
|
||||
Patch2: watchman-2021.05.10.00-wordsize.patch
|
||||
# Fix build failure with Python 3.12
|
||||
Patch3: watchman-fix-for-py3_12.diff
|
||||
# Fix build failure with fmt 10
|
||||
Patch4: watchman-fix-for-fmt10.diff
|
||||
|
||||
ExclusiveArch: x86_64 aarch64 ppc64le
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: folly-devel
|
||||
BuildRequires: pcre-devel
|
||||
# for %%{_tmpfilesdir}
|
||||
BuildRequires: systemd-rpm-macros
|
||||
# Optional dependencies
|
||||
BuildRequires: valgrind-devel
|
||||
# Test dependencies
|
||||
# TODO this shouldn't be needed if tests are not enabled
|
||||
BuildRequires: gmock-devel
|
||||
BuildRequires: gtest-devel
|
||||
|
||||
%description
|
||||
Watchman exists to watch files and record when they actually change. It can also
|
||||
trigger actions (such as rebuilding assets) when matching files change.
|
||||
|
||||
|
||||
%package -n python3-py%{name}
|
||||
Summary: Python bindings for %{name}
|
||||
License: BSD-3-Clause and MIT
|
||||
BuildRequires: procps-ng
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
# watchman-diag shells out to ps
|
||||
Requires: procps-ng
|
||||
|
||||
%description -n python3-py%{name}
|
||||
The python3-py%{name} package contains Python bindings for %{name}.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
# Fix pywatchman version.
|
||||
sed -i "s|version=\"1.4.1\"|version=\"%{version}\"|" python/setup.py
|
||||
|
||||
# testsuite does not seem to compile with gtest 1.11....
|
||||
# disabling for now on rawhide
|
||||
%if 0%{?fedora} >= 36
|
||||
sed -i CMakeLists.txt -e 's|^t_test|#t_test|'
|
||||
%endif
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-DINSTALL_WATCHMAN_STATE_DIR=ON
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
mkdir -p %{buildroot}%{_tmpfilesdir}
|
||||
cp -p %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||
|
||||
|
||||
%if %{with tests}
|
||||
%check
|
||||
%ctest
|
||||
%endif
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc CODE_OF_CONDUCT.md README.markdown
|
||||
%attr(02777,root,root) %dir %{_var}/run/%{name}
|
||||
%{_bindir}/%{name}
|
||||
%{_tmpfilesdir}/%{name}.conf
|
||||
|
||||
%files -n python3-py%{name}
|
||||
%license python/LICENSE
|
||||
%{_bindir}/%{name}-*
|
||||
%{python3_sitearch}/py%{name}
|
||||
%{python3_sitearch}/py%{name}-%{stripped_version}-py%{python3_version}.egg-info
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
Loading…
Add table
Add a link
Reference in a new issue