From b34976e29004248d9d6eb8b7ed483004aaf3e4f6 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Thu, 21 Apr 2022 15:58:32 -0700 Subject: Rebuild with glibc 2.35 patch --- PKGBUILD | 14 +++-- glibc-2.35.patch | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+), 3 deletions(-) create mode 100644 glibc-2.35.patch diff --git a/PKGBUILD b/PKGBUILD index 8a50435..03881b1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -9,7 +9,7 @@ pkgname=0ad pkgver=a25.b _pkgver=0.0.25b-alpha -pkgrel=3 +pkgrel=4 pkgdesc="Cross-platform, 3D and historically-based real-time strategy game" arch=('x86_64') url="https://play0ad.com/" @@ -17,14 +17,22 @@ license=('GPL2' 'CCPL') depends=('0ad-data' 'binutils' 'boost-libs' 'curl' 'enet' 'libogg' 'libpng' 'libvorbis' 'libxml2' 'openal' 'sdl2' 'wxgtk3' 'zlib' 'libgl' 'glu' 'fmt' 'gloox' 'miniupnpc' 'libminiupnpc.so' 'icu' 'nspr' 'libsodium') -makedepends=('boost' 'cmake' 'mesa' 'zip' 'libsm' 'rust') +makedepends=('boost' 'cmake' 'mesa' 'zip' 'libsm' 'rust' 'python') +options=('!lto') # breaks spidermonkey linking (https://bugs.gentoo.org/746947) source=("https://releases.wildfiregames.com/$pkgname-$_pkgver-unix-build.tar.xz" + "glibc-2.35.patch" "python-3.10.patch") +sha512sums=('e8069897b97b381099ab5ec5868d27e96c699105b3307054d1bc7bf9236a537f02625ba9034892d91f3e951b4f95c9ce5fb75ed0a7c14b8a294882482fd9c1b4' + 'e56fa4a3a43f7510dde50d5fd0ccda2f935d9ad2aac44d9af9e89109c655b605f8ef582e1188be3dc1d42b7feef0caefa0ec514776696603c237f054fd6778c9' + '42df5eb7c4a99b31365b7f15c5bcd76c978339f2837eb8bc6ec371979429d0f0a6e31e870f6851aa40fc4859cb3e82f74821a01d04b82b486342db0fa60bf55e') b2sums=('674d69d625137709a186f9273607dc353fc99aea68ef3f2ea5031dbe2f684176910d757c3f03c7fbdac475d30708be448b71f5020d27a65c346bf147223bcb9d' + 'e7d372e68b450f98631239ab0bb0c9eafdedb48f8a788037ce60851f28258a962a31a22afe80968bc1d706017acf7e9b25821fbe282db889ef534670b6954c89' '6b6853eacbeadfe7e95382c97572c60b1838d5f4b0b925c2bb977be76db6a0a2ac97376089a42fca6a7956319b69c56ec0d2fb59a1114002d708486582de346d') prepare() { - patch -d $pkgname-$_pkgver -p1 < python-3.10.patch # Fix spidermonkey build with Python 3.10 + cd $pkgname-$_pkgver + patch -Np1 -i ../glibc-2.35.patch # https://code.wildfiregames.com/rP26536 + patch -Np1 -i ../python-3.10.patch # Fix spidermonkey build with Python 3.10 } build() { diff --git a/glibc-2.35.patch b/glibc-2.35.patch new file mode 100644 index 0000000..624790a --- /dev/null +++ b/glibc-2.35.patch @@ -0,0 +1,157 @@ +From 7df614338cbd41f5e254ce75f649490b2637e1d0 Mon Sep 17 00:00:00 2001 +From: vladislavbelov +Date: Thu, 3 Mar 2022 18:10:05 +0000 +Subject: [PATCH] Replaces M_PIf by M_PI in Atlas, fixes compilation with gcc + 11.2.0 and glibc 2.35. + +There was added a workaround in glibc to fix tests. + +Refs: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103735 +https://sourceware.org/bugzilla/show_bug.cgi?id=28713 + + +git-svn-id: https://svn.wildfiregames.com/public/ps/trunk@26536 3db68df2-c116-0410-a063-a993310a9797 +--- + .../Sections/Environment/Environment.cpp | 88 ++++++++++++------- + 1 file changed, 57 insertions(+), 31 deletions(-) + +diff --git a/source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/Environment.cpp b/source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/Environment.cpp +index d4796ec1f2f..2cc265230d9 100644 +--- a/source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/Environment.cpp ++++ b/source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Environment/Environment.cpp +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2021 Wildfire Games. ++/* Copyright (C) 2022 Wildfire Games. + * This file is part of 0 A.D. + * + * 0 A.D. is free software: you can redistribute it and/or modify +@@ -29,8 +29,6 @@ using AtlasMessage::Shareable; + + static Observable g_EnvironmentSettings; + +-const float M_PIf = 3.14159265f; +- + ////////////////////////////////////////////////////////////////////////// + + class VariableSliderBox : public wxPanel +@@ -85,12 +83,15 @@ class VariableListBox : public wxPanel + : wxPanel(parent), + m_Var(var) + { +- m_Conn = g_EnvironmentSettings.RegisterObserver(0, &VariableListBox::OnSettingsChange, this); ++ m_Conn = g_EnvironmentSettings.RegisterObserver( ++ 0, &VariableListBox::OnSettingsChange, this); + + m_Sizer = new wxStaticBoxSizer(wxVERTICAL, this, label); + SetSizer(m_Sizer); + +- m_Combo = new wxComboBox(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_READONLY), ++ m_Combo = new wxComboBox( ++ this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, ++ wxArrayString(), wxCB_READONLY), + m_Sizer->Add(m_Combo, wxSizerFlags().Expand()); + } + +@@ -206,8 +207,9 @@ static void SendToGame(const AtlasMessage::sEnvironmentSettings& settings) + POST_COMMAND(SetEnvironmentSettings, (settings)); + } + +-EnvironmentSidebar::EnvironmentSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebarContainer, wxWindow* bottomBarContainer) +-: Sidebar(scenarioEditor, sidebarContainer, bottomBarContainer) ++EnvironmentSidebar::EnvironmentSidebar( ++ ScenarioEditor& scenarioEditor, wxWindow* sidebarContainer, wxWindow* bottomBarContainer) ++ : Sidebar(scenarioEditor, sidebarContainer, bottomBarContainer) + { + wxSizer* scrollSizer = new wxBoxSizer(wxVERTICAL); + wxScrolledWindow* scrolledWindow = new wxScrolledWindow(this); +@@ -217,15 +219,24 @@ EnvironmentSidebar::EnvironmentSidebar(ScenarioEditor& scenarioEditor, wxWindow* + + wxSizer* waterSizer = new wxStaticBoxSizer(wxVERTICAL, scrolledWindow, _T("Water settings")); + scrollSizer->Add(waterSizer, wxSizerFlags().Expand()); +- waterSizer->Add(new wxButton(scrolledWindow, ID_RecomputeWaterData, _("Reset Water Data")), wxSizerFlags().Expand()); +- waterSizer->Add(m_WaterTypeList = new VariableListBox(scrolledWindow, _("Water Type"), g_EnvironmentSettings.watertype), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableSliderBox(scrolledWindow, _("Water height"), g_EnvironmentSettings.waterheight, 0.f, 1.2f), wxSizerFlags().Expand()); +- waterSizer->Add(new wxButton(scrolledWindow, ID_PickWaterHeight, _("Pick Water Height")), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableSliderBox(scrolledWindow, _("Water waviness"), g_EnvironmentSettings.waterwaviness, 0.f, 10.f), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableSliderBox(scrolledWindow, _("Water murkiness"), g_EnvironmentSettings.watermurkiness, 0.f, 1.f), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableSliderBox(scrolledWindow, _("Wind angle"), g_EnvironmentSettings.windangle, -M_PIf, M_PIf), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableColorBox(scrolledWindow, _("Water color"), g_EnvironmentSettings.watercolor), wxSizerFlags().Expand()); +- waterSizer->Add(new VariableColorBox(scrolledWindow, _("Water tint"), g_EnvironmentSettings.watertint), wxSizerFlags().Expand()); ++ waterSizer->Add(new wxButton( ++ scrolledWindow, ID_RecomputeWaterData, _("Reset Water Data")), wxSizerFlags().Expand()); ++ waterSizer->Add(m_WaterTypeList = new VariableListBox( ++ scrolledWindow, _("Water Type"), g_EnvironmentSettings.watertype), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Water height"), g_EnvironmentSettings.waterheight, 0.f, 1.2f), wxSizerFlags().Expand()); ++ waterSizer->Add(new wxButton( ++ scrolledWindow, ID_PickWaterHeight, _("Pick Water Height")), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Water waviness"), g_EnvironmentSettings.waterwaviness, 0.f, 10.f), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Water murkiness"), g_EnvironmentSettings.watermurkiness, 0.f, 1.f), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Wind angle"), g_EnvironmentSettings.windangle, -static_cast(M_PI), static_cast(M_PI)), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableColorBox( ++ scrolledWindow, _("Water color"), g_EnvironmentSettings.watercolor), wxSizerFlags().Expand()); ++ waterSizer->Add(new VariableColorBox( ++ scrolledWindow, _("Water tint"), g_EnvironmentSettings.watertint), wxSizerFlags().Expand()); + + std::vector list; + list.push_back(L"ocean"); list.push_back(L"lake"); list.push_back(L"clap"); +@@ -235,25 +246,40 @@ EnvironmentSidebar::EnvironmentSidebar(ScenarioEditor& scenarioEditor, wxWindow* + wxSizer* sunSizer = new wxStaticBoxSizer(wxVERTICAL, scrolledWindow, _T("Sun / lighting settings")); + scrollSizer->Add(sunSizer, wxSizerFlags().Expand().Border(wxTOP, 8)); + +- sunSizer->Add(new VariableSliderBox(scrolledWindow, _("Sun rotation"), g_EnvironmentSettings.sunrotation, -M_PIf, M_PIf), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableSliderBox(scrolledWindow, _("Sun elevation"), g_EnvironmentSettings.sunelevation, -M_PIf/2, M_PIf/2), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableSliderBox(scrolledWindow, _("Sun overbrightness"), g_EnvironmentSettings.sunoverbrightness, 1.0f, 3.0f), wxSizerFlags().Expand()); +- sunSizer->Add(new LightControl(scrolledWindow, wxSize(150, 150), g_EnvironmentSettings)); +- sunSizer->Add(new VariableColorBox(scrolledWindow, _("Sun color"), g_EnvironmentSettings.suncolor), wxSizerFlags().Expand()); +- sunSizer->Add(m_SkyList = new VariableListBox(scrolledWindow, _("Sky set"), g_EnvironmentSettings.skyset), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableSliderBox(scrolledWindow, _("Fog Factor"), g_EnvironmentSettings.fogfactor, 0.0f, 0.01f), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableSliderBox(scrolledWindow, _("Fog Thickness"), g_EnvironmentSettings.fogmax, 0.5f, 0.0f), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableColorBox(scrolledWindow, _("Fog color"), g_EnvironmentSettings.fogcolor), wxSizerFlags().Expand()); +- sunSizer->Add(new VariableColorBox(scrolledWindow, _("Ambient color"), g_EnvironmentSettings.ambientcolor), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Sun rotation"), g_EnvironmentSettings.sunrotation, -static_cast(M_PI), static_cast(M_PI)), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Sun elevation"), g_EnvironmentSettings.sunelevation, -static_cast(M_PI) / 2.0f, static_cast(M_PI) / 2.0f), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Sun overbrightness"), g_EnvironmentSettings.sunoverbrightness, 1.0f, 3.0f), wxSizerFlags().Expand()); ++ sunSizer->Add(new LightControl( ++ scrolledWindow, wxSize(150, 150), g_EnvironmentSettings)); ++ sunSizer->Add(new VariableColorBox( ++ scrolledWindow, _("Sun color"), g_EnvironmentSettings.suncolor), wxSizerFlags().Expand()); ++ sunSizer->Add(m_SkyList = new VariableListBox( ++ scrolledWindow, _("Sky set"), g_EnvironmentSettings.skyset), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Fog Factor"), g_EnvironmentSettings.fogfactor, 0.0f, 0.01f), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Fog Thickness"), g_EnvironmentSettings.fogmax, 0.5f, 0.0f), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableColorBox( ++ scrolledWindow, _("Fog color"), g_EnvironmentSettings.fogcolor), wxSizerFlags().Expand()); ++ sunSizer->Add(new VariableColorBox( ++ scrolledWindow, _("Ambient color"), g_EnvironmentSettings.ambientcolor), wxSizerFlags().Expand()); + + wxSizer* postProcSizer = new wxStaticBoxSizer(wxVERTICAL, scrolledWindow, _T("Post-processing settings")); + scrollSizer->Add(postProcSizer, wxSizerFlags().Expand().Border(wxTOP, 8)); + +- postProcSizer->Add(m_PostEffectList = new VariableListBox(scrolledWindow, _("Post Effect"), g_EnvironmentSettings.posteffect), wxSizerFlags().Expand()); +- postProcSizer->Add(new VariableSliderBox(scrolledWindow, _("Brightness"), g_EnvironmentSettings.brightness, -0.5f, 0.5f), wxSizerFlags().Expand()); +- postProcSizer->Add(new VariableSliderBox(scrolledWindow, _("Contrast (HDR)"), g_EnvironmentSettings.contrast, 0.5f, 1.5f), wxSizerFlags().Expand()); +- postProcSizer->Add(new VariableSliderBox(scrolledWindow, _("Saturation"), g_EnvironmentSettings.saturation, 0.0f, 2.0f), wxSizerFlags().Expand()); +- postProcSizer->Add(new VariableSliderBox(scrolledWindow, _("Bloom"), g_EnvironmentSettings.bloom, 0.2f, 0.0f), wxSizerFlags().Expand()); ++ postProcSizer->Add(m_PostEffectList = new VariableListBox( ++ scrolledWindow, _("Post Effect"), g_EnvironmentSettings.posteffect), wxSizerFlags().Expand()); ++ postProcSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Brightness"), g_EnvironmentSettings.brightness, -0.5f, 0.5f), wxSizerFlags().Expand()); ++ postProcSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Contrast (HDR)"), g_EnvironmentSettings.contrast, 0.5f, 1.5f), wxSizerFlags().Expand()); ++ postProcSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Saturation"), g_EnvironmentSettings.saturation, 0.0f, 2.0f), wxSizerFlags().Expand()); ++ postProcSizer->Add(new VariableSliderBox( ++ scrolledWindow, _("Bloom"), g_EnvironmentSettings.bloom, 0.2f, 0.0f), wxSizerFlags().Expand()); + + m_Conn = g_EnvironmentSettings.RegisterObserver(0, &SendToGame); + } -- cgit v1.2.1