Skip to content

Commit

Permalink
fix build failure on ubuntu with system packages
Browse files Browse the repository at this point in the history
Found that ubuntu 20.04 and 22.04 LTS googletest was too old to build the folly tests, so updated the googletest manifest.

Exercise it by regenerating the github actions CI, which also speeds up the CI by not rebuilding boost each time.

Test plan:

build with system dependencies and without --no-tests
```
./build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive folly
./build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=.  folly
```

Before,  error
```
FAILED: CMakeFiles/exception_wrapper_test.dir/folly/test/ExceptionWrapperTest.cpp.o
/usr/bin/c++  -DBOOST_ALL_NO_LIB -DFOLLY_XLOG_STRIP_PREFIXES=\"/home/alex/local/folly:/home/alex/local/tmp/ubuntu-20.04/fbcode_builder_getdeps-ZhomeZalexZlocalZfollyZbuildZfbcode_builder/build/folly\" -DGFLAGS_IS_A_DLL=0 -D_GNU_SOURCE -D_REENTRANT -I/home/alex/local/folly -I. -isystem /home/alex/local/tmp/ubuntu-20.04/fbcode_builder_getdeps-ZhomeZalexZlocalZfollyZbuildZfbcode_builder/installed/fmt-LkF3PGJrv9IqRFUd-zFENY3ah_TiYc7ZX3G020GUw-I/include -O2 -g -DNDEBUG   -g -finput-charset=UTF-8 -fsigned-char -Wall -Wno-deprecated -Wno-deprecated-declarations -Wno-sign-compare -Wno-unused -Wuninitialized -Wunused-label -Wunused-result -Wshadow-compatible-local -Wno-noexcept-type -faligned-new -fopenmp -pthread -std=gnu++17 -MD -MT CMakeFiles/exception_wrapper_test.dir/folly/test/ExceptionWrapperTest.cpp.o -MF CMakeFiles/exception_wrapper_test.dir/folly/test/ExceptionWrapperTest.cpp.o.d -o CMakeFiles/exception_wrapper_test.dir/folly/test/ExceptionWrapperTest.cpp.o -c /home/alex/local/folly/folly/test/ExceptionWrapperTest.cpp
In file included from /usr/include/gtest/gtest.h:375,
                 from /usr/include/gmock/internal/gmock-internal-utils.h:47,
                 from /usr/include/gmock/gmock-actions.h:51,
                 from /usr/include/gmock/gmock.h:59,
                 from /home/alex/local/folly/folly/portability/GMock.h:32,
                 from /home/alex/local/folly/folly/test/ExceptionWrapperTest.cpp:23:
/home/alex/local/folly/folly/test/ExceptionWrapperTest.cpp: In member function ‘virtual void ExceptionWrapper_throw_test_Test::TestBody()’:
/home/alex/local/folly/folly/test/ExceptionWrapperTest.cpp:72:7: error: ‘ThrowsMessage’ was not declared in this scope
   72 |       ThrowsMessage<std::runtime_error>(StrEq("payload")));
```

After, tests build

Regenerated actions with:
```
./build/fbcode_builder/getdeps.py --allow-system-packages generate-github-actions --free-up-disk --src-dir=. --os-type=linux --output-dir=.github/workflows folly
```
  • Loading branch information
ahornby committed Oct 1, 2023
1 parent 7254af6 commit 8341303
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 39 deletions.
78 changes: 41 additions & 37 deletions .github/workflows/getdeps_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,83 +21,87 @@ jobs:
run: sudo rm -rf /usr/local/lib/android
- name: Show disk space after freeing up
run: df -h
- name: Update system package info
run: sudo apt-get update
- name: Install system deps
run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive folly
- name: Fetch boost
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost
- name: Fetch ninja
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja
- name: Fetch cmake
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake
- name: Fetch double-conversion
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion
- name: Fetch fmt
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt
- name: Fetch gflags
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags
- name: Fetch glog
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog
- name: Fetch googletest
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest
- name: Fetch libevent
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent
- name: Fetch lz4
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests lz4
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests lz4
- name: Fetch snappy
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy
- name: Fetch zstd
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd
- name: Fetch autoconf
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf
- name: Fetch automake
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake
- name: Fetch libtool
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool
- name: Fetch libsodium
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium
- name: Fetch xz
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests xz
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests xz
- name: Build boost
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests boost
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests boost
- name: Build ninja
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests ninja
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests ninja
- name: Build cmake
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests cmake
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests cmake
- name: Build double-conversion
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests double-conversion
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests double-conversion
- name: Build fmt
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests fmt
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests fmt
- name: Build gflags
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests gflags
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests gflags
- name: Build glog
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests glog
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests glog
- name: Build googletest
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests googletest
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests googletest
- name: Build libevent
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests libevent
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libevent
- name: Build lz4
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests lz4
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests lz4
- name: Build snappy
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests snappy
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests snappy
- name: Build zstd
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests zstd
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests zstd
- name: Build autoconf
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests autoconf
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests autoconf
- name: Build automake
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests automake
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests automake
- name: Build libtool
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests libtool
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libtool
- name: Build libsodium
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests libsodium
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libsodium
- name: Build xz
run: python3 build/fbcode_builder/getdeps.py build --free-up-disk --no-tests xz
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests xz
- name: Build folly
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. folly --project-install-prefix folly:/usr/local
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. folly --project-install-prefix folly:/usr/local
- name: Copy artifacts
run: python3 build/fbcode_builder/getdeps.py fixup-dyn-deps --strip --src-dir=. folly _artifacts/linux --project-install-prefix folly:/usr/local --final-install-prefix /usr/local
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --strip --src-dir=. folly _artifacts/linux --project-install-prefix folly:/usr/local --final-install-prefix /usr/local
- uses: actions/upload-artifact@v2
with:
name: folly
path: _artifacts
- name: Test folly
run: python3 build/fbcode_builder/getdeps.py test --src-dir=. folly --project-install-prefix folly:/usr/local
run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. folly --project-install-prefix folly:/usr/local
- name: Show disk space at end
run: df -h
4 changes: 2 additions & 2 deletions build/fbcode_builder/manifests/googletest
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ gtest_force_shared_crt=ON
[cmake.defines.os=windows]
BUILD_SHARED_LIBS=ON

# 18.04 googletest is too old
[debs.not(all(distro=ubuntu,distro_vers="18.04"))]
# packaged LTS googletest is too old
[debs.not(all(distro=ubuntu,any(distro_vers="18.04",distro_vers="20.04",distro_vers="22.04")))]
libgtest-dev
libgmock-dev

0 comments on commit 8341303

Please sign in to comment.