Package Details: folly 2024.04.08.00-1

Git Clone URL: https://aur.archlinux.org/folly.git (read-only, click to copy)
Package Base: folly
Description: An open-source C++ library developed and used at Facebook
Upstream URL: https://github.com/facebook/folly
Licenses: Apache-2.0
Provides: libfolly.so, libfollybenchmark.so, libfolly_test_util.so
Submitter: dseg
Maintainer: ftiasch (MrAnno, carsme)
Last Packager: carsme
Votes: 7
Popularity: 0.070154
First Submitted: 2015-03-20 08:29 (UTC)
Last Updated: 2024-04-09 05:01 (UTC)

Pinned Comments

carsme commented on 2023-12-07 04:02 (UTC)

BREAKING CHANGE: This package now builds shared objects:

/usr/lib/libfolly.so
/usr/lib/libfolly_test_util.so
/usr/lib/libfollybenchmark.so

instead of the static libraries:

/usr/lib/libfolly.a
/usr/lib/libfolly_exception_counter.a
/usr/lib/libfolly_exception_tracer.a
/usr/lib/libfolly_exception_tracer_base.a
/usr/lib/libfolly_test_util.a
/usr/lib/libfollybenchmark.a

Downstream packages must move folly from the makedepends to depends array to stay functional.

We are doing this change since dynamic rather than static linking between packages is more in line with Arch Linux packaging practices (or just Linux packaging practices in general).

Latest Comments

1 2 3 4 5 Next › Last »

carsme commented on 2023-12-07 04:02 (UTC)

BREAKING CHANGE: This package now builds shared objects:

/usr/lib/libfolly.so
/usr/lib/libfolly_test_util.so
/usr/lib/libfollybenchmark.so

instead of the static libraries:

/usr/lib/libfolly.a
/usr/lib/libfolly_exception_counter.a
/usr/lib/libfolly_exception_tracer.a
/usr/lib/libfolly_exception_tracer_base.a
/usr/lib/libfolly_test_util.a
/usr/lib/libfollybenchmark.a

Downstream packages must move folly from the makedepends to depends array to stay functional.

We are doing this change since dynamic rather than static linking between packages is more in line with Arch Linux packaging practices (or just Linux packaging practices in general).

carsme commented on 2023-12-05 13:10 (UTC)

Hey, would you mind adding me as co-maintainer? I maintain the downstream packages https://aur.archlinux.org/packages/edencommon and https://aur.archlinux.org/packages/watchman so I'd be happy to help keep this package up-to-date every week :) Thanks!

gdiscry commented on 2023-08-28 15:03 (UTC)

Could you force-disable LTO in the PKGBUILD?

I was trying to build edencommon and watchman with makechrootpkg (through aurutils) and LTO is enabled by the default configuration in devtools (from what I can tell).

By adding the following line, building those packages works even when LTO is globally enabled in makepkg.conf.

options=('!lto')

ftiasch commented on 2022-06-22 06:44 (UTC)

Due to https://github.com/facebook/folly/issues/1800, the update of the AUR package will be paused until build can success.

ehlegeth commented on 2022-05-26 00:06 (UTC) (edited on 2022-05-26 00:22 (UTC) by ehlegeth)

It would be great if you can update this package to the latest release. I found the latest release fixes the build problem identified by jghodd 1 month ago.

diff --git a/.SRCINFO b/.SRCINFO
index 09e221a..f32f51d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
 pkgbase = folly
    pkgdesc = An open-source C++ library developed and used at Facebook
-   pkgver = 2022.04.25.00
+   pkgver = 2022.05.23.00
    pkgrel = 1
    url = https://github.com/facebook/folly
    arch = x86_64
@@ -29,6 +29,6 @@ pkgbase = folly
    depends = liburing
    depends = libunwind
    source = https://github.com/facebook/folly/archive/v2022.04.25.00.tar.gz
-   sha256sums = 0143d922291e0a31ba1ef2a7557d89f163ec7cb8093bfae8d56ab14f5ea5cf61
+   sha256sums = 9e888bcd310e57b993c7e9efc7ff133a394620910448e60da5b8e88568f27f93

 pkgname = folly
diff --git a/PKGBUILD b/PKGBUILD
index a7caec7..1d8cd2b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Daichi Shinozaki <dsdseg@gmail.com>

 pkgname=folly
-pkgver=2022.04.25.00
+pkgver=2022.05.23.00
 pkgrel=1
 pkgdesc="An open-source C++ library developed and used at Facebook"
 arch=('x86_64')
@@ -14,7 +14,7 @@ depends=('snappy' 'jemalloc' 'double-conversion' 'gflags' 'google-glog' 'libeven
          'libdwarf' 'libaio' 'liburing' 'libunwind')
 makedepends=('cmake' 'gtest' 'gmock')
 source=("https://github.com/facebook/$pkgname/archive/v${pkgver}.tar.gz")
-sha256sums=('0143d922291e0a31ba1ef2a7557d89f163ec7cb8093bfae8d56ab14f5ea5cf61')
+sha256sums=('9e888bcd310e57b993c7e9efc7ff133a394620910448e60da5b8e88568f27f93')

 build() {
   cd "$pkgname-$pkgver"

jghodd commented on 2022-04-29 12:55 (UTC)

another build error with the latest release:


Building CXX object CMakeFiles/folly_base.dir/folly/init/Init.cpp.o
/distro/local/repository/folly/src/folly-2022.04.25.00/folly/init/Init.cpp: In function ‘void folly::init(int*, char***, folly::InitOptions)’:
/distro/local/repository/folly/src/folly-2022.04.25.00/folly/init/Init.cpp:79:34: error: invalid conversion from ‘void (*)() noexcept’ to ‘google::logging_fail_func_t’ {aka ‘void (*)() __attribute__((noreturn))’} [-fpermissive]
   79 |   google::InstallFailureFunction(abort);
      |                                  ^~~~~
      |                                  |
      |                                  void (*)() noexcept
In file included from /distro/local/repository/folly/src/folly-2022.04.25.00/folly/init/Init.cpp:19:
/usr/include/glog/logging.h:642:61: note:   initializing argument 1 of ‘void google::InstallFailureFunction(google::logging_fail_func_t)’
  642 | GLOG_EXPORT void InstallFailureFunction(logging_fail_func_t fail_func);
      |                                         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
make[2]: *** [CMakeFiles/folly_base.dir/build.make:2260: CMakeFiles/folly_base.dir/folly/init/Init.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:145: CMakeFiles/folly_base.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

had to fix this by adding a hard cast of (google::logging_fail_func_t) to line 79 of Init.cpp:


    google::InstallFailureFunction((google::logging_fail_func_t)abort);

jghodd commented on 2022-04-24 20:20 (UTC) (edited on 2022-04-24 20:24 (UTC) by jghodd)

thus far, it seems that hard coding the path into FindLibDwarf.cmake is working, but should not be the real solution.


./CMake/FindLibDwarf.cmake:  set(LIBDWARF_INCLUDE_DIRS "/usr/include/libdwarf/libdwarf-0")

the issue is that DW_SECT_INFO, DW_SECT_ABBREV and DW_SECT_STR_OFFSETS are only defined in /usr/include/libdwarf/libdwarf-0/dwarf.h

jghodd commented on 2022-04-24 19:33 (UTC) (edited on 2022-04-24 19:37 (UTC) by jghodd)

getting a build error:


[ 40%] Building CXX object CMakeFiles/folly_base.dir/folly/experimental/symbolizer/DwarfUtil.cpp.o
/distro/local/repository/folly/src/folly-2022.04.18.00/folly/experimental/symbolizer/DwarfUtil.cpp: In function ‘bool folly::symbolizer::{anonymous}::findCompiliationOffset(folly::StringPiece, uint64_t, folly::symbolizer::CompilationUnit&)’:
/distro/local/repository/folly/src/folly-2022.04.18.00/folly/experimental/symbolizer/DwarfUtil.cpp:227:18: error: ‘DW_SECT_INFO’ was not declared in this scope
  227 |     if (index == DW_SECT_INFO) {
      |                  ^~~~~~~~~~~~
/distro/local/repository/folly/src/folly-2022.04.18.00/folly/experimental/symbolizer/DwarfUtil.cpp:229:25: error: ‘DW_SECT_ABBREV’ was not declared in this scope
  229 |     } else if (index == DW_SECT_ABBREV) {
      |                         ^~~~~~~~~~~~~~
/distro/local/repository/folly/src/folly-2022.04.18.00/folly/experimental/symbolizer/DwarfUtil.cpp:231:25: error: ‘DW_SECT_STR_OFFSETS’ was not declared in this scope
  231 |     } else if (index == DW_SECT_STR_OFFSETS) {
      |                         ^~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/folly_base.dir/build.make:1784: CMakeFiles/folly_base.dir/folly/experimental/symbolizer/DwarfUtil.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:145: CMakeFiles/folly_base.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

as far as I can tell, the cmake FindLibDwarf.cmake is finding the wrong path to dwarf.h - there are multiples:


/usr/include/lldb/Core/dwarf.h
/usr/include/libdwarf/libdwarf-0/dwarf.h
/usr/include/dwarf.h

the one we want is /usr/include/libdwarf/libdwarf-0/dwarf.h

magras commented on 2021-07-08 10:43 (UTC) (edited on 2021-07-08 10:46 (UTC) by magras)

There are different pkgrel in .SRCINFO and PKGBUILD:

https://aur.archlinux.org/cgit/aur.git/commit/?h=folly&id=266e859d579e86fef920c0ee7b4fd2aae6f3cc44

This causes yay to reinstall folly on every update.