blob: 415b8e1dd1f48ac21b582311f114afe32ee7f8df [file] [log] [blame]
From 22b1e0897af977cc96af926c730ff948bd120bb5 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Fri, 31 Mar 2023 09:39:49 +0200
Subject: [PATCH] Fix build for GCC 13 + make GitHub Actions cover build with
GCC 13 (#586)
* include missing <cstdint>
gcc 13 moved some includes around and as a result <cstdint> is no
longer transitively included [1]. Explicitly include it for
uint8_t.
[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
* docker.yml: Cover openSUSE Tumbleweed with GCC 13+
Based on scripts/docker/build_on_centos_8_2.Dockerfile .
---------
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Co-authored-by: Khem Raj <raj.khem@gmail.com>
Upstream: https://github.com/USBGuard/usbguard/commit/22b1e0897af977cc96af926c730ff948bd120bb5
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
.github/workflows/docker.yml | 1 +
.../build_on_opensuse_tumbleweed.Dockerfile | 50 +++++++++++++++++++
src/Library/Base64.cpp | 1 -
src/Library/Base64.hpp | 1 +
4 files changed, 52 insertions(+), 1 deletion(-)
create mode 100644 scripts/docker/build_on_opensuse_tumbleweed.Dockerfile
diff --git a/scripts/docker/build_on_opensuse_tumbleweed.Dockerfile b/scripts/docker/build_on_opensuse_tumbleweed.Dockerfile
new file mode 100644
index 00000000..d0993d8c
--- /dev/null
+++ b/scripts/docker/build_on_opensuse_tumbleweed.Dockerfile
@@ -0,0 +1,50 @@
+##
+## Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+FROM opensuse/tumbleweed:latest
+RUN zypper --non-interactive install dnf rpm-repos-openSUSE-Tumbleweed \
+ && \
+ dnf install -y \
+ asciidoc \
+ autoconf \
+ automake \
+ dbus-1-glib-devel \
+ diffutils \
+ file \
+ gcc-c++ \
+ git \
+ libgcrypt-devel \
+ libqb-devel \
+ libsodium-devel \
+ libtool \
+ libxslt \
+ make \
+ polkit-devel \
+ protobuf-devel
+ADD usbguard.tar usbguard/
+ADD catch.tar usbguard/src/ThirdParty/Catch/
+ADD pegtl.tar usbguard/src/ThirdParty/PEGTL/
+WORKDIR usbguard
+RUN git init &>/dev/null && ./autogen.sh
+RUN ./configure --with-bundled-catch --with-bundled-pegtl || ! cat config.log
+RUN make dist
+RUN tar xf usbguard-*.tar.gz
+RUN mv -v usbguard-*.*.*/ usbguard-release/
+RUN mkdir usbguard-release/build/
+WORKDIR usbguard-release/build/
+RUN ../configure --with-bundled-catch --with-bundled-pegtl || ! cat config.log
+RUN bash -c 'set -o pipefail; make V=1 "-j$(nproc)" |& tee build.log'
+RUN ! grep -F 'include file not found' build.log
diff --git a/src/Library/Base64.cpp b/src/Library/Base64.cpp
index ddb28dce..0246a134 100644
--- a/src/Library/Base64.cpp
+++ b/src/Library/Base64.cpp
@@ -22,7 +22,6 @@
#include "Base64.hpp"
#include <stdexcept>
-#include <cstdint>
namespace usbguard
{
diff --git a/src/Library/Base64.hpp b/src/Library/Base64.hpp
index 0947f214..e0c745cb 100644
--- a/src/Library/Base64.hpp
+++ b/src/Library/Base64.hpp
@@ -23,6 +23,7 @@
#endif
#include <string>
+#include <cstdint>
#include <cstddef>
namespace usbguard