diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ad07370 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/watchman-2021.04.26.00.tar.gz diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ac2e8a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# watchman + +The watchman package diff --git a/dead.package b/dead.package deleted file mode 100644 index 9ac758d..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -FTBFS; need to be repackaged after the Rust rewrite anyway diff --git a/sources b/sources new file mode 100644 index 0000000..846c14e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (watchman-2021.04.26.00.tar.gz) = 222ab7b1daf338aace506d228e0f779b67084430416612cbfce86012903f07b74c8ddb1f1f669a95f912f2136e65cf35709b63f47b7acabcb357ed1ea36df2d0 diff --git a/tmpfiles-watchman.conf b/tmpfiles-watchman.conf new file mode 100644 index 0000000..74c11ed --- /dev/null +++ b/tmpfiles-watchman.conf @@ -0,0 +1 @@ +d /run/watchman 02777 root root diff --git a/watchman-destdir.patch b/watchman-destdir.patch new file mode 100644 index 0000000..0675d53 --- /dev/null +++ b/watchman-destdir.patch @@ -0,0 +1,45 @@ +From 433938a3a6f03b144151895e23c98906af1d4d7a Mon Sep 17 00:00:00 2001 +From: Michel Alexandre Salim +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 +--- + 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 + diff --git a/watchman.spec b/watchman.spec new file mode 100644 index 0000000..7ae3aa8 --- /dev/null +++ b/watchman.spec @@ -0,0 +1,144 @@ +# 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.04.26.00 +Release: 1%{?dist} +Summary: File alteration monitoring service + +%global stripped_version %(echo %{version} | sed -r 's/\\.0([[:digit:]])/.\\1/g') + +License: ASL 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 + +# Folly is known not to work on big-endian CPUs +# TODO: file bz once this is approved +ExcludeArch: s390x + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: folly-devel +BuildRequires: pcre-devel +# for %%{_tmpfilesdir} +BuildRequires: systemd-rpm-macros + +%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 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 + + +%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 +* Mon Apr 26 2021 Michel Alexandre Salim - 2021.04.26.00-1 +- Update to 2021.04.26.00 + +* Fri Apr 16 2021 Michel Alexandre Salim - 2021.04.12.00-1 +- Update to 2021.04.12.00 + +* Tue Mar 30 2021 Jonathan Wakely - 2021.03.29.00-2 +- Rebuilt for removed libstdc++ symbol (#1937698) + +* Mon Mar 29 2021 Michel Alexandre Salim - 2021.03.29.00-1 +- Update to 2021.03.29.00 + +* Wed Mar 24 2021 Michel Alexandre Salim - 2021.03.22.00-1 +- Update to 2021.03.22.00 + +* Mon Mar 15 2021 Michel Alexandre Salim - 2021.03.15.00-1 +- Update to 2021.03.15.00 + +* Wed Feb 03 2021 Michel Alexandre Salim - 2021.02.01.00-1 +- Update to 2021.02.01.00 + +* Tue Jan 26 17:51:20 PST 2021 Michel Alexandre Salim - 2021.01.25.00-1 +- Update to 2021.01.25.00 + +* Tue Dec 29 12:16:46 PST 2020 Michel Alexandre Salim - 2020.12.28.00-1 +- Update to 2020.12.28.00 + +* Tue Dec 22 20:48:10 PST 2020 Michel Alexandre Salim - 2020.12.21.00-1 +- Update to 2020.12.21.00 + +* Tue Dec 1 12:26:55 PST 2020 Michel Alexandre Salim - 2020.09.21.00-7 +- Recreate state directory with tmpfiles (bz #1903141) + +* Mon Nov 30 16:23:46 PST 2020 Michel Alexandre Salim - 2020.09.21.00-6 +- Rebuild for folly-2020.11.30.00 + +* Mon Nov 23 2020 Michel Alexandre Salim - 2020.09.21.00-5 +- Rebuild for folly-2020.11.23.00 + +* Mon Nov 16 2020 Michel Alexandre Salim - 2020.09.21.00-4 +- Rebuild for folly-2020.11.16.00 + +* Thu Nov 12 2020 Michel Alexandre Salim - 2020.09.21.00-3 +- Also install Watchman's state directory + +* Wed Nov 11 2020 Michel Alexandre Salim - 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 - 2020.09.21.00-1 +- Initial package