5147c73
# some Python tests are failing
5147c73
# The following tests FAILED:
5147c73
#          40 - CacheTest.future (Child aborted)
5147c73
#         290 - test_py::tests.integration.test_site_spawn.TestSiteSpawn.test_failingSpawner (Failed)
5147c73
#         292 - test_py::tests.integration.test_site_spawn.TestSiteSpawn.test_spawner (Failed)
5147c73
# Errors while running CTest
5147c73
%bcond_with tests
5147c73
5147c73
Name:           watchman
e2a1f49
Version:        2021.05.10.00
ee2f1c3
Release:        %autorelease
5147c73
Summary:        File alteration monitoring service
5147c73
de6dcfb
%global stripped_version %(echo %{version} | sed -r 's/\\.0([[:digit:]])/.\\1/g')
de6dcfb
5147c73
License:        ASL 2.0
5147c73
URL:            https://facebook.github.io/%{name}/
5147c73
Source0:        https://github.com/facebook/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
a2658c2
Source1:        tmpfiles-%{name}.conf
5147c73
Patch0:         %{name}-destdir.patch
5ba1308
# https://github.com/facebook/folly/commit/b65ef9f8b5f9b495370b1e651732214cde8abc7d
5ba1308
Patch1:         watchman-2021.05.10.00-folly-new.patch
5ba1308
# Fix build failure on 32bit arch
5ba1308
Patch2:         watchman-2021.05.10.00-wordsize.patch
5147c73
5147c73
# Folly is known not to work on big-endian CPUs
5147c73
# TODO: file bz once this is approved
5147c73
ExcludeArch:    s390x
1c2e4e2
%if 0%{?fedora} >= 36
9f88003
# can't build against clang folly: https://bugzilla.redhat.com/show_bug.cgi?id=2062395
a5bf9e0
ExcludeArch:    %{arm32} %{ix86}
1c2e4e2
# fmt code breaks: https://bugzilla.redhat.com/show_bug.cgi?id=2061022
1c2e4e2
ExcludeArch:    ppc64le
1c2e4e2
%endif
5147c73
5147c73
BuildRequires:  cmake
5147c73
BuildRequires:  gcc-c++
5147c73
BuildRequires:  folly-devel
5147c73
BuildRequires:  pcre-devel
a2658c2
# for %%{_tmpfilesdir}
a2658c2
BuildRequires:  systemd-rpm-macros
ee2f1c3
# Optional dependencies
ee2f1c3
BuildRequires:  valgrind-devel
ee2f1c3
# Test dependencies
ee2f1c3
# TODO this shouldn't be needed if tests are not enabled
ee2f1c3
BuildRequires:  gmock-devel
ee2f1c3
BuildRequires:  gtest-devel
5147c73
5147c73
%description
5147c73
Watchman exists to watch files and record when they actually change. It can also
5147c73
trigger actions (such as rebuilding assets) when matching files change.
5147c73
5147c73
5147c73
%package -n python3-py%{name}
5147c73
Summary:        Python bindings for %{name}
5147c73
License:        BSD and MIT
5147c73
BuildRequires:  procps-ng
5147c73
BuildRequires:  python3-devel
f3704f3
BuildRequires:  python3-setuptools
5147c73
Requires:       %{name}%{?_isa} = %{version}-%{release}
5147c73
# watchman-diag shells out to ps
5147c73
Requires:       procps-ng
5147c73
5147c73
%description -n python3-py%{name}
5147c73
The python3-py%{name} package contains Python bindings for %{name}.
5147c73
5147c73
5147c73
%prep
5147c73
%autosetup -p1
5147c73
# Fix pywatchman version.
de6dcfb
sed -i "s|version=\"1.4.1\"|version=\"%{version}\"|" python/setup.py
5147c73
5ba1308
# testsuite does not seem to compile with gtest 1.11....
5ba1308
# disabling for now on rawhide
5ba1308
%if 0%{?fedora} >= 36
5ba1308
sed -i CMakeLists.txt -e 's|^t_test|#t_test|'
5ba1308
%endif
5147c73
5147c73
%build
5147c73
%cmake \
5147c73
  -DINSTALL_WATCHMAN_STATE_DIR=ON
5147c73
%cmake_build
5147c73
5147c73
5147c73
%install
5147c73
%cmake_install
a2658c2
mkdir -p %{buildroot}%{_tmpfilesdir}
a2658c2
cp -p %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf
5147c73
5147c73
5147c73
%if %{with tests}
5147c73
%check
5147c73
%ctest
5147c73
%endif
5147c73
5147c73
5147c73
%files
5147c73
%license LICENSE
5147c73
%doc CODE_OF_CONDUCT.md README.markdown
a2658c2
%attr(02777,root,root) %dir %{_var}/run/%{name}
5147c73
%{_bindir}/%{name}
a2658c2
%{_tmpfilesdir}/%{name}.conf
5147c73
5147c73
%files -n python3-py%{name}
5147c73
%license python/LICENSE
5147c73
%{_bindir}/%{name}-*
5147c73
%{python3_sitearch}/py%{name}
de6dcfb
%{python3_sitearch}/py%{name}-%{stripped_version}-py%{python3_version}.egg-info
5147c73
5147c73
5147c73
%changelog
ee2f1c3
%autochangelog