From ed078e73edc39fe5bcc8a04e941c918a6da1f52c Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Fri, 12 May 2023 22:18:51 -0400 Subject: [PATCH 1/6] Update protobuf to 3.23.0, add abseil cpp --- gvsbuild/projects/__init__.py | 1 + gvsbuild/projects/abseil.py | 43 +++++++++++++++++++++++++++++++++++ gvsbuild/projects/protobuf.py | 13 +++++++---- 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 gvsbuild/projects/abseil.py diff --git a/gvsbuild/projects/__init__.py b/gvsbuild/projects/__init__.py index 499671b6c..7d33a459d 100644 --- a/gvsbuild/projects/__init__.py +++ b/gvsbuild/projects/__init__.py @@ -1,6 +1,7 @@ # flake8: noqa from gvsbuild.projects.adwaita_icon_theme import AdwaitaIconTheme +from gvsbuild.projects.abseil import AbseilCpp from gvsbuild.projects.atk import Atk from gvsbuild.projects.boringssl import BoringSSL from gvsbuild.projects.cairo import Cairo diff --git a/gvsbuild/projects/abseil.py b/gvsbuild/projects/abseil.py new file mode 100644 index 000000000..071667a2c --- /dev/null +++ b/gvsbuild/projects/abseil.py @@ -0,0 +1,43 @@ +# Copyright (C) 2016 - Yevgen Muntyan +# Copyright (C) 2016 - Ignacio Casal Quinteiro +# Copyright (C) 2016 - Arnavion +# +# 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 . + +from gvsbuild.utils.base_builders import CmakeProject +from gvsbuild.utils.base_expanders import Tarball +from gvsbuild.utils.base_project import Project, project_add + + +@project_add +class AbseilCpp(Tarball, CmakeProject): + def __init__(self): + Project.__init__( + self, + "abseil-cpp", + version="20230125.3", + archive_url="https://github.com/abseil/abseil-cpp/archive/refs/tags/{version}.tar.gz", + archive_file_name="abseil-cpp-{version}.tar.gz", + hash="5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36", + dependencies=["cmake", "ninja"], + ) + + def build(self, **kwargs): + CmakeProject.build( + self, + use_ninja=True, + cmake_params=r"-DABSL_PROPAGATE_CXX_STD=ON -DABSL_BUILD_DLL=ON", + ) + + self.install(r".\LICENSE share\doc\abseil-cpp") diff --git a/gvsbuild/projects/protobuf.py b/gvsbuild/projects/protobuf.py index 027ad0c2d..1d994c20b 100644 --- a/gvsbuild/projects/protobuf.py +++ b/gvsbuild/projects/protobuf.py @@ -13,6 +13,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . + from gvsbuild.utils.base_builders import CmakeProject from gvsbuild.utils.base_expanders import Tarball from gvsbuild.utils.base_project import Project, project_add @@ -24,14 +25,15 @@ def __init__(self): Project.__init__( self, "protobuf", - version="3.21.12", + version="3.23.0", lastversion_major=3, - archive_url="https://github.com/protocolbuffers/protobuf/releases/download/v{minor}.{micro}/protobuf-cpp-{version}.tar.gz", - hash="4eab9b524aa5913c6fffb20b2a8abf5ef7f95a80bc0701f3a6dbb4c607f73460", + archive_url="https://github.com/protocolbuffers/protobuf/releases/download/v{minor}.{micro}/protobuf-{minor}.{micro}.tar.gz", + hash="b29fc5fc13926f347b7a8b676ae1e63f7ccdb92c2fc8ca326bc3a883dcc168ac", dependencies=[ "cmake", "zlib", "ninja", + "abseil-cpp", ], ) @@ -39,7 +41,10 @@ def build(self): # We need to compile with STATIC_RUNTIME off since protobuf-c also compiles with it OFF CmakeProject.build( self, - cmake_params=r'-DBUILD_SHARED_LIBS=ON -Dprotobuf_DEBUG_POSTFIX="" -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_WITH_ZLIB=ON -Dprotobuf_MSVC_STATIC_RUNTIME=OFF', + cmake_params=r'-DBUILD_SHARED_LIBS=ON -Dprotobuf_DEBUG_POSTFIX="" -Dprotobuf_BUILD_TESTS=OFF ' + r"-Dprotobuf_WITH_ZLIB=ON -Dprotobuf_MSVC_STATIC_RUNTIME=OFF " + r'-Dprotobuf_ABSL_PROVIDER=package -DCMAKE_PREFIX_PATH="%(pkg_dir)s\lib" ' + r'-Dabsl_DIR="%(pkg_dir)s\lib\cmake\absl"', use_ninja=True, ) From 322d11d56f46ef78698e357c58b626957192ab2a Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 17 Feb 2024 21:04:34 -0500 Subject: [PATCH 2/6] Update abseil-cpp to version 20240116.1 --- gvsbuild/projects/abseil.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gvsbuild/projects/abseil.py b/gvsbuild/projects/abseil.py index 071667a2c..6a9d0403e 100644 --- a/gvsbuild/projects/abseil.py +++ b/gvsbuild/projects/abseil.py @@ -26,10 +26,10 @@ def __init__(self): Project.__init__( self, "abseil-cpp", - version="20230125.3", + version="20240116.1", archive_url="https://github.com/abseil/abseil-cpp/archive/refs/tags/{version}.tar.gz", archive_file_name="abseil-cpp-{version}.tar.gz", - hash="5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36", + hash="3c743204df78366ad2eaf236d6631d83f6bc928d1705dd0000b872e53b73dc6a", dependencies=["cmake", "ninja"], ) From 4eebc50c17659ff79dd70fa5e1e3711a5b05a44c Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 17 Feb 2024 21:07:06 -0500 Subject: [PATCH 3/6] Update copyright header --- gvsbuild/projects/abseil.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gvsbuild/projects/abseil.py b/gvsbuild/projects/abseil.py index 6a9d0403e..6f5227538 100644 --- a/gvsbuild/projects/abseil.py +++ b/gvsbuild/projects/abseil.py @@ -1,6 +1,4 @@ -# Copyright (C) 2016 - Yevgen Muntyan -# Copyright (C) 2016 - Ignacio Casal Quinteiro -# Copyright (C) 2016 - Arnavion +# Copyright (C) 2016 The Gvsbuild Authors # # 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 From bf0e18707e1224c77d6d73884e4fb0f050262496 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 17 Feb 2024 22:24:03 -0500 Subject: [PATCH 4/6] Update protobuf to version 3.25.3 --- gvsbuild/projects/protobuf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gvsbuild/projects/protobuf.py b/gvsbuild/projects/protobuf.py index 1d994c20b..5a6648917 100644 --- a/gvsbuild/projects/protobuf.py +++ b/gvsbuild/projects/protobuf.py @@ -25,10 +25,10 @@ def __init__(self): Project.__init__( self, "protobuf", - version="3.23.0", + version="3.25.3", lastversion_major=3, archive_url="https://github.com/protocolbuffers/protobuf/releases/download/v{minor}.{micro}/protobuf-{minor}.{micro}.tar.gz", - hash="b29fc5fc13926f347b7a8b676ae1e63f7ccdb92c2fc8ca326bc3a883dcc168ac", + hash="d19643d265b978383352b3143f04c0641eea75a75235c111cc01a1350173180e", dependencies=[ "cmake", "zlib", From 74745b8351a5fdefd82ae2c3efc0fc207ec52483 Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 17 Feb 2024 22:56:18 -0500 Subject: [PATCH 5/6] Update protobuf-c to version 1.5.0 --- gvsbuild/projects/protobuf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gvsbuild/projects/protobuf.py b/gvsbuild/projects/protobuf.py index 5a6648917..bc983d0fa 100644 --- a/gvsbuild/projects/protobuf.py +++ b/gvsbuild/projects/protobuf.py @@ -57,9 +57,9 @@ def __init__(self): Project.__init__( self, "protobuf-c", - version="1.4.1", + version="1.5.0", archive_url="https://github.com/protobuf-c/protobuf-c/releases/download/v{version}/protobuf-c-{version}.tar.gz", - hash="4cc4facd508172f3e0a4d3a8736225d472418aee35b4ad053384b137b220339f", + hash="7b404c63361ed35b3667aec75cc37b54298d56dd2bcf369de3373212cc06fd98", dependencies=[ "cmake", "protobuf", From 5b2246a5e26a17e2a72bb6d67334e2187ef5053f Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 17 Feb 2024 23:02:39 -0500 Subject: [PATCH 6/6] Fix can't find absl::absl_dll target --- .../protobuf/001-absl-dll-not-aliased.patch | 21 +++++++++++++++++++ gvsbuild/projects/protobuf.py | 6 ++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 gvsbuild/patches/protobuf/001-absl-dll-not-aliased.patch diff --git a/gvsbuild/patches/protobuf/001-absl-dll-not-aliased.patch b/gvsbuild/patches/protobuf/001-absl-dll-not-aliased.patch new file mode 100644 index 000000000..16bd9c475 --- /dev/null +++ b/gvsbuild/patches/protobuf/001-absl-dll-not-aliased.patch @@ -0,0 +1,21 @@ +Subject: [PATCH] Fix abseil dll namespace +--- +Index: cmake/abseil-cpp.cmake +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/cmake/abseil-cpp.cmake b/cmake/abseil-cpp.cmake +--- a/cmake/abseil-cpp.cmake (revision 7949a62bf88e1d4e97c93b3a7b8a8cfb201b713a) ++++ b/cmake/abseil-cpp.cmake (date 1708228635580) +@@ -46,8 +46,8 @@ + # in the minimum version of abseil required by protobuf, it is possible to + # always link absl::abseil_dll and absl::abseil_test_dll and remove the if + if(protobuf_ABSL_PROVIDER STREQUAL "package") +- set(protobuf_ABSL_USED_TARGETS absl::abseil_dll) +- set(protobuf_ABSL_USED_TEST_TARGETS absl::abseil_test_dll) ++ set(protobuf_ABSL_USED_TARGETS abseil_dll) ++ set(protobuf_ABSL_USED_TEST_TARGETS abseil_test_dll) + else() + set(protobuf_ABSL_USED_TARGETS abseil_dll) + set(protobuf_ABSL_USED_TEST_TARGETS abseil_test_dll) diff --git a/gvsbuild/projects/protobuf.py b/gvsbuild/projects/protobuf.py index bc983d0fa..1c9f99fd3 100644 --- a/gvsbuild/projects/protobuf.py +++ b/gvsbuild/projects/protobuf.py @@ -35,6 +35,9 @@ def __init__(self): "ninja", "abseil-cpp", ], + patches=[ + "001-absl-dll-not-aliased.patch", + ], ) def build(self): @@ -43,8 +46,7 @@ def build(self): self, cmake_params=r'-DBUILD_SHARED_LIBS=ON -Dprotobuf_DEBUG_POSTFIX="" -Dprotobuf_BUILD_TESTS=OFF ' r"-Dprotobuf_WITH_ZLIB=ON -Dprotobuf_MSVC_STATIC_RUNTIME=OFF " - r'-Dprotobuf_ABSL_PROVIDER=package -DCMAKE_PREFIX_PATH="%(pkg_dir)s\lib" ' - r'-Dabsl_DIR="%(pkg_dir)s\lib\cmake\absl"', + r'-Dprotobuf_ABSL_PROVIDER=package -DCMAKE_PREFIX_PATH="%(pkg_dir)s\lib" ', use_ninja=True, )