The package rpms/folly.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/folly.git/commit/?id=ab7c5860f749....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit ab7c5860f74902d97efab36d8baa2613e7dc7c2e
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Mon Oct 26 15:37:36 2020 -0700
Initial import
Signed-off-by: Michel Alexandre Salim <salimma(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..958d104
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/folly-v2020.10.26.00.tar.gz
diff --git a/folly-v2020.10.26.00-fix_docs.patch b/folly-v2020.10.26.00-fix_docs.patch
new file mode 100644
index 0000000..82a7f5f
--- /dev/null
+++ b/folly-v2020.10.26.00-fix_docs.patch
@@ -0,0 +1,66 @@
+From e24cbe578e4a98a89fe8da3ce669de725e53fa12 Mon Sep 17 00:00:00 2001
+From: Michel Alexandre Salim <michel(a)michel-slm.name>
+Date: Mon, 26 Oct 2020 12:17:24 -0700
+Subject: [PATCH] Fix HTML document titles
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The document titles should be explicitly passed, otherwise pandoc generates a warning and
tries to guess
+
+Before:
+```
+folly/folly/docs on master
+❯ make Format.html
+/usr/bin/pandoc -s -H style.css -f markdown -t html --toc -o Format.html Format.md
+[WARNING] This document format requires a nonempty <title> element.
+ Defaulting to 'Format' as the title.
+ To specify a title, use 'title' in metadata or --metadata
title="...".
+
+folly/folly/docs on master
+❯ make index.html
+/usr/bin/pandoc -s -H style.css -f markdown -t html --toc -o index.html *.md
+[WARNING] This document format requires a nonempty <title> element.
+ Defaulting to 'AtomicHashMap' as the title.
+ To specify a title, use 'title' in metadata or --metadata
title="...".
+```
+
+After:
+```
+folly/folly/docs on fix-docs [!]
+❯ make Format.html
+/usr/bin/pandoc -s -H style.css -f markdown -t html --toc -o Format.html Format.md
--metadata title="folly/Format.h"
+
+folly/folly/docs on fix-docs [!]
+❯ make index.html
+/usr/bin/pandoc -s -H style.css -f markdown -t html --toc -o index.html *.md --metadata
title="Folly API Documentation"
+```
+
+Signed-off-by: Michel Alexandre Salim <michel(a)michel-slm.name>
+---
+ folly/docs/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/folly/docs/Makefile b/folly/docs/Makefile
+index 97be3da96..3599e0ffc 100644
+--- a/folly/docs/Makefile
++++ b/folly/docs/Makefile
+@@ -20,13 +20,13 @@ html: $(HTML)
+ $(PANDOC) -f markdown -o $*.pdf $*.md
+
+ %.html: %.md style.css
+- $(PANDOC) $(PANDOCARGS) -H style.css -f markdown -t html --toc -o $*.html $*.md
++ $(PANDOC) $(PANDOCARGS) -H style.css -f markdown -t html --toc -o $*.html $*.md
--metadata title="$(shell head -n1 $*.md | sed -e 's|`||g')"
+
+ docs.md: $(SOURCES) style.css
+ $(PANDOC) $(PANDOCARGS) -H style.css -f markdown -t markdown --toc -o $@ *.md
+
+ index.html: $(SOURCES) style.css
+- $(PANDOC) $(PANDOCARGS) -H style.css -f markdown -t html --toc -o $@ *.md
++ $(PANDOC) $(PANDOCARGS) -H style.css -f markdown -t html --toc -o $@ *.md --metadata
title="Folly API Documentation"
+
+
+ clean:
+--
+2.28.0
+
diff --git a/folly.spec b/folly.spec
new file mode 100644
index 0000000..ce0b329
--- /dev/null
+++ b/folly.spec
@@ -0,0 +1,219 @@
+# executor_api.h does not seem to get generated
+%bcond_with python
+
+# fixed_string_test fails with "error: non-constant condition for static
assertion"
+%bcond_with tests
+
+%global _shared_builddir shared_build
+
+Name: folly
+Version: 2020.10.26.00
+Release: 1%{?dist}
+Summary: An open-source C++ library developed and used at Facebook
+
+License: ASL 2.0
+URL:
https://github.com/facebook/folly
+Source0:
https://github.com/facebook/folly/releases/download/v%{version}/folly-v%{...
+# These patches can be dropped once the next release of Folly is out
+Patch0: folly-v%{version}-fix_docs.patch
+
+# Folly is known not to work on big-endian CPUs
+# will file a proper blocking bug once this is imported
+ExcludeArch: s390x
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+# Docs dependencies
+BuildRequires: pandoc
+# Library dependencies
+# for libiberty
+BuildRequires: binutils-devel
+BuildRequires: boost-devel
+BuildRequires: bzip2-devel
+BuildRequires: double-conversion-devel
+BuildRequires: fmt-devel
+BuildRequires: gflags-devel
+BuildRequires: glog-devel
+%if %{with tests}
+BuildRequires: gmock-devel
+%endif
+BuildRequires: libaio-devel
+BuildRequires: libdwarf-devel
+BuildRequires: libevent-devel
+BuildRequires: libsodium-devel
+BuildRequires: libunwind-devel
+# 0.7-3 fixes build on armv7hl
+BuildRequires: liburing-devel >= 0.7-3
+BuildRequires: libzstd-devel
+BuildRequires: lz4-devel
+BuildRequires: openssl-devel
+%if %{with python}
+BuildRequires: python3-Cython
+BuildRequires: python3-devel
+%endif
+BuildRequires: snappy-devel
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+%description
+Folly (acronymed loosely after Facebook Open Source Library) is a library of
+C++14 components designed with practicality and efficiency in mind. Folly
+contains a variety of core library components used extensively at Facebook. In
+particular, it's often a dependency of Facebook's other open source C++ efforts
+and place where those projects can share code.
+
+It complements (as opposed to competing against) offerings such as Boost and of
+course std. In fact, we embark on defining our own component only when something
+we need is either not available, or does not meet the needed performance
+profile. We endeavor to remove things from folly if or when std or Boost
+obsoletes them.
+
+Performance concerns permeate much of Folly, sometimes leading to designs that
+are more idiosyncratic than they would otherwise be (see e.g. PackedSyncPtr.h,
+SmallLocks.h). Good performance at large scale is a unifying theme in all of
+Folly.
+
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: binutils-devel%{?_isa}
+Requires: boost-devel%{?_isa}
+Requires: bzip2-devel%{?_isa}
+Requires: cmake-filesystem
+Requires: double-conversion-devel%{?_isa}
+Requires: fmt-devel%{?_isa}
+Requires: glog-devel%{?_isa}
+Requires: gmock-devel%{?_isa}
+Requires: libaio-devel%{?_isa}
+Requires: libdwarf-devel%{?_isa}
+Requires: libevent-devel%{?_isa}
+Requires: libsodium-devel%{?_isa}
+Requires: libunwind-devel%{?_isa}
+Requires: liburing-devel%{?_isa} >= 0.7-3
+Requires: libzstd-devel%{?_isa}
+Requires: lz4-devel%{?_isa}
+Requires: openssl-devel%{?_isa}
+Requires: snappy-devel%{?_isa}
+Requires: xz-devel%{?_isa}
+Requires: zlib-devel%{?_isa}
+
+%description devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+
+%package docs
+Summary: Documentation for %{name}
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+
+%description docs
+The %{name}-docs package contains documentation for %{name}.
+
+
+%package static
+Summary: Static development libraries for %{name}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+
+%description static
+The %{name}-static package contains static libraries for
+developing applications that use %{name}.
+
+
+%prep
+%autosetup -c -p1
+
+
+%build
+mkdir %{_shared_builddir}
+pushd %{_shared_builddir}
+%cmake .. \
+ -DBUILD_SHARED_LIBS=ON \
+%if %{with python}
+ -DPYTHON_EXTENSIONS=ON \
+%endif
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
+ -DPACKAGE_VERSION=%{version}
+%cmake_build
+popd
+
+# static build
+# let's build tests only in the static build since that's what upstream
recommends anyway
+%if %{with tests}
+%cmake \
+ -DBUILD_TESTS=ON \
+%else
+%cmake \
+%endif
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name}-static \
+ -DPACKAGE_VERSION=%{version}
+%cmake_build
+
+# Build documentation
+make -C folly/docs
+
+
+%install
+# shared build
+pushd %{_shared_builddir}
+%cmake_install
+popd
+
+# static build
+%cmake_install
+
+find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+
+
+%if %{with tests}
+%check
+%ctest
+%endif
+
+
+%files
+%license LICENSE
+%{_libdir}/*.so.*
+
+%files devel
+%doc CODE_OF_CONDUCT.md CONTRIBUTING.md README.md
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/cmake/%{name}
+%{_libdir}/pkgconfig/lib%{name}.pc
+
+%files docs
+%doc folly/docs/*.html
+
+%files static
+%{_libdir}/*.a
+%{_libdir}/cmake/%{name}-static
+
+
+%changelog
+* Mon Oct 26 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.26.00-1
+- Update to 2020.10.26.00
+- Build docs
+- Don't run tests if built without tests
+
+* Thu Oct 22 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.19.00-4
+- Put static cmake support files in its own directory
+- Add most folly BRs as folly-devel requirements, as dependent packages will need them
+
+* Wed Oct 21 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.19.00-3
+- Provide both shared and static libraries
+
+* Tue Oct 20 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.19.00-2
+- Add libiberty and zstd BRs
+- Try compiling Python extensions
+
+* Tue Oct 20 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.19.00-1
+- Update to 2020.10.19.00
+- Fix compile error on i686
+- Fix compile error on armv7hl (requires liburing >= 0.7-3)
+- Exclude s390x
+
+* Mon Oct 12 14:54:12 PDT 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> -
2020.10.12.00-1
+- Initial package
diff --git a/sources b/sources
new file mode 100644
index 0000000..f3756ad
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (folly-v2020.10.26.00.tar.gz) =
c5de05248f5f915c1c530a4f299e27fd7f816aee1ecfb7f00910bfba26d7d3a18516feacdb059c2315837aa090b5d8785d89780d31d5c242522a1f9ed4cddea4