From b8d956f884fa03863c4821f63200597a174182d6 Mon Sep 17 00:00:00 2001 From: Brenden Matthews Date: Sun, 14 Apr 2019 13:51:25 -0400 Subject: [PATCH] Add clang 8 to builds. Also added new librsvg functions, and ignore deprecation warnings on new versions of librsvg. Disable sccache on FreeBSD. --- .gitlab-ci.yml | 150 ++++++++++++------ .travis.yml | 46 +++++- lua/rsvg.pkg | 26 +++ ....fedora-base => Dockerfile.fedora-29-base} | 2 +- ...a-clang-7 => Dockerfile.fedora-29-clang-7} | 4 +- tests/dockerfiles/Dockerfile.fedora-29-gcc-8 | 7 + tests/dockerfiles/Dockerfile.fedora-31-base | 42 +++++ .../dockerfiles/Dockerfile.fedora-31-clang-8 | 12 ++ tests/dockerfiles/Dockerfile.fedora-gcc-8 | 7 - tests/dockerfiles/Dockerfile.ubuntu-clang-7 | 3 - tests/dockerfiles/Dockerfile.ubuntu-clang-8 | 3 + 11 files changed, 242 insertions(+), 60 deletions(-) rename tests/dockerfiles/{Dockerfile.fedora-base => Dockerfile.fedora-29-base} (98%) rename tests/dockerfiles/{Dockerfile.fedora-clang-7 => Dockerfile.fedora-29-clang-7} (89%) create mode 100644 tests/dockerfiles/Dockerfile.fedora-29-gcc-8 create mode 100644 tests/dockerfiles/Dockerfile.fedora-31-base create mode 100644 tests/dockerfiles/Dockerfile.fedora-31-clang-8 delete mode 100644 tests/dockerfiles/Dockerfile.fedora-gcc-8 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5a3ca65f..0a3ccf1a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,8 +47,9 @@ pull ubuntu gcc-5: *pull_images pull ubuntu gcc-6: *pull_images pull ubuntu gcc-7: *pull_images pull ubuntu gcc-8: *pull_images -pull fedora gcc-8: *pull_images -pull fedora clang-7: *pull_images +pull fedora-29 gcc-8: *pull_images +pull fedora-29 clang-7: *pull_images +pull fedora-31 clang-8: *pull_images pull centos6 gcc-7: *pull_images pull centos7 gcc-7: *pull_images pull centos7 gcc-8: *pull_images @@ -100,10 +101,15 @@ builder ubuntu base: variables: DOCKER_BASE_IMAGE: ubuntu:bionic -builder fedora base: +builder fedora-29 base: <<: *docker_base_builder variables: - DOCKER_BASE_IMAGE: fedora:latest + DOCKER_BASE_IMAGE: fedora:29 + +builder fedora-31 base: + <<: *docker_base_builder + variables: + DOCKER_BASE_IMAGE: fedora:31 builder centos6 base: <<: *docker_base_builder @@ -148,8 +154,9 @@ builder ubuntu gcc-5: *docker_builder builder ubuntu gcc-6: *docker_builder builder ubuntu gcc-7: *docker_builder builder ubuntu gcc-8: *docker_builder -builder fedora gcc-8: *docker_builder -builder fedora clang-7: *docker_builder +builder fedora-29 gcc-8: *docker_builder +builder fedora-29 clang-7: *docker_builder +builder fedora-31 clang-8: *docker_builder builder centos6 gcc-7: *docker_builder builder centos7 gcc-7: *docker_builder builder centos7 gcc-8: *docker_builder @@ -194,8 +201,6 @@ builder centos7 clang-5: *docker_builder - make -j4 .build_variables: &build_variables - CC: clang-7 - CXX: clang++-7 LINKER_FLAGS: "" BUILD_AUDACIOUS: "ON" BUILD_XMMS2: "ON" @@ -258,26 +263,36 @@ ubuntu gcc-8: CC: gcc-8 CXX: g++-8 -fedora gcc-8: +fedora-29 gcc-8: <<: *build_stages variables: <<: *build_variables - DISTRO: fedora + DISTRO: fedora-29 COMPILER: gcc-8 CC: gcc CXX: g++ BUILD_AUDACIOUS: "OFF" -fedora clang-7: +fedora-29 clang-7: <<: *build_stages variables: <<: *build_variables - DISTRO: fedora + DISTRO: fedora-29 COMPILER: clang-7 CC: clang CXX: clang++ BUILD_AUDACIOUS: "OFF" +fedora-31 clang-8: + <<: *build_stages + variables: + <<: *build_variables + DISTRO: fedora-31 + COMPILER: clang-8 + CC: clang + CXX: clang++ + BUILD_AUDACIOUS: "OFF" + centos6 gcc-7: <<: *build_stages variables: @@ -357,11 +372,11 @@ centos7 clang-5: - stuck_or_timeout_failure - unknown_failure - api_failure - allow_failure: true tags: - freebsd12 before_script: - echo $GCS_STORAGE_KEY > $SCCACHE_GCS_KEY_PATH + - 'echo "COMPILER_PACKAGE: $COMPILER_PACKAGE"' # Try up to 7 times until installation succeeds. It may be locked. - > ( @@ -403,8 +418,6 @@ centos7 clang-5: cmake -DCMAKE_REQUIRED_INCLUDES="/usr/include;/usr/local/include" -DCMAKE_EXE_LINKER_FLAGS=$LINKER_FLAGS - -DCMAKE_C_COMPILER_LAUNCHER=sccache - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DMAINTAINER_MODE=ON -DBUILD_MYSQL=ON -DBUILD_LUA_IMLIB2=ON @@ -435,11 +448,21 @@ freebsd12 clang-7: stage: build variables: DISTRO: freebsd12 - CC: clang - CXX: clang++ + CC: clang70 + CXX: clang++70 COMPILER_PACKAGE: llvm70 <<: *freebsd_build_script +freebsd12 clang-8: + <<: *freebsd_deps + stage: build + variables: + DISTRO: freebsd12 + CC: clang80 + CXX: clang++80 + COMPILER_PACKAGE: llvm80 + <<: *freebsd_build_script + .test_stages: &test_stages retry: max: 2 @@ -456,13 +479,20 @@ freebsd12 clang-7: - "echo \"Distro: ${DISTRO}\nCompiler: ${COMPILER}\nCC: $CC\nCXX: $CXX\"" - mkdir build - cd build - - > - cmake - -DCMAKE_C_COMPILER_LAUNCHER=sccache - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache - -DMAINTAINER_MODE=ON - -DBUILD_TESTS=ON - .. + - | + if [[ "$DISTRO" == "freebsd12" ]] ; then + cmake \ + -DBUILD_TESTS=ON \ + -DMAINTAINER_MODE=ON \ + .. + else + cmake \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DBUILD_TESTS=ON \ + -DMAINTAINER_MODE=ON \ + .. + fi - make -j4 - make -j4 test - if [ "$COMPILER" == "clang-7" ] ; then make -j4 test-conky-coverage-txt ; fi @@ -472,13 +502,20 @@ freebsd12 clang-7: - if [[ "$DISTRO" == "freebsd12" ]] ; then sudo make install ; else make install ; fi - conky -v - find . -iname '*.gcda' -delete - - > - cmake - -DCMAKE_C_COMPILER_LAUNCHER=sccache - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DRELEASE=ON - .. + - | + if [[ "$DISTRO" == "freebsd12" ]] ; then + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DRELEASE=ON \ + .. + else + cmake \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DRELEASE=ON \ + .. + fi - make -j4 - if [[ "$DISTRO" == "freebsd12" ]] ; then sudo make install ; else make install ; fi - conky -v @@ -542,23 +579,33 @@ test ubuntu gcc-8: CC: gcc-8 CXX: g++-8 -test fedora clang-7: + +test fedora-29 gcc-8: <<: *test_stages <<: *test_run variables: - DISTRO: fedora + DISTRO: fedora-29 + COMPILER: gcc-8 + CC: gcc + CXX: g++ + +test fedora-29 clang-7: + <<: *test_stages + <<: *test_run + variables: + DISTRO: fedora-29 COMPILER: clang-7 CC: clang CXX: clang++ -test fedora gcc-8: +test fedora-31 clang-8: <<: *test_stages <<: *test_run variables: - DISTRO: fedora - COMPILER: gcc-8 - CC: gcc - CXX: g++ + DISTRO: fedora-31 + COMPILER: clang-8 + CC: clang + CXX: clang++ test centos6 gcc-7: <<: *test_stages @@ -615,8 +662,18 @@ test freebsd12 clang-7: DISTRO: freebsd12 COMPILER: clang-7 COMPILER_PACKAGE: llvm70 - CC: clang - CXX: clang++ + CC: clang70 + CXX: clang++70 + +test freebsd12 clang-8: + <<: *freebsd_deps + <<: *test_run + variables: + DISTRO: freebsd12 + COMPILER: clang-8 + COMPILER_PACKAGE: llvm80 + CC: clang80 + CXX: clang++80 test freebsd12 gcc-8: <<: *freebsd_deps @@ -631,10 +688,10 @@ test freebsd12 gcc-8: check clang-tidy: <<: *test_stages variables: - COMPILER: clang-7 + COMPILER: clang-8 DISTRO: ubuntu - CC: clang-7 - CXX: clang++-7 + CC: clang-8 + CXX: clang++-8 script: - mkdir build - cd build @@ -651,10 +708,10 @@ check clang-tidy: check clang-format: <<: *test_stages variables: - COMPILER: clang-7 + COMPILER: clang-8 DISTRO: ubuntu - CC: clang-7 - CXX: clang++-7 + CC: clang-8 + CXX: clang++-8 script: - mkdir build - cd build @@ -730,6 +787,7 @@ push ubuntu gcc-7: *push_images push ubuntu gcc-8: *push_images push fedora gcc-8: *push_images push fedora clang-7: *push_images +push fedora clang-8: *push_images push centos6 gcc-7: *push_images push centos7 gcc-7: *push_images push centos7 gcc-8: *push_images diff --git a/.travis.yml b/.travis.yml index 6424a98b..a36c0145 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,50 @@ language: cpp matrix: include: + - os: linux + dist: xenial + addons: + apt: + sources: + - llvm-toolchain-xenial-8 + packages: + - clang-8 + - llvm-8 + - lld-8 + - libc++-8-dev + - libc++abi-8-dev + - lcov + - cmake + - docbook2x + - libxdamage-dev + - libx11-dev + - libxft-dev + - libxext-dev + - libglib2.0-dev + - libxml2-dev + - libcurl4-gnutls-dev + - liblua5.3-dev + - libcairo2-dev + - libimlib2-dev + - libxinerama-dev + - libmysqlclient-dev + - libical-dev + - libircclient-dev + - libcairo2-dev + - libmicrohttpd-dev + - ncurses-dev + - librsvg2-dev + - libaudclient-dev + - libxmmsclient-dev + - libpulse-dev + - libcurl4-gnutls-dev + - audacious-dev + - libsystemd-dev + - libxnvctrl-dev + - libircclient-dev + - gawk + env: + - MATRIX_EVAL="CC=clang-8 && CXX=clang++-8" - os: linux dist: xenial addons: @@ -233,6 +277,6 @@ deploy: skip_cleanup: true on: tags: true - condition: "$CXX = clang++-7" + condition: "$CXX = clang++-8" api_key: secure: YGmk5e9am7gwH1pKJVwjHPheaLrSxMIIa5iDvnto9KKaj9VDgsynzPFcwfP6my78qMszdpC7IsjpukpKFBpmifAZ7OQcpEDFp1d91kXcTEM9ILgu3j3kl/gr6nIkzqJO9VAwlYO5H3t5xlD6EZa36FGg0Nlvi2cCuNG7mEyVJy0= diff --git a/lua/rsvg.pkg b/lua/rsvg.pkg index 8fc22dcb..ee193d30 100644 --- a/lua/rsvg.pkg +++ b/lua/rsvg.pkg @@ -42,6 +42,8 @@ Author: Carl Worth */ +$#pragma clang diagnostic push +$#pragma clang diagnostic ignored "-Wdeprecated-declarations" $#include $#include $#include "librsvg-helper.h" @@ -105,3 +107,27 @@ void g_object_unref(gpointer object); RsvgHandle * rsvg_create_handle_from_file(const char *); int rsvg_destroy_handle(RsvgHandle *); + +RsvgHandle *rsvg_handle_new_with_flags (RsvgHandleFlags flags); + +void rsvg_handle_set_base_gfile (RsvgHandle *handle, + GFile *base_file); + +gboolean rsvg_handle_read_stream_sync (RsvgHandle *handle, + GInputStream *stream, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_gfile_sync (GFile *file, + RsvgHandleFlags flags, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_stream_sync (GInputStream *input_stream, + GFile *base_file, + RsvgHandleFlags flags, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_data (const guint8 *data, gsize data_len, GError **error); +RsvgHandle *rsvg_handle_new_from_file (const gchar *filename, GError **error); diff --git a/tests/dockerfiles/Dockerfile.fedora-base b/tests/dockerfiles/Dockerfile.fedora-29-base similarity index 98% rename from tests/dockerfiles/Dockerfile.fedora-base rename to tests/dockerfiles/Dockerfile.fedora-29-base index a5fa5b6e..05331882 100644 --- a/tests/dockerfiles/Dockerfile.fedora-base +++ b/tests/dockerfiles/Dockerfile.fedora-29-base @@ -1,4 +1,4 @@ -FROM fedora:latest +FROM fedora:29 ENV SCCACHE_VER=0.2.8 diff --git a/tests/dockerfiles/Dockerfile.fedora-clang-7 b/tests/dockerfiles/Dockerfile.fedora-29-clang-7 similarity index 89% rename from tests/dockerfiles/Dockerfile.fedora-clang-7 rename to tests/dockerfiles/Dockerfile.fedora-29-clang-7 index 4023386c..c39da584 100644 --- a/tests/dockerfiles/Dockerfile.fedora-clang-7 +++ b/tests/dockerfiles/Dockerfile.fedora-29-clang-7 @@ -1,15 +1,15 @@ ARG IMAGE=registry.gitlab.com/brndnmtthws-oss/conky -FROM ${IMAGE}/builder/fedora-base:latest +FROM ${IMAGE}/builder/fedora-29-base:latest RUN dnf -y -q install \ llvm \ clang \ libcxx-devel \ libcxxabi-devel \ - && dnf clean all \ && curl -Ls https://rpm.nodesource.com/setup_11.x -o npm.sh \ && bash npm.sh \ && rm npm.sh \ && dnf -y -q install npm \ + && dnf clean all \ && npm install -g lcov-summary \ && npm cache clean --force diff --git a/tests/dockerfiles/Dockerfile.fedora-29-gcc-8 b/tests/dockerfiles/Dockerfile.fedora-29-gcc-8 new file mode 100644 index 00000000..c18e4cd2 --- /dev/null +++ b/tests/dockerfiles/Dockerfile.fedora-29-gcc-8 @@ -0,0 +1,7 @@ +ARG IMAGE=registry.gitlab.com/brndnmtthws-oss/conky +FROM ${IMAGE}/builder/fedora-29-base:latest + +RUN dnf -qy install \ + gcc \ + gcc-c++ \ + && dnf clean all diff --git a/tests/dockerfiles/Dockerfile.fedora-31-base b/tests/dockerfiles/Dockerfile.fedora-31-base new file mode 100644 index 00000000..fc384c3a --- /dev/null +++ b/tests/dockerfiles/Dockerfile.fedora-31-base @@ -0,0 +1,42 @@ +FROM fedora:31 + +ENV SCCACHE_VER=0.2.8 + +RUN dnf update -y -q \ + && dnf -y -q install \ + audacious-devel \ + cairo-devel \ + cmake \ + dbus-glib-devel \ + docbook2X \ + freetype-devel \ + git \ + imlib2-devel \ + lcov \ + libcurl-devel \ + libical-devel \ + libircclient-devel \ + libmicrohttpd-devel \ + librsvg2-devel \ + libX11-devel \ + libXdamage-devel \ + libXext-devel \ + libXft-devel \ + libXinerama-devel \ + libxml2-devel \ + libXNVCtrl-devel \ + lua-devel \ + make \ + man \ + mysql-devel \ + ncurses-devel \ + openssl-devel \ + patch \ + pulseaudio-libs-devel \ + readline-devel \ + systemd-devel \ + xmms2-devel \ + && curl -sL https://github.com/mozilla/sccache/releases/download/${SCCACHE_VER}/sccache-${SCCACHE_VER}-x86_64-unknown-linux-musl.tar.gz -o sccache-${SCCACHE_VER}-x86_64-unknown-linux-musl.tar.gz \ + && tar xf sccache-${SCCACHE_VER}-x86_64-unknown-linux-musl.tar.gz \ + && cp sccache-${SCCACHE_VER}-x86_64-unknown-linux-musl/sccache /usr/bin \ + && rm -rf sccache-${SCCACHE_VER}-x86_64-unknown-linux-musl* diff --git a/tests/dockerfiles/Dockerfile.fedora-31-clang-8 b/tests/dockerfiles/Dockerfile.fedora-31-clang-8 new file mode 100644 index 00000000..1799d0fa --- /dev/null +++ b/tests/dockerfiles/Dockerfile.fedora-31-clang-8 @@ -0,0 +1,12 @@ +ARG IMAGE=registry.gitlab.com/brndnmtthws-oss/conky +FROM ${IMAGE}/builder/fedora-31-base:latest + +RUN dnf -y -q install \ + llvm \ + clang \ + libcxx-devel \ + libcxxabi-devel \ + npm \ + && dnf clean all \ + && npm install -g lcov-summary \ + && npm cache clean --force diff --git a/tests/dockerfiles/Dockerfile.fedora-gcc-8 b/tests/dockerfiles/Dockerfile.fedora-gcc-8 deleted file mode 100644 index 42588d7f..00000000 --- a/tests/dockerfiles/Dockerfile.fedora-gcc-8 +++ /dev/null @@ -1,7 +0,0 @@ -ARG IMAGE=registry.gitlab.com/brndnmtthws-oss/conky -FROM ${IMAGE}/builder/fedora-base:latest - -RUN yum -qy install \ - gcc \ - gcc-c++ \ - && yum clean all diff --git a/tests/dockerfiles/Dockerfile.ubuntu-clang-7 b/tests/dockerfiles/Dockerfile.ubuntu-clang-7 index 47aef529..1907112f 100644 --- a/tests/dockerfiles/Dockerfile.ubuntu-clang-7 +++ b/tests/dockerfiles/Dockerfile.ubuntu-clang-7 @@ -11,9 +11,6 @@ RUN wget -q https://apt.llvm.org/llvm-snapshot.gpg.key \ lld-7 \ libc++-7-dev \ libc++abi-7-dev \ - clang-tools-7 \ - clang-format-7 \ - clang-tidy-7 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && wget https://deb.nodesource.com/setup_11.x -O npm.sh \ diff --git a/tests/dockerfiles/Dockerfile.ubuntu-clang-8 b/tests/dockerfiles/Dockerfile.ubuntu-clang-8 index 70a24fdb..20a2e11f 100644 --- a/tests/dockerfiles/Dockerfile.ubuntu-clang-8 +++ b/tests/dockerfiles/Dockerfile.ubuntu-clang-8 @@ -11,5 +11,8 @@ RUN wget -q https://apt.llvm.org/llvm-snapshot.gpg.key \ lld-8 \ libc++-8-dev \ libc++abi-8-dev \ + clang-tools-8 \ + clang-format-8 \ + clang-tidy-8 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*