summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Bukowski2018-03-12 11:44:40 +0100
committerBenjamin Bukowski2018-03-12 11:44:40 +0100
commitc24f5f58d9b4ee1d7a1e8f84c78f1e7f1d238e53 (patch)
tree97150c5332c837b9239bc8bc9ffb1d2fb1c141cd
parentf2d15645b8627ce802621e9ffaa02bb1858e47b3 (diff)
downloadaur-c24f5f58d9b4ee1d7a1e8f84c78f1e7f1d238e53.tar.gz
Updated to v2.5.8; fix gcc6 and icu60 compilation errors
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD28
-rw-r--r--firebird-c++11.patch16
-rw-r--r--firebird-c++14.patch30
-rw-r--r--firebird-gcc6.patch272
-rw-r--r--firebird-icu60.patch60
6 files changed, 357 insertions, 69 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5bcfff454078..a3378ce57815 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Thu May 4 16:26:17 UTC 2017
+# Mon Mar 12 10:43:17 UTC 2018
pkgbase = firebird-superserver
pkgdesc = A open source SQL relational database management system (RDMS)
- pkgver = 2.5.7.27050
- pkgrel = 4
+ pkgver = 2.5.8.27089
+ pkgrel = 1
url = http://www.firebirdsql.org/
install = firebird-superserver.install
arch = i686
@@ -12,24 +12,24 @@ pkgbase = firebird-superserver
license = custom:IDPL
depends = icu
depends = libedit
- provides = libfbclient=2.5.7.27050
+ provides = libfbclient=2.5.8.27089
conflicts = firebird-classicserver
conflicts = libfbclient
options = !makeflags
- source = http://downloads.sourceforge.net/firebird/Firebird-2.5.7.27050-0.tar.bz2
+ source = https://github.com/FirebirdSQL/firebird/releases/download/R2_5_8/Firebird-2.5.8.27089-0.tar.bz2
source = default.password
source = firebird-tmpfiles.conf
source = firebird-sysusers.conf
source = firebird.service
- source = firebird-c++11.patch
- source = firebird-c++14.patch
- md5sums = fb34241e96f9707604bf6cd78357d5a2
+ source = firebird-icu60.patch
+ source = firebird-gcc6.patch
+ md5sums = 38862a3da39cf91f4f2366fb510f18a6
md5sums = ee601f52f1ba2481fe1f05b25d000bb8
md5sums = 79a1416e307e4dfb99640311b8defe07
md5sums = a43ab472f4d95e48ac21910bb33a5e86
md5sums = bd75e6d2afcbc000e3593b1a66ea4ef7
- md5sums = 5094347a8298143ca147edd49b552fe9
- md5sums = a02710203cee81b4f48b7bdca3b1b33f
+ md5sums = 70197fc801f9c66a6a1d7710e0c63718
+ md5sums = 9ab88cfcda674f9d28850a4f86f23741
pkgname = firebird-superserver
diff --git a/PKGBUILD b/PKGBUILD
index bc88dc4c68f5..685cbce2bf1a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,37 +1,38 @@
# Maintainer: Benjamin Bukowski <bbukowski@posteo.de>
pkgname=firebird-superserver
-pkgver=2.5.7.27050
-pkgrel=4
+_pkgver=2.5.8
+pkgver=$_pkgver.27089
+pkgrel=1
pkgdesc="A open source SQL relational database management system (RDMS)"
arch=('i686' 'x86_64')
url="http://www.firebirdsql.org/"
license=('custom:IPL' 'custom:IDPL')
depends=('icu' 'libedit')
-provides=("libfbclient=${pkgver}")
+provides=("libfbclient=$pkgver")
conflicts=('firebird-classicserver' 'libfbclient')
options=('!makeflags')
install=firebird-superserver.install
-source=("http://downloads.sourceforge.net/firebird/Firebird-$pkgver-0.tar.bz2"
+source=("https://github.com/FirebirdSQL/firebird/releases/download/R${_pkgver//./_}/Firebird-${pkgver}-0.tar.bz2"
'default.password'
'firebird-tmpfiles.conf'
'firebird-sysusers.conf'
'firebird.service'
- 'firebird-c++11.patch'
- 'firebird-c++14.patch')
+ 'firebird-icu60.patch'
+ 'firebird-gcc6.patch')
-md5sums=('fb34241e96f9707604bf6cd78357d5a2'
+md5sums=('38862a3da39cf91f4f2366fb510f18a6'
'ee601f52f1ba2481fe1f05b25d000bb8'
'79a1416e307e4dfb99640311b8defe07'
'a43ab472f4d95e48ac21910bb33a5e86'
'bd75e6d2afcbc000e3593b1a66ea4ef7'
- '5094347a8298143ca147edd49b552fe9'
- 'a02710203cee81b4f48b7bdca3b1b33f')
+ '70197fc801f9c66a6a1d7710e0c63718'
+ '9ab88cfcda674f9d28850a4f86f23741')
prepare() {
- cd $srcdir/Firebird-$pkgver-0
- patch -Np1 -i ../firebird-c++11.patch
- patch -Np0 -i ../firebird-c++14.patch
+ cd $srcdir/Firebird-$pkgver-0
+ patch -Np1 -i ../firebird-icu60.patch
+ patch -Np1 -i ../firebird-gcc6.patch
}
build() {
@@ -61,7 +62,8 @@ build() {
--with-system-icu \
--with-system-editline
- CXXFLAGS+=' -flifetime-dse=1' make
+ #CXXFLAGS+=' -flifetime-dse=1' make
+ make
}
package() {
diff --git a/firebird-c++11.patch b/firebird-c++11.patch
deleted file mode 100644
index 00de488eafb4..000000000000
--- a/firebird-c++11.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- Mode: Diff -*-
---- firebird/src/dudley/exe.epp
-+++ firebird/src/dudley/exe.epp
-@@ -2884,9 +2884,9 @@
- blr_parameter, 0, 0, 0,
- blr_parameter, 0, 1, 0,
- blr_parameter, 1, 0, 0,
-- blr_end,
-- blr_end,
-- blr_end,
-+ SCHAR(blr_end),
-+ SCHAR(blr_end),
-+ SCHAR(blr_end),
- blr_eoc
- };
- static FB_API_HANDLE req_handle;
diff --git a/firebird-c++14.patch b/firebird-c++14.patch
deleted file mode 100644
index d978cef23b86..000000000000
--- a/firebird-c++14.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/common/classes/alloc.cpp
-+++ src/common/classes/alloc.cpp
-@@ -2121,3 +2121,11 @@
- {
- Firebird::MemoryPool::globalFree(mem);
- }
-+void operator delete(void* mem, size_t) throw()
-+{
-+ Firebird::MemoryPool::globalFree(mem);
-+}
-+void operator delete[](void* mem, size_t) throw()
-+{
-+ Firebird::MemoryPool::globalFree(mem);
-+}
---- src/common/classes/alloc.h
-+++ src/common/classes/alloc.h
-@@ -491,13 +491,6 @@
-
- inline static MemoryPool* getDefaultMemoryPool() { return Firebird::MemoryPool::processMemoryPool; }
-
--// Global versions of operators new and delete
--void* operator new(size_t s) THROW_BAD_ALLOC;
--void* operator new[](size_t s) THROW_BAD_ALLOC;
--
--void operator delete(void* mem) throw();
--void operator delete[](void* mem) throw();
--
- #ifdef DEBUG_GDS_ALLOC
- inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line)
- {
diff --git a/firebird-gcc6.patch b/firebird-gcc6.patch
new file mode 100644
index 000000000000..1bc69073c13d
--- /dev/null
+++ b/firebird-gcc6.patch
@@ -0,0 +1,272 @@
+From acb2b707dae178dd5a7a03eb3e21d885ba971974 Mon Sep 17 00:00:00 2001
+From: AlexPeshkoff <alexander.peshkoff@gmail.com>
+Date: Tue, 23 Jan 2018 19:44:06 +0300
+Subject: [PATCH] Make it build with gcc6, also fixed most annoying warnings
+
+---
+ builds/posix/prefix.linux | 2 +-
+ builds/posix/prefix.linux_amd64 | 2 +-
+ builds/posix/prefix.linux_generic | 2 +-
+ src/common/classes/alloc.cpp | 11 ++++-
+ src/common/classes/alloc.h | 84 ++++++++++++++++++++++-----------------
+ src/include/fb_blk.h | 17 ++++----
+ src/jrd/gdsassert.h | 2 +-
+ 7 files changed, 68 insertions(+), 52 deletions(-)
+
+diff --git a/builds/posix/prefix.linux b/builds/posix/prefix.linux
+index 61f01813e4..b37373215e 100644
+--- a/builds/posix/prefix.linux
++++ b/builds/posix/prefix.linux
+@@ -18,7 +18,7 @@
+ #
+ # 2 Oct 2002, Nickolay Samofatov - Major cleanup
+
+-COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0
++COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -std=gnu++03 -fno-delete-null-pointer-checks
+ OPTIMIZE_FLAGS=-O3 -march=i586 -mtune=i686 -fno-omit-frame-pointer
+ WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
+
+diff --git a/builds/posix/prefix.linux_amd64 b/builds/posix/prefix.linux_amd64
+index 8a22b2c2e9..4f20d0aaea 100644
+--- a/builds/posix/prefix.linux_amd64
++++ b/builds/posix/prefix.linux_amd64
+@@ -18,7 +18,7 @@
+ #
+ # 2 Oct 2002, Nickolay Samofatov - Major cleanup
+
+-COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0
++COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -std=gnu++03 -fno-delete-null-pointer-checks
+ OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer
+ WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
+ CXXFLAGS:= $(CXXFLAGS) -fno-rtti
+diff --git a/builds/posix/prefix.linux_generic b/builds/posix/prefix.linux_generic
+index 1a25abebff..130f43bcf6 100644
+--- a/builds/posix/prefix.linux_generic
++++ b/builds/posix/prefix.linux_generic
+@@ -18,7 +18,7 @@
+ #
+ # 2 Oct 2002, Nickolay Samofatov - Major cleanup
+
+-COMMON_FLAGS=-DLINUX -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -fsigned-char
++COMMON_FLAGS=-DLINUX -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -fsigned-char -std=gnu++03 -fno-delete-null-pointer-checks
+
+ PROD_FLAGS=-ggdb -O3 -DNDEBUG $(COMMON_FLAGS)
+ DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS)
+diff --git a/src/common/classes/alloc.cpp b/src/common/classes/alloc.cpp
+index 7a7a76caab..84238cf25c 100644
+--- a/src/common/classes/alloc.cpp
++++ b/src/common/classes/alloc.cpp
+@@ -2199,6 +2199,13 @@ void* MemoryPool::globalAlloc(size_t s) THROW_BAD_ALLOC
+ }
+ #endif // LIBC_CALLS_NEW
+
++void* MemoryPool::calloc(size_t size ALLOC_PARAMS)
++{
++ void* block = allocate(size ALLOC_PASS_ARGS);
++ memset(block, 0, size);
++ return block;
++}
++
+ #if defined(DEV_BUILD)
+ void AutoStorage::ProbeStack() const
+ {
+@@ -2224,11 +2231,11 @@ void AutoStorage::ProbeStack() const
+
+ void* operator new(size_t s) THROW_BAD_ALLOC
+ {
+- return Firebird::MemoryPool::globalAlloc(s);
++ return Firebird::MemoryPool::globalAlloc(s ALLOC_ARGS);
+ }
+ void* operator new[](size_t s) THROW_BAD_ALLOC
+ {
+- return Firebird::MemoryPool::globalAlloc(s);
++ return Firebird::MemoryPool::globalAlloc(s ALLOC_ARGS);
+ }
+
+ void operator delete(void* mem) throw()
+diff --git a/src/common/classes/alloc.h b/src/common/classes/alloc.h
+index 6a27a7b4fb..81a26feffa 100644
+--- a/src/common/classes/alloc.h
++++ b/src/common/classes/alloc.h
+@@ -73,6 +73,16 @@
+
+ #endif
+
++#ifdef DEBUG_GDS_ALLOC
++#define ALLOC_ARGS , __FILE__, __LINE__
++#define ALLOC_PARAMS , const char* file, int line
++#define ALLOC_PASS_ARGS , file, line
++#else
++#define ALLOC_ARGS
++#define ALLOC_PARAMS
++#define ALLOC_PASS_ARGS
++#endif // DEBUG_GDS_ALLOC
++
+ namespace Firebird {
+
+ // Maximum number of B+ tree pages kept spare for tree allocation
+@@ -395,15 +405,11 @@ class MemoryPool
+ // This method is needed when C++ runtime can call
+ // redefined by us operator new before initialization of global variables.
+ #ifdef LIBC_CALLS_NEW
+- static void* globalAlloc(size_t s) THROW_BAD_ALLOC;
++ static void* globalAlloc(size_t s ALLOC_PARAMS) THROW_BAD_ALLOC;
+ #else // LIBC_CALLS_NEW
+- static void* globalAlloc(size_t s) THROW_BAD_ALLOC
++ static void* globalAlloc(size_t s ALLOC_PARAMS) THROW_BAD_ALLOC
+ {
+- return processMemoryPool->allocate(s
+-#ifdef DEBUG_GDS_ALLOC
+- ,__FILE__, __LINE__
+-#endif
+- );
++ return processMemoryPool->allocate(s ALLOC_PASS_ARGS);
+ }
+ #endif // LIBC_CALLS_NEW
+
+@@ -424,19 +430,7 @@ class MemoryPool
+ }
+
+ // Allocate zero-initialized block of memory
+- void* calloc(size_t size
+-#ifdef DEBUG_GDS_ALLOC
+- , const char* file = NULL, int line = 0
+-#endif
+- ) {
+- void* result = allocate(size
+-#ifdef DEBUG_GDS_ALLOC
+- , file, line
+-#endif
+- );
+- memset(result, 0, size);
+- return result;
+- }
++ void* calloc(size_t size ALLOC_PARAMS);
+
+ // Initialize and finalize global memory pool
+ static void init();
+@@ -498,40 +492,58 @@ using Firebird::MemoryPool;
+
+ inline static MemoryPool* getDefaultMemoryPool() { return Firebird::MemoryPool::processMemoryPool; }
+
+-#if (( ! __GNUC__ ) || ( __GNUC__ < 6 ))
++// operators new and delete
+
+-// Global versions of operators new and delete
+ void* operator new(size_t s) THROW_BAD_ALLOC;
+ void* operator new[](size_t s) THROW_BAD_ALLOC;
+
+-#endif
+-
+ void operator delete(void* mem) throw();
+ void operator delete[](void* mem) throw();
+
++inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) THROW_BAD_ALLOC
++{
++ return pool.allocate(s ALLOC_PASS_ARGS);
++}
++inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) THROW_BAD_ALLOC
++{
++ return pool.allocate(s ALLOC_PASS_ARGS);
++}
++
++inline void operator delete(void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) throw()
++{
++ MemoryPool::globalFree(mem);
++}
++inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) throw()
++{
++ MemoryPool::globalFree(mem);
++}
++
+ #ifdef DEBUG_GDS_ALLOC
+-inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line)
++
++inline void* operator new(size_t s ALLOC_PARAMS) THROW_BAD_ALLOC
+ {
+- return pool.allocate(s, file, line);
++ return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
+ }
+-inline void* operator new[](size_t s, Firebird::MemoryPool& pool, const char* file, int line)
++inline void* operator new[](size_t s ALLOC_PARAMS) THROW_BAD_ALLOC
+ {
+- return pool.allocate(s, file, line);
++ return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
+ }
+-#define FB_NEW(pool) new(pool, __FILE__, __LINE__)
+-#define FB_NEW_RPT(pool, count) new(pool, count, __FILE__, __LINE__)
+-#else
+-inline void* operator new(size_t s, Firebird::MemoryPool& pool)
++
++inline void operator delete(void* mem ALLOC_PARAMS) throw()
+ {
+- return pool.allocate(s);
++ MemoryPool::globalFree(mem);
+ }
+-inline void* operator new[](size_t s, Firebird::MemoryPool& pool)
++inline void operator delete[](void* mem ALLOC_PARAMS) throw()
+ {
+- return pool.allocate(s);
++ MemoryPool::globalFree(mem);
+ }
++
++#define FB_NEW(pool) new(pool, __FILE__, __LINE__)
++#define FB_NEW_RPT(pool, count) new(pool, count, __FILE__, __LINE__)
++#else // DEBUG_GDS_ALLOC
+ #define FB_NEW(pool) new(pool)
+ #define FB_NEW_RPT(pool, count) new(pool, count)
+-#endif
++#endif // DEBUG_GDS_ALLOC
+
+
+ namespace Firebird
+diff --git a/src/include/fb_blk.h b/src/include/fb_blk.h
+index b57443f3c4..fdd894408b 100644
+--- a/src/include/fb_blk.h
++++ b/src/include/fb_blk.h
+@@ -170,8 +170,8 @@ class pool_alloc : public TypedHandle<BLOCK_TYPE>
+
+ private:
+ // These operators are off-limits
+- void* operator new(size_t s) { return 0; }
+- void* operator new[](size_t s) { return 0; }
++ void* operator new(size_t s);
++ void* operator new[](size_t s);
+ };
+
+ template<typename RPT, BlockType BLOCK_TYPE = type_unknown>
+@@ -193,16 +193,13 @@ class pool_alloc_rpt : public TypedHandle<BLOCK_TYPE>
+
+ private:
+ // These operations are not supported on static repeat-base objects
+- void* operator new[](size_t s, MemoryPool& p)
+- { return 0; }
+- void operator delete[](void* mem, MemoryPool& p)
+- { }
+- void operator delete[](void* mem)
+- { }
++ void* operator new[](size_t s, MemoryPool& p);
++ void operator delete[](void* mem, MemoryPool& p);
++ void operator delete[](void* mem);
+
+ // These operators are off-limits
+- void* operator new(size_t s) { return 0; }
+- void* operator new[](size_t s) { return 0; }
++ void* operator new(size_t s);
++ void* operator new[](size_t s);
+ };
+
+ #endif // INCLUDE_FB_BLK
+diff --git a/src/jrd/gdsassert.h b/src/jrd/gdsassert.h
+index 9431479fc7..dd90c38823 100644
+--- a/src/jrd/gdsassert.h
++++ b/src/jrd/gdsassert.h
+@@ -28,7 +28,7 @@
+ #include <stdlib.h> // abort()
+ #include <stdio.h>
+
+-#define FB_ASSERT_FAILURE_STRING "Assertion (%s) failure: %s %"LINEFORMAT"\n"
++#define FB_ASSERT_FAILURE_STRING "Assertion (%s) failure: %s %" LINEFORMAT "\n"
+
+ #ifdef SUPERCLIENT
+
diff --git a/firebird-icu60.patch b/firebird-icu60.patch
new file mode 100644
index 000000000000..6e6340e84d28
--- /dev/null
+++ b/firebird-icu60.patch
@@ -0,0 +1,60 @@
+From 317ab524ddb41f8d41c16b9d4fe7e87bb953883b Mon Sep 17 00:00:00 2001
+From: AlexPeshkoff <alexander.peshkoff@gmail.com>
+Date: Sat, 10 Feb 2018 19:53:37 +0300
+Subject: [PATCH] Make it build with icu60
+
+---
+ src/intl/cs_icu.cpp | 5 +++++
+ src/intl/cv_icu.cpp | 5 +++++
+ src/jrd/unicode_util.cpp | 6 ++++++
+ 3 files changed, 16 insertions(+)
+
+diff --git a/src/intl/cs_icu.cpp b/src/intl/cs_icu.cpp
+index c4f9a3f52e..94e32540cf 100644
+--- a/src/intl/cs_icu.cpp
++++ b/src/intl/cs_icu.cpp
+@@ -28,6 +28,11 @@
+ #include "../intl/ldcommon.h"
+ #include "cs_icu.h"
+ #include "cv_icu.h"
++
++#undef U_SHOW_CPLUSPLUS_API
++#define U_SHOW_CPLUSPLUS_API 0
++#undef UCHAR_TYPE
++#define UCHAR_TYPE uint16_t
+ #include "unicode/ucnv.h"
+
+
+diff --git a/src/intl/cv_icu.cpp b/src/intl/cv_icu.cpp
+index f5f559f011..f226cc25de 100644
+--- a/src/intl/cv_icu.cpp
++++ b/src/intl/cv_icu.cpp
+@@ -28,6 +28,11 @@
+ #include "../intl/ldcommon.h"
+ #include "ld_proto.h"
+ #include "cv_icu.h"
++
++#undef U_SHOW_CPLUSPLUS_API
++#define U_SHOW_CPLUSPLUS_API 0
++#undef UCHAR_TYPE
++#define UCHAR_TYPE uint16_t
+ #include "unicode/ucnv.h"
+
+
+diff --git a/src/jrd/unicode_util.cpp b/src/jrd/unicode_util.cpp
+index 19f7016d8d..bda87f9b25 100644
+--- a/src/jrd/unicode_util.cpp
++++ b/src/jrd/unicode_util.cpp
+@@ -37,6 +37,12 @@
+ #include "../common/classes/init.h"
+ #include "../common/classes/objects_array.h"
+ #include "../common/classes/rwlock.h"
++
++#undef U_SHOW_CPLUSPLUS_API
++#define U_SHOW_CPLUSPLUS_API 0
++#undef UCHAR_TYPE
++#define UCHAR_TYPE uint16_t
++
+ #include "unicode/ustring.h"
+ #include "unicode/utrans.h"
+ #include "unicode/uchar.h"