summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2022-04-21 15:58:32 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2022-04-21 15:58:32 -0700
commitb34976e29004248d9d6eb8b7ed483004aaf3e4f6 (patch)
tree29eaee07fb3daad773794aadc8bcf4754b21b201
parentRebuild for python 3.10 and boost 1.78 (diff)
download0ad-b34976e29004248d9d6eb8b7ed483004aaf3e4f6.tar.xz
Rebuild with glibc 2.35 patch
-rw-r--r--PKGBUILD14
-rw-r--r--glibc-2.35.patch157
2 files changed, 168 insertions, 3 deletions
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 <vladislavbelov@3db68df2-c116-0410-a063-a993310a9797>
+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<AtlasMessage::sEnvironmentSettings> 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<float>(M_PI), static_cast<float>(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<std::wstring> 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<float>(M_PI), static_cast<float>(M_PI)), wxSizerFlags().Expand());
++ sunSizer->Add(new VariableSliderBox(
++ scrolledWindow, _("Sun elevation"), g_EnvironmentSettings.sunelevation, -static_cast<float>(M_PI) / 2.0f, static_cast<float>(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);
+ }