update to 4.0.3
This commit is contained in:
parent
f078ce37ed
commit
434cc21db1
Binary file not shown.
BIN
Firebird-4.0.3.2975-0.tar.xz
Normal file
BIN
Firebird-4.0.3.2975-0.tar.xz
Normal file
Binary file not shown.
@ -1,36 +0,0 @@
|
||||
From: Michal Kubecek <mkubecek@suse.cz>
|
||||
Date: Mon, 25 Apr 2016 08:55:36 +0200
|
||||
Subject: Provide sized global delete operators when compiled in C++14 mode
|
||||
Patch-mainline: submitted
|
||||
Git-commit: 038f9fbf559e56032e4cb49eb7ce4c3ead23fda9
|
||||
References: bsc#964466 CORE-5099
|
||||
|
||||
---
|
||||
src/common/classes/alloc.h | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/common/classes/alloc.h b/src/common/classes/alloc.h
|
||||
index b1026ce2aac4..fda5bfebb0cc 100644
|
||||
--- a/src/common/classes/alloc.h
|
||||
+++ b/src/common/classes/alloc.h
|
||||
@@ -331,6 +331,16 @@ inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
|
||||
+#if __cplusplus >= 201402L
|
||||
+inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) throw()
|
||||
+{
|
||||
+ MemoryPool::globalFree(mem);
|
||||
+}
|
||||
+inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) throw()
|
||||
+{
|
||||
+ MemoryPool::globalFree(mem);
|
||||
+}
|
||||
+#endif
|
||||
#ifdef DEBUG_GDS_ALLOC
|
||||
|
||||
#ifdef __clang__
|
||||
--
|
||||
2.8.2
|
||||
|
||||
|
||||
@ -1,16 +1,6 @@
|
||||
From: Michal Kubecek <mkubecek@suse.cz>
|
||||
Date: Tue, 12 Jun 2012 14:32:44 +0200
|
||||
Subject: add pkgconfig files
|
||||
|
||||
---
|
||||
builds/install/arch-specific/linux/misc/fbclient.pc.in | 10 ++++++++++
|
||||
configure.ac | 1 +
|
||||
2 files changed, 11 insertions(+)
|
||||
create mode 100644 builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||
|
||||
diff --git a/builds/install/arch-specific/linux/misc/fbclient.pc.in b/builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||
new file mode 100644
|
||||
index 000000000000..d49fdc5821c5
|
||||
index 0000000..d49fdc5
|
||||
--- /dev/null
|
||||
+++ b/builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||
@@ -0,0 +1,10 @@
|
||||
@ -25,18 +15,14 @@ index 000000000000..d49fdc5821c5
|
||||
+Cflags: -I${includedir}/firebird
|
||||
+Libs: -L${libdir} -lfbclient
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 717f5eccc53d..60b3aaa5b08b 100644
|
||||
index 0a3de36..922c778 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1200,6 +1200,7 @@ case "$PLATFORM" in
|
||||
@@ -1307,6 +1307,7 @@ case "$PLATFORM" in
|
||||
gen/install/misc/firebird.init.d.gentoo:builds/install/arch-specific/linux/firebird.init.d.gentoo.in
|
||||
gen/install/misc/firebird.init.d.slackware:builds/install/arch-specific/linux/firebird.init.d.slackware.in
|
||||
gen/install/misc/rc.config.firebird:builds/install/arch-specific/linux/rc.config.firebird.in
|
||||
+ gen/install/misc/fbclient.pc:builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||
gen/Release/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/linuxLibrary.sh.in
|
||||
gen/install/misc/firebird-classic@.service:builds/install/arch-specific/linux/firebird-classic.service.in
|
||||
gen/install/misc/firebird-classic.socket:builds/install/arch-specific/linux/firebird-classic.socket.in
|
||||
--
|
||||
2.3.4
|
||||
|
||||
|
||||
gen/install/misc/firebird.service:builds/install/arch-specific/linux/firebird.service.in
|
||||
],
|
||||
|
||||
24
autoconf.patch
Normal file
24
autoconf.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 3fe8f6510de79689a26868e244840b24dcb19567 Mon Sep 17 00:00:00 2001
|
||||
From: AlexPeshkoff <alexander.peshkoff@gmail.com>
|
||||
Date: Wed, 23 Nov 2022 20:30:03 +0300
|
||||
Subject: [PATCH] Fixed #7394: autoconf 2.72 support
|
||||
|
||||
---
|
||||
configure.ac | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 75af92e862c..800453d25fa 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -696,8 +696,9 @@ if test "$STD_EDITLINE" = "true"; then
|
||||
AC_CHECK_LIB(readline, readline, [READLINE=readline EDITLINE_FLG=Y],
|
||||
[STD_EDITLINE=false
|
||||
if test "$EDITLINE_FLG" = "Y"; then
|
||||
- AC_MSG_WARN([[[--with-system-editline specified, not found. Using bundled editline]]])])))
|
||||
+ AC_MSG_WARN([[[--with-system-editline specified, not found. Using bundled editline]]])
|
||||
fi
|
||||
+ ])))
|
||||
fi
|
||||
XE_RESTORE_ENV()
|
||||
|
||||
12
btyacc-honour-build-flags.patch
Normal file
12
btyacc-honour-build-flags.patch
Normal file
@ -0,0 +1,12 @@
|
||||
--- a/extern/btyacc/Makefile 2022-08-12 15:24:40.846774310 +0200
|
||||
+++ a/extern/btyacc/Makefile 2022-08-12 15:26:20.954809720 +0200
|
||||
@@ -12,7 +12,7 @@
|
||||
# across all of our supported compilers/platforms.
|
||||
|
||||
# Vanilla CFLAGS
|
||||
-CFLAGS=
|
||||
+CFLAGS=-fPIC -pie
|
||||
|
||||
# No LDFLAGS
|
||||
#LDFLAGS=
|
||||
|
||||
144
c++17.patch
Normal file
144
c++17.patch
Normal file
@ -0,0 +1,144 @@
|
||||
From ff49d71b0cdbab75f8a22717c4f88343a5961868 Mon Sep 17 00:00:00 2001
|
||||
From: Adriano dos Santos Fernandes <adrianosf@gmail.com>
|
||||
Date: Mon, 31 May 2021 08:55:26 -0300
|
||||
Subject: [PATCH] Set POSIX build to use C++17.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 4 ++--
|
||||
builds/posix/make.defaults | 2 +-
|
||||
builds/posix/prefix.freebsd_amd64 | 2 +-
|
||||
configure.ac | 2 +-
|
||||
examples/extauth/Makefile | 2 +-
|
||||
examples/interfaces/makefile | 2 +-
|
||||
extern/icu/android/aarch64/config.sh | 2 +-
|
||||
extern/icu/android/armv7a/config.sh | 4 ++--
|
||||
extern/icu/android/linux/config.sh | 2 +-
|
||||
9 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 620fd032af4..5f336efd611 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -206,14 +206,14 @@ if (MINGW)
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX)
|
||||
|
||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4 -std=c++11")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4 -std=c++17")
|
||||
endif()
|
||||
|
||||
if (UNIX)
|
||||
set(OS_DIR posix)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse4 -std=c++11")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse4 -std=c++17")
|
||||
|
||||
if (NOT CMAKE_CROSSCOMPILING)
|
||||
set(LIB_readline readline)
|
||||
diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
|
||||
index d96e89053fa..57bbb006865 100755
|
||||
--- a/builds/posix/make.defaults
|
||||
+++ b/builds/posix/make.defaults
|
||||
@@ -103,7 +103,7 @@ GLOB_OPTIONS:=
|
||||
#____________________________________________________________________________
|
||||
|
||||
# Global c++ flags: firebird needs no RTTI, choose build standard
|
||||
-PLUSPLUS_FLAGS:= -fno-rtti -std=c++11
|
||||
+PLUSPLUS_FLAGS:= -fno-rtti -std=c++17
|
||||
|
||||
# If this is defined then we use special rules useful for developers only
|
||||
IsDeveloper = @DEVEL_FLG@
|
||||
diff --git a/builds/posix/prefix.freebsd_amd64 b/builds/posix/prefix.freebsd_amd64
|
||||
index f27567a2715..0736d87e935 100644
|
||||
--- a/builds/posix/prefix.freebsd_amd64
|
||||
+++ b/builds/posix/prefix.freebsd_amd64
|
||||
@@ -26,4 +26,4 @@ DEV_FLAGS=-ggdb -DFREEBSD -DAMD64 -pipe -MMD -p -fPIC -Wall -Wno-non-virtual-dto
|
||||
# This file must be compiled with SSE4.2 support
|
||||
%/CRC32C.o: CXXFLAGS += -msse4
|
||||
|
||||
-CXXFLAGS := $(CXXFLAGS) -std=c++11
|
||||
+CXXFLAGS := $(CXXFLAGS) -std=c++17
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9b40be43101..e4a83cf8d3b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -899,7 +899,7 @@ dnl if 64-bit mode, then archive tool, ar, needs -X64 option
|
||||
fi
|
||||
|
||||
XE_SAVE_ENV()
|
||||
-CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||
+CXXFLAGS="$CXXFLAGS -std=c++17"
|
||||
AC_CACHE_CHECK([whether the C++ compiler understands noexcept], [ac_cv_cxx_noexcept], [
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int f(int x) noexcept { return x + 1; }]], [[]])],
|
||||
[ac_cv_cxx_noexcept=yes], [ac_cv_cxx_noexcept=no])])
|
||||
diff --git a/examples/extauth/Makefile b/examples/extauth/Makefile
|
||||
index 9da7bbd357f..3c8b878d225 100644
|
||||
--- a/examples/extauth/Makefile
|
||||
+++ b/examples/extauth/Makefile
|
||||
@@ -61,7 +61,7 @@ KEYGEN_objects=$(INTERMED)/keygen.o
|
||||
TCWRAP_objects=$(INTERMED)/TcWrapper.o
|
||||
KEY_AUTH_objects=$(INTERMED)/ExtAuth.o
|
||||
|
||||
-CXXFLAGS=-std=c++11 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE)
|
||||
+CXXFLAGS=-std=c++17 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE)
|
||||
LDFLAGS=-pthread -L$(LIB) -Wl,-rpath,'$$ORIGIN/../lib' $(TOMCRYPT_LINK)
|
||||
|
||||
LINK_LIBS=-lfbclient -ltomcrypt -ltommath
|
||||
diff --git a/examples/interfaces/makefile b/examples/interfaces/makefile
|
||||
index 153c3d558dc..b65dba90a7d 100644
|
||||
--- a/examples/interfaces/makefile
|
||||
+++ b/examples/interfaces/makefile
|
||||
@@ -33,7 +33,7 @@ FBCLIENT = $(FIREBIRD)/lib/libfbclient.so
|
||||
# General Compiler and linker Defines for Linux
|
||||
# ---------------------------------------------------------------------
|
||||
CXX = c++
|
||||
-CXXFLAGS= -c -Wall -g3 -std=c++11 -fno-rtti $(INCLUDE)
|
||||
+CXXFLAGS= -c -Wall -g3 -std=c++17 -fno-rtti $(INCLUDE)
|
||||
RM = rm -f
|
||||
|
||||
#
|
||||
diff --git a/extern/icu/android/aarch64/config.sh b/extern/icu/android/aarch64/config.sh
|
||||
index 51ef623a3c5..f464d930ec2 100755
|
||||
--- a/extern/icu/android/aarch64/config.sh
|
||||
+++ b/extern/icu/android/aarch64/config.sh
|
||||
@@ -18,7 +18,7 @@
|
||||
--enable-dyload \
|
||||
--with-cross-build=$CROSS_BUILD_DIR \
|
||||
CFLAGS='-Os' \
|
||||
- CXXFLAGS='--std=c++11' \
|
||||
+ CXXFLAGS='--std=c++17' \
|
||||
LDFLAGS='-static-libstdc++' \
|
||||
CC=aarch64-linux-android24-clang \
|
||||
CXX=aarch64-linux-android24-clang++ \
|
||||
diff --git a/extern/icu/android/armv7a/config.sh b/extern/icu/android/armv7a/config.sh
|
||||
index fe1bd037456..0e458c690e7 100755
|
||||
--- a/extern/icu/android/armv7a/config.sh
|
||||
+++ b/extern/icu/android/armv7a/config.sh
|
||||
@@ -18,10 +18,10 @@
|
||||
--enable-dyload \
|
||||
--with-cross-build=$CROSS_BUILD_DIR \
|
||||
CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||
- CXXFLAGS='--std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||
+ CXXFLAGS='--std=c++17 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||
LDFLAGS='-static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8' \
|
||||
CC=arm-linux-androideabi-clang \
|
||||
CXX=arm-linux-androideabi-clang++ \
|
||||
AR=arm-linux-androideabi-ar \
|
||||
RANLIB=arm-linux-androideabi-ranlib \
|
||||
- --with-data-packaging=archive
|
||||
\ No newline at end of file
|
||||
+ --with-data-packaging=archive
|
||||
diff --git a/extern/icu/android/linux/config.sh b/extern/icu/android/linux/config.sh
|
||||
index a8b56024aae..6e7d9c5f5c8 100755
|
||||
--- a/extern/icu/android/linux/config.sh
|
||||
+++ b/extern/icu/android/linux/config.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
../source/runConfigureICU Linux --prefix=$PWD/prebuilt \
|
||||
CFLAGS="-Os" \
|
||||
- CXXFLAGS="--std=c++11" \
|
||||
+ CXXFLAGS="--std=c++17" \
|
||||
--enable-static \
|
||||
--enable-shared=no \
|
||||
--enable-extras=no \
|
||||
@ -4,24 +4,51 @@ Forwarded: no
|
||||
|
||||
--- a/extern/cloop/Makefile
|
||||
+++ b/extern/cloop/Makefile
|
||||
@@ -6,7 +6,7 @@ TARGET := release
|
||||
|
||||
CC := $(CC)
|
||||
CXX := $(CXX)
|
||||
-LD := $(CXX)
|
||||
+LD := $(CXX) $(LDFLAGS)
|
||||
|
||||
SRC_DIR := src
|
||||
BUILD_DIR := build
|
||||
@@ -27,8 +27,9 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$
|
||||
@@ -27,8 +27,8 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$
|
||||
OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C))
|
||||
OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP))
|
||||
|
||||
-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
|
||||
-CXX_FLAGS := $(C_FLAGS)
|
||||
+COMMON_C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
|
||||
+C_FLAGS := $(COMMON_C_FLAGS) $(CFLAGS) $(CPPFLAGS)
|
||||
+CXX_FLAGS := $(COMMON_C_FLAGS) $(CXXFLAGS) $(CPPFLAGS)
|
||||
FPC_FLAGS := -Mdelphi
|
||||
-CXX_FLAGS := $(C_FLAGS) -std=c++11
|
||||
+C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter $(CPPFLAGS) $(CFLAGS)
|
||||
+CXX_FLAGS := $(C_FLAGS) $(CXXFLAGS) -std=c++11
|
||||
FPC_FLAGS := -Mdelphi -Cg
|
||||
|
||||
ifeq ($(TARGET),release)
|
||||
ifeq ($(shell uname),FreeBSD)
|
||||
@@ -94,7 +94,7 @@ $(BIN_DIR)/cloop: \
|
||||
$(OBJ_DIR)/cloop/Main.o \
|
||||
| $(BIN_DIR)
|
||||
|
||||
- $(LD) $^ -o $@ $(LIBS)
|
||||
+ $(LD) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||
|
||||
$(SRC_DIR)/tests/test1/CalcCApi.h: $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl
|
||||
$(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl c-header $@ CALC_C_API_H CALC_I
|
||||
@@ -121,23 +121,23 @@ $(BIN_DIR)/test1-c$(SHRLIB_EXT): \
|
||||
$(OBJ_DIR)/tests/test1/CalcCApi.o \
|
||||
$(OBJ_DIR)/tests/test1/CTest.o \
|
||||
|
||||
- $(LD) $^ -shared $(DL_LIB) -o $@ $(LIBS)
|
||||
+ $(LD) $(LDFLAGS) $^ -shared $(DL_LIB) -o $@ $(LIBS)
|
||||
|
||||
$(BIN_DIR)/test1-c$(EXE_EXT): \
|
||||
$(OBJ_DIR)/tests/test1/CalcCApi.o \
|
||||
$(OBJ_DIR)/tests/test1/CTest.o \
|
||||
|
||||
- $(LD) $^ $(DL_LIB) -o $@ $(LIBS)
|
||||
+ $(LD) $(LDFLAGS) $^ $(DL_LIB) -o $@ $(LIBS)
|
||||
|
||||
$(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \
|
||||
$(OBJ_DIR)/tests/test1/CppTest.o \
|
||||
|
||||
- $(LD) $^ -shared $(DL_LIB) -o $@ $(LIBS)
|
||||
+ $(LD) $(LDFLAGS) $^ -shared $(DL_LIB) -o $@ $(LIBS)
|
||||
|
||||
$(BIN_DIR)/test1-cpp$(EXE_EXT): \
|
||||
$(OBJ_DIR)/tests/test1/CppTest.o \
|
||||
|
||||
- $(LD) $^ $(DL_LIB) -o $@ $(LIBS)
|
||||
+ $(LD) $(LDFLAGS) $^ $(DL_LIB) -o $@ $(LIBS)
|
||||
|
||||
$(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \
|
||||
$(SRC_DIR)/tests/test1/PascalClasses.pas \
|
||||
|
||||
45
firebird-configure-c99.patch
Normal file
45
firebird-configure-c99.patch
Normal file
@ -0,0 +1,45 @@
|
||||
Add missing int return types for main in the configure script.
|
||||
Implicit ints are a language feature that was removed in C99.
|
||||
|
||||
Submitted upstream: <https://github.com/FirebirdSQL/firebird/pull/7407>
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 05edb5ec9410ff50..0474dc850dfd04bc 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1038,7 +1038,7 @@ AC_CHECK_FUNCS(sem_init)
|
||||
if test "$ac_cv_func_sem_init" = "yes"; then
|
||||
AC_MSG_CHECKING(for working sem_init())
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
|
||||
- main () {
|
||||
+ int main () {
|
||||
sem_t s;
|
||||
return sem_init(&s,0,0);
|
||||
}
|
||||
@@ -1079,7 +1079,7 @@ AC_SYS_LARGEFILE
|
||||
if test "$ac_cv_sys_file_offset_bits" = "no"; then
|
||||
AC_MSG_CHECKING(for native large file support)
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <unistd.h>
|
||||
- main () {
|
||||
+ int main () {
|
||||
return !(sizeof(off_t) == 8);
|
||||
}]])],[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
|
||||
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)],[])
|
||||
@@ -1126,7 +1126,7 @@ dnl EKU: try to determine the alignment of long and double
|
||||
dnl replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
|
||||
AC_MSG_CHECKING(alignment of long)
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
|
||||
-main () {
|
||||
+int main () {
|
||||
struct s {
|
||||
char a;
|
||||
union { long long x; sem_t y; } b;
|
||||
@@ -1137,7 +1137,7 @@ AC_MSG_RESULT($ac_cv_c_alignment)
|
||||
AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
|
||||
|
||||
AC_MSG_CHECKING(alignment of double)
|
||||
-AC_RUN_IFELSE([AC_LANG_SOURCE([[main () {
|
||||
+AC_RUN_IFELSE([AC_LANG_SOURCE([[int main () {
|
||||
struct s {
|
||||
char a;
|
||||
double b;
|
||||
@ -1 +0,0 @@
|
||||
d /var/run/firebird 0775 firebird firebird -
|
||||
14
firebird.service
Normal file
14
firebird.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Firebird Database Server
|
||||
After=network.target
|
||||
Conflicts=firebird-classic.socket
|
||||
|
||||
[Service]
|
||||
User=firebird
|
||||
Group=firebird
|
||||
ExecStart=/usr/sbin/fbguard -forever
|
||||
RuntimeDirectory=firebird
|
||||
RuntimeDirectoryMode=0775
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
406
firebird.spec
406
firebird.spec
@ -1,72 +1,171 @@
|
||||
%global ver 3.0.10
|
||||
%global rev 33601
|
||||
%global ver 4.0.3
|
||||
%global rev 2975
|
||||
|
||||
Name: firebird
|
||||
Version: %{ver}.%{rev}
|
||||
Release: 4
|
||||
Release: 1
|
||||
|
||||
Summary: SQL relational database management system
|
||||
License: Interbase
|
||||
URL: http://www.firebirdsql.org/
|
||||
|
||||
Source0: https://github.com/FirebirdSQL/firebird/releases/download/v%{ver}/Firebird-%{ver}.%{rev}-0.tar.bz2
|
||||
Source0: https://github.com/FirebirdSQL/firebird/releases/download/v%{ver}/Firebird-%{ver}.%{rev}-0.tar.xz
|
||||
Source1: firebird-logrotate
|
||||
Source2: firebird.conf
|
||||
Source2: firebird.service
|
||||
Source3: fb_config
|
||||
|
||||
Patch0000: add-pkgconfig-files.patch
|
||||
Patch0001: Provide-sized-global-delete-operators-when-compiled.patch
|
||||
Patch0002: obsolete-syslogd.target.patch
|
||||
Patch0003: honour-buildflags.patch
|
||||
Patch0004: no-copy-from-icu.patch
|
||||
Patch0005: cloop-honour-build-flags.patch
|
||||
Patch0007: 0001-Port-to-RISC-V-64-bit-riscv64.patch
|
||||
Patch0008: 0001-add-loongarch64-support-for-Firebird.patch
|
||||
Patch0009: 0002-Modify-PROD_FLAGS-and-DEV_FLAGS-parameters-for-loongarch64.patch
|
||||
Patch0001: no-copy-from-icu.patch
|
||||
Patch0002: cloop-honour-build-flags.patch
|
||||
# from upstream
|
||||
Patch0003: c++17.patch
|
||||
Patch0004: noexcept.patch
|
||||
Patch0005: autoconf.patch
|
||||
Patch0006: btyacc-honour-build-flags.patch
|
||||
Patch0007: firebird-configure-c99.patch
|
||||
#Patch0008: 0001-Port-to-RISC-V-64-bit-riscv64.patch
|
||||
#Patch0009: 0001-add-loongarch64-support-for-Firebird.patch
|
||||
#Patch0010: 0002-Modify-PROD_FLAGS-and-DEV_FLAGS-parameters-for-loongarch64.patch
|
||||
|
||||
BuildRequires: autoconf automake libtommath-devel libtool ncurses-devel libicu-devel
|
||||
BuildRequires: libedit-devel gcc-c++ libstdc++-static systemd-units chrpath zlib-devel procmail
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtommath-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: libedit-devel
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libstdc++-static
|
||||
BuildRequires: systemd-units
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: procmail
|
||||
BuildRequires: make
|
||||
BuildRequires: libtomcrypt-devel
|
||||
BuildRequires: unzip
|
||||
BuildRequires: sed
|
||||
|
||||
Requires(post): systemd-units
|
||||
Requires(preun):systemd-units
|
||||
Requires(postun):systemd-units
|
||||
Requires: logrotate
|
||||
Requires(postun): /usr/sbin/userdel
|
||||
Requires(postun): /usr/sbin/groupdel
|
||||
Requires(pre): /usr/sbin/groupadd
|
||||
Requires(pre): /usr/sbin/useradd
|
||||
Recommends: logrotate
|
||||
Requires: libfbclient2 = %{version}-%{release}
|
||||
Requires: libib-util = %{version}-%{release}
|
||||
Requires: %{name}-utils = %{version}-%{release}
|
||||
|
||||
Obsoletes: firebird-arch < 4.0
|
||||
Obsoletes: firebird-filesystem < 4.0
|
||||
Obsoletes: firebird-classic-common < 4.0
|
||||
Obsoletes: firebird-classic < 4.0
|
||||
Obsoletes: firebird-superclassic < 4.0
|
||||
Obsoletes: firebird-superserver < 4.0
|
||||
Conflicts: firebird-arch < 4.0
|
||||
Conflicts: firebird-filesystem < 4.0
|
||||
Conflicts: firebird-classic-common < 4.0
|
||||
Conflicts: firebird-classic < 4.0
|
||||
Conflicts: firebird-superclassic < 4.0
|
||||
Conflicts: firebird-superserver < 4.0
|
||||
|
||||
Provides: firebird-utils = %{version}-%{release} libfbclient2 = %{version}-%{release} libib-util = %{version}-%{release}
|
||||
Obsoletes: firebird-utils < %{version}-%{release} libfbclient2 < %{version}-%{release} libib-util < %{version}-%{release}
|
||||
Obsoletes: firebird-arch < 3.0 firebird-filesystem < 3.0 firebird-classic-common < 3.0 firebird-classic < 3.0
|
||||
Obsoletes: firebird-superclassic < 3.0 firebird-superserver < 3.0 firebird-libfbclient < 3.0 firebird-libfbembed < 3.0
|
||||
Conflicts: firebird-arch < 3.0 firebird-filesystem < 3.0 firebird-classic-common < 3.0 firebird-classic < 3.0
|
||||
Conflicts: firebird-superclassic < 3.0 firebird-superserver < 3.0 firebird-libfbclient < 3.0
|
||||
|
||||
%description
|
||||
Firebird is an open-source SQL relational database management system that
|
||||
runs on Linux, Microsoft Windows, macOS and several Unix platforms.
|
||||
Firebird works excellently under concurrency. It has high performance,
|
||||
and powerful language support for stored procedures and triggers.
|
||||
This package also contains utility functions used by User-Defined Functions (UDF)
|
||||
for memory management etc and shared client library for Firebird SQL server.
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
%package devel
|
||||
Requires: firebird = %{version}-%{release} pkgconfig
|
||||
|
||||
%package devel
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: libfbclient2-devel = %{version}-%{release}
|
||||
Summary: UDF support library for Firebird SQL server
|
||||
Provides: libfbclient2-devel = %{version}-%{release} firebird-examples = %{version}-%{release}
|
||||
Obsoletes: libfbclient2-devel < %{version}-%{release} firebird-examples < %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
%description devel
|
||||
This package is needed for development of client applications and user
|
||||
defined functions (UDF) for Firebird SQL server. It also contains development
|
||||
files for Firebird SQL server client library.
|
||||
defined functions (UDF) for Firebird SQL server.
|
||||
|
||||
%package help
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
|
||||
%package -n libib-util
|
||||
Summary: Firebird SQL UDF support library
|
||||
|
||||
%description -n libib-util
|
||||
libib_util contains utility functions used by
|
||||
User-Defined Functions (UDF) for memory management etc.
|
||||
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
|
||||
%package -n libfbclient2
|
||||
Summary: Firebird SQL server client library
|
||||
Obsoletes: firebird-libfbclient < 4.0
|
||||
Conflicts: firebird-libfbclient < 4.0
|
||||
Obsoletes: firebird-libfbembed < 4.0
|
||||
|
||||
%description -n libfbclient2
|
||||
Shared client library for Firebird SQL server.
|
||||
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
|
||||
%package -n libfbclient2-devel
|
||||
Summary: Development libraries and headers for Firebird SQL server
|
||||
Requires: %{name}-devel = %{version}-%{release}
|
||||
Requires: libfbclient2 = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libfbclient2-devel
|
||||
Development files for Firebird SQL server client library.
|
||||
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
|
||||
%package help
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Summary: Documentation for Firebird SQL server
|
||||
BuildArch: noarch
|
||||
Provides: firebird-doc = %{version}-%{release}
|
||||
Obsoletes: firebird-doc < %{version}-%{release}
|
||||
|
||||
%description help
|
||||
%description help
|
||||
Documentation for Firebird SQL server.
|
||||
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
|
||||
%package utils
|
||||
Requires: libfbclient2 = %{version}-%{release}
|
||||
Summary: Firebird SQL user utilities
|
||||
|
||||
%description utils
|
||||
Firebird SQL user utilities.
|
||||
|
||||
Firebird is a relational database offering many ANSI SQL standard features
|
||||
that runs on Linux, Windows, MacOS and a variety of Unix platforms.
|
||||
Firebird offers excellent concurrency, high performance, and powerful
|
||||
language support for stored procedures and triggers. It has been used
|
||||
in production systems, under a variety of names, since 1981.
|
||||
|
||||
%prep
|
||||
%autosetup -n Firebird-%{ver}.%{rev}-0 -p1
|
||||
|
||||
@ -74,139 +173,167 @@ Documentation for Firebird SQL server.
|
||||
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||
export CXXFLAGS="${CFLAGS} -fno-delete-null-pointer-checks"
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
%configure --prefix=%{_prefix} --disable-binreloc --with-system-editline --with-fbbin=%{_bindir} \
|
||||
--with-fbsbin=%{_sbindir} --with-fbconf=%{_sysconfdir}/firebird --with-fblib=%{_libdir} \
|
||||
--with-fbinclude=%{_includedir}/firebird --with-fbdoc=%{_defaultdocdir}/firebird \
|
||||
--with-fbudf=%{_libdir}/firebird/udf --with-fbsample=%{_defaultdocdir}/firebird/sample \
|
||||
--with-fbsample-db=%{_localstatedir}/lib/firebird/data/ --with-fbhelp=%{_localstatedir}/lib/firebird/system/ \
|
||||
--with-fbintl=%{_libdir}/firebird/intl --with-fbmisc=%{_datadir}/firebird/misc \
|
||||
--with-fbsecure-db=%{_localstatedir}/lib/firebird/secdb/ --with-fbmsg=%{_localstatedir}/lib/firebird/system/ \
|
||||
--with-fblog=%{_localstatedir}/log/firebird --with-fbglock=%{_var}/run/firebird \
|
||||
--with-fbplugins=%{_libdir}/firebird/plugins
|
||||
%configure --disable-rpath --prefix=%{_prefix} \
|
||||
--with-system-editline \
|
||||
--with-fbbin=%{_bindir} --with-fbsbin=%{_sbindir} \
|
||||
--with-fbconf=%{_sysconfdir}/%{name} \
|
||||
--with-fblib=%{_libdir} --with-fbinclude=%{_includedir} \
|
||||
--with-fbdoc=%{_defaultdocdir}/%{name} \
|
||||
--with-fbsample=%{_defaultdocdir}/%{name}/sample \
|
||||
--with-fbsample-db=%{_localstatedir}/lib/%{name}/data \
|
||||
--with-fbhelp=%{_localstatedir}/lib/%{name}/system \
|
||||
--with-fbintl=%{_libdir}/%{name}/intl \
|
||||
--with-fbmisc=%{_datadir}/%{name}/misc \
|
||||
--with-fbsecure-db=%{_localstatedir}/lib/%{name}/secdb \
|
||||
--with-fbmsg=%{_localstatedir}/lib/%{name}/system \
|
||||
--with-fblog=%{_localstatedir}/log/%{name} \
|
||||
--with-fbglock=%{_rundir}/%{name} \
|
||||
--with-fbplugins=%{_libdir}/%{name}/plugins \
|
||||
--with-fbtzdata=%{_localstatedir}/lib/%{name}/tzdata
|
||||
|
||||
%make_build
|
||||
make %{?_smp_mflags}
|
||||
cd gen
|
||||
make -f Makefile.install buildRoot
|
||||
chmod -R u+w buildroot%{_docdir}/firebird
|
||||
|
||||
sed -i '/linkFiles "/d' ./install/makeInstallImage.sh
|
||||
./install/makeInstallImage.sh
|
||||
chmod -R u+w buildroot%{_docdir}/%{name}
|
||||
|
||||
%install
|
||||
chmod u+rw,a+rx gen/buildroot/usr/include/firebird/firebird/impl
|
||||
chmod u+rw,a+rx gen/buildroot/%{_includedir}/firebird/impl
|
||||
cp -r gen/buildroot/* ${RPM_BUILD_ROOT}/
|
||||
install -d ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig
|
||||
cp -v gen/install/misc/*.pc ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/
|
||||
|
||||
cd ${RPM_BUILD_ROOT}
|
||||
rm -vf .%{_sbindir}/*.sh && mv -v .%{_sbindir}/fb_config .%{_libdir}/
|
||||
install -pm 0755 %{SOURCE3} %{buildroot}%{_sbindir}/fb_config
|
||||
rm -vf .%{_includedir}/firebird/perf.h .%{_includedir}/*.h .%{_libdir}/libicu*.so
|
||||
chmod -R u+w .%{_docdir}/firebird
|
||||
rm -vf .%{_datadir}/firebird/misc/{firebird.init.*,firebird.xinetd,rc.config.firebird}
|
||||
mv -v .%{_sysconfdir}/firebird/{README,WhatsNew} .%{_docdir}/firebird/
|
||||
mv -v .%{_sysconfdir}/firebird/{IDPLicense,IPLicense}.txt .%{_docdir}/firebird/
|
||||
mv -v .%{_bindir}/gstat{,-fb} && mv -v .%{_bindir}/isql{,-fb}
|
||||
rm -vf .%{_sbindir}/*.sh
|
||||
mv -v .%{_sbindir}/fb_config .%{_libdir}/
|
||||
install -p -m 0755 %{SOURCE3} %{buildroot}%{_sbindir}/fb_config
|
||||
rm -vf .%{_includedir}/perf.h
|
||||
rm -vf .%{_libdir}/libicu*.so
|
||||
chmod -R u+w .%{_docdir}/%{name}
|
||||
mv -v .%{_datadir}/%{name}/misc/upgrade/udf/* .%{_docdir}/%{name}/
|
||||
rm -rvf .%{_datadir}/%{name}/misc
|
||||
mv -v .%{_sysconfdir}/%{name}/README.md .%{_sysconfdir}/%{name}/CHANGELOG.md \
|
||||
.%{_docdir}/%{name}/
|
||||
mv -v .%{_sysconfdir}/%{name}/IDPLicense.txt .%{_docdir}/%{name}/
|
||||
mv -v .%{_sysconfdir}/%{name}/IPLicense.txt .%{_docdir}/%{name}/
|
||||
mv -v .%{_bindir}/gstat .%{_bindir}/gstat-fb
|
||||
mv -v .%{_bindir}/isql .%{_bindir}/isql-fb
|
||||
rm -rvf .%{_defaultdocdir}/%{name}/sample/prebuilt
|
||||
|
||||
install -d .%{_localstatedir}/log/firebird .%{_sysconfdir}/logrotate.d
|
||||
echo 1 > .%{_localstatedir}/log/firebird/firebird.log
|
||||
sed "s@firebird.log@%{_localstatedir}/log/firebird/firebird.log@g" %{SOURCE1} > .%{_sysconfdir}/logrotate.d/firebird
|
||||
mkdir -p .%{_localstatedir}/log/%{name}
|
||||
mkdir -p .%{_sysconfdir}/logrotate.d
|
||||
echo 1 > .%{_localstatedir}/log/%{name}/%{name}.log
|
||||
sed "s@%{name}.log@%{_localstatedir}/log/%{name}/%{name}.log@g" %{SOURCE1} > .%{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
install -d .%{_tmpfilesdir} && cp %{SOURCE2} .%{_tmpfilesdir}/
|
||||
|
||||
install -d .%{_unitdir}
|
||||
cp .%{_datadir}/firebird/misc/firebird-superserver.service .%{_unitdir}/firebird-superserver.service
|
||||
|
||||
# remove rpath info
|
||||
for ff in $(find %{buildroot}/ -executable -type f -exec file '{}' ';' | grep "\<ELF\>" | awk -F ':' '{print $1}')
|
||||
do
|
||||
if [ ! -u "$ff" ]; then
|
||||
if [ -w "$ff" ]; then
|
||||
chrpath -d $ff
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# add rpath path /usr/lib/systemd in ld.so.cond.d
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
||||
echo "/usr/lib/systemd" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||
mkdir -p .%{_unitdir}
|
||||
cp -f %{SOURCE2} .%{_unitdir}/%{name}.service
|
||||
|
||||
|
||||
%pre
|
||||
%pre
|
||||
# Create the firebird group if it doesn't exist
|
||||
getent group %{name} > /dev/null || /usr/sbin/groupadd -r %{name}
|
||||
getent passwd %{name} >/dev/null || /usr/sbin/useradd -d / -g %{name} -s /sbin/nologin -r %{name}
|
||||
|
||||
getent group firebird || /usr/sbin/groupadd -r firebird
|
||||
getent passwd firebird >/dev/null || /usr/sbin/useradd -d / -g firebird -s /sbin/nologin -r firebird
|
||||
|
||||
|
||||
oldLine=$(grep "^gds_db" /etc/services)
|
||||
# Add gds_db to /etc/services if needed
|
||||
FileName=/etc/services
|
||||
newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol"
|
||||
oldLine=`grep "^gds_db" $FileName`
|
||||
if [ -z "$oldLine" ]; then
|
||||
echo "gds_db 3050/tcp # Firebird SQL Database Remote Protocol" >> /etc/services
|
||||
echo $newLine >> $FileName
|
||||
fi
|
||||
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
systemd-tmpfiles --create %{_tmpfilesdir}/firebird.conf
|
||||
%systemd_post firebird-superserver.service
|
||||
%post
|
||||
%systemd_post firebird.service
|
||||
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
%systemd_postun_with_restart firebird-superserver.service
|
||||
%postun
|
||||
%systemd_postun_with_restart firebird.service
|
||||
|
||||
|
||||
%preun
|
||||
%systemd_preun firebird-superserver.service
|
||||
%preun
|
||||
%systemd_preun firebird.service
|
||||
|
||||
|
||||
%files
|
||||
%{_docdir}/firebird/IDPLicense.txt
|
||||
%{_docdir}/firebird/IPLicense.txt
|
||||
%{_docdir}/%{name}/IDPLicense.txt
|
||||
%{_docdir}/%{name}/IPLicense.txt
|
||||
%{_bindir}/fbtracemgr
|
||||
%{_sbindir}/firebird
|
||||
%{_sbindir}/fbguard
|
||||
%{_sbindir}/fb_lock_print
|
||||
%dir %{_sysconfdir}/firebird
|
||||
%config(noreplace) %{_sysconfdir}/firebird/*.conf
|
||||
%dir %{_libdir}/firebird
|
||||
%dir %{_datadir}/firebird
|
||||
%{_libdir}/firebird/*
|
||||
%{_datadir}/firebird/misc
|
||||
%dir %{_sysconfdir}/%{name}
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/databases.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/fbtrace.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/firebird.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/plugins.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/replication.conf
|
||||
%dir %{_libdir}/%{name}
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_libdir}/%{name}/intl
|
||||
%{_libdir}/%{name}/plugins
|
||||
|
||||
%dir %{_localstatedir}/lib/firebird
|
||||
%dir %attr(0700,firebird,firebird) %{_localstatedir}/lib/firebird/secdb
|
||||
%dir %attr(0700,firebird,firebird) %{_localstatedir}/lib/firebird/data
|
||||
%dir %attr(0755,firebird,firebird) %{_localstatedir}/lib/firebird/system
|
||||
%attr(0600,firebird,firebird) %config(noreplace) %{_localstatedir}/lib/firebird/secdb/security3.fdb
|
||||
%attr(0644,firebird,firebird) %{_localstatedir}/lib/firebird/system/help.fdb
|
||||
%attr(0644,firebird,firebird) %{_localstatedir}/lib/firebird/system/firebird.msg
|
||||
%ghost %dir %attr(0775,firebird,firebird) %{_var}/run/firebird
|
||||
%ghost %attr(0644,firebird,firebird) %{_var}/run/firebird/fb_guard
|
||||
%attr(0644,root,root) %{_tmpfilesdir}/firebird.conf
|
||||
%dir %{_localstatedir}/log/firebird
|
||||
%config(noreplace) %attr(0664,firebird,firebird) %{_localstatedir}/log/firebird/firebird.log
|
||||
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/firebird
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||
%dir %{_localstatedir}/lib/%{name}
|
||||
%dir %attr(0700,%{name},%{name}) %{_localstatedir}/lib/%{name}/secdb
|
||||
%dir %attr(0700,%{name},%{name}) %{_localstatedir}/lib/%{name}/data
|
||||
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/system
|
||||
%dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/tzdata
|
||||
%attr(0600,firebird,firebird) %config(noreplace) %{_localstatedir}/lib/%{name}/secdb/security4.fdb
|
||||
%attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/system/help.fdb
|
||||
%attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/system/firebird.msg
|
||||
%attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/tzdata/*.res
|
||||
%ghost %dir %attr(0775,%{name},%{name}) /run/%{name}
|
||||
%ghost %attr(0644,%{name},%{name}) /run/%{name}/fb_guard
|
||||
%dir %{_localstatedir}/log/%{name}
|
||||
%config(noreplace) %attr(0664,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log
|
||||
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
%defattr(0755,root,root,0755)
|
||||
%{_unitdir}/firebird-superserver.service
|
||||
%{_libdir}/libfbclient.so.*
|
||||
%{_libdir}/libib_util.so
|
||||
%{_bindir}/*
|
||||
%attr(0644,root,root) %{_unitdir}/%{name}.service
|
||||
|
||||
%files devel
|
||||
%{_includedir}/firebird
|
||||
|
||||
%files devel
|
||||
%{_includedir}/*.h
|
||||
%{_includedir}/%{name}
|
||||
%{_libdir}/fb_config
|
||||
%{_sbindir}/fb_config
|
||||
|
||||
|
||||
%files -n libfbclient2
|
||||
%{_libdir}/libfbclient.so.*
|
||||
|
||||
|
||||
%files -n libfbclient2-devel
|
||||
%{_libdir}/libfbclient.so
|
||||
%{_libdir}/pkgconfig/fbclient.pc
|
||||
%{_docdir}/firebird/sample
|
||||
%attr(0600,firebird,firebird) %{_localstatedir}/lib/firebird/data/employee.fdb
|
||||
|
||||
%files help
|
||||
%{_docdir}/firebird
|
||||
%exclude %{_docdir}/firebird/sample
|
||||
%exclude %{_docdir}/firebird/IDPLicense.txt
|
||||
%exclude %{_docdir}/firebird/IPLicense.txt
|
||||
|
||||
%files -n libib-util
|
||||
%{_libdir}/libib_util.so
|
||||
|
||||
|
||||
%files help
|
||||
%{_docdir}/%{name}
|
||||
%exclude %{_docdir}/%{name}/IDPLicense.txt
|
||||
%exclude %{_docdir}/%{name}/IPLicense.txt
|
||||
%attr(0600,firebird,firebird) %{_localstatedir}/lib/%{name}/data/employee.fdb
|
||||
|
||||
|
||||
%files utils
|
||||
%{_bindir}/gstat-fb
|
||||
%{_bindir}/fbsvcmgr
|
||||
%{_bindir}/gbak
|
||||
%{_bindir}/gfix
|
||||
%{_bindir}/gpre
|
||||
%{_bindir}/gsec
|
||||
%{_bindir}/isql-fb
|
||||
%{_bindir}/nbackup
|
||||
%{_bindir}/qli
|
||||
%{_bindir}/gsplit
|
||||
|
||||
%changelog
|
||||
* Thu Aug 10 2023 dillon chen <dillon.chen@gmail.com> - 4.0.3.2975-1
|
||||
- Update to 4.0.3.2975
|
||||
|
||||
* Thu May 25 2023 Wenlong Zhang <zhangwenlong@loongson.cn> - 3.0.10.33601-4
|
||||
- Modify PROD_FLAGS and DEV_FLAGS parameters for loongarch64
|
||||
|
||||
@ -240,3 +367,4 @@ systemd-tmpfiles --create %{_tmpfilesdir}/firebird.conf
|
||||
* Mon Dec 2 2019 lihao <lihao129@huawei.com> - 3.0.3.32900-5
|
||||
- Package Init
|
||||
|
||||
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
Description: improved support for build flags
|
||||
The first change makes linking makeHeader use the same CPP/CXX/LD flags as the
|
||||
rest of the sources.
|
||||
The second change stops btyacc/Makefile from ignoring CFLAGS from the
|
||||
environment.
|
||||
Both changes help compile/link with default hardening flags.
|
||||
Author: Damyan Ivanov <dmn@debian.org>
|
||||
|
||||
--- a/builds/posix/Makefile.in
|
||||
+++ b/builds/posix/Makefile.in
|
||||
@@ -602,7 +602,7 @@ MAKE_HEADER_Src = $(addprefix $(SRC_ROOT
|
||||
MAKE_HEADER_Bin = ./makeHeader
|
||||
|
||||
$(INCLUDE_DEST)/ibase.h: $(SRC_IBASE_ExtraFiles)
|
||||
- $(STATICEXE_LINK) -o $(MAKE_HEADER_Bin) $(MAKE_HEADER_Src)
|
||||
+ $(STATICEXE_LINK) $(EXE_LINK_OPTIONS) $(LINK_OPTS) $(CPPFLAGS) -o $(MAKE_HEADER_Bin) -fPIE $(MAKE_HEADER_Src)
|
||||
$(CP) $^ .
|
||||
$(MAKE_HEADER_Bin) <ibase.h >$@
|
||||
$(RM) -f ibase.h
|
||||
--- a/extern/btyacc/Makefile
|
||||
+++ b/extern/btyacc/Makefile
|
||||
@@ -42,7 +42,7 @@ OTHERS = README README.BYACC \
|
||||
all: $(PROGRAM)
|
||||
|
||||
$(PROGRAM): $(OBJS) $(LIBS)
|
||||
- $(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
|
||||
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
|
||||
|
||||
clean:; rm -f $(OBJS)
|
||||
|
||||
--- a/builds/posix/make.defaults
|
||||
+++ b/builds/posix/make.defaults
|
||||
@@ -166,8 +166,8 @@ LD = @CXX@
|
||||
|
||||
LIB_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS)
|
||||
STATICLIB_LINK = $(AR) crus
|
||||
-EXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS)
|
||||
-STATICEXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS)
|
||||
+EXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) $(LDFLAGS)
|
||||
+STATICEXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) $(LDFLAGS)
|
||||
|
||||
LINK_LIBS = @LIBS@
|
||||
STATICLINK_LIBS = @LIBS@
|
||||
@ -1,15 +1,51 @@
|
||||
Description: Link isql with ICU instead of embedding part of it in the source
|
||||
Author: Damyan Ivanov <dmn@debian.org>
|
||||
|
||||
--- a/src/isql/isql.epp
|
||||
+++ b/src/isql/isql.epp
|
||||
@@ -173,34 +173,6 @@ const char* UNKNOWN = "*unknown*";
|
||||
|
||||
namespace IcuUtil
|
||||
{
|
||||
- // Duplicate from ICU to not need to link ISQL with it. It's used by U8_NEXT_UNSAFE.
|
||||
- static const uint8_t utf8_countTrailBytes[256] = {
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
-
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
-
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
-
|
||||
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
-
|
||||
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
- 3, 3, 3, 3, 3,
|
||||
- 3, 3, 3, /* illegal in Unicode */
|
||||
- 4, 4, 4, 4, /* illegal in Unicode */
|
||||
- 5, 5, /* illegal in Unicode */
|
||||
- 0, 0 /* illegal bytes 0xfe and 0xff */
|
||||
- };
|
||||
-
|
||||
// Return the number of characters of a string.
|
||||
static unsigned charLength(SSHORT charset, unsigned len, const char* str)
|
||||
{
|
||||
--- a/builds/posix/Makefile.in
|
||||
+++ b/builds/posix/Makefile.in
|
||||
@@ -425,7 +425,8 @@ $(GSTAT): $(GSTAT_Objects) $(COMMON_LIB
|
||||
@@ -543,7 +543,7 @@ $(GSTAT): $(GSTAT_Objects) $(COMMON_LIB
|
||||
isql: $(ISQL)
|
||||
|
||||
$(ISQL): $(ISQL_Objects) $(COMMON_LIB)
|
||||
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS)
|
||||
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) \
|
||||
+ $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
|
||||
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(TERMLIB) $(LINK_LIBS)
|
||||
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(TERMLIB) $(LINK_LIBS) $(ICU_LIBS)
|
||||
|
||||
nbackup: $(NBACKUP)
|
||||
|
||||
|
||||
664
noexcept.patch
Normal file
664
noexcept.patch
Normal file
@ -0,0 +1,664 @@
|
||||
From a999f35f0fad27798fdc88a3f5cdf2e3e9041594 Mon Sep 17 00:00:00 2001
|
||||
From: Adriano dos Santos Fernandes <adrianosf@gmail.com>
|
||||
Date: Mon, 31 May 2021 08:55:26 -0300
|
||||
Subject: [PATCH] Replace FB_NOTHROW by noexcept and remove FB_THROW.
|
||||
|
||||
---
|
||||
src/common/classes/alloc.cpp | 128 +++++++++++++++++------------------
|
||||
src/common/classes/alloc.h | 74 ++++++++------------
|
||||
2 files changed, 94 insertions(+), 108 deletions(-)
|
||||
|
||||
diff --git a/src/common/classes/alloc.cpp b/src/common/classes/alloc.cpp
|
||||
index 1bd6ad4f09d..ee91ab89df8 100644
|
||||
--- a/src/common/classes/alloc.cpp
|
||||
+++ b/src/common/classes/alloc.cpp
|
||||
@@ -68,19 +68,19 @@
|
||||
#define VALGRIND_FIX_IT // overrides suspicious valgrind behavior
|
||||
#endif // USE_VALGRIND
|
||||
|
||||
-void* operator new(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* operator new(size_t s ALLOC_PARAMS)
|
||||
{
|
||||
return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
|
||||
}
|
||||
-void* operator new[](size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* operator new[](size_t s ALLOC_PARAMS)
|
||||
{
|
||||
return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
|
||||
}
|
||||
-void operator delete(void* mem ALLOC_PARAMS) FB_NOTHROW
|
||||
+void operator delete(void* mem ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
-void operator delete[](void* mem ALLOC_PARAMS) FB_NOTHROW
|
||||
+void operator delete[](void* mem ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
@@ -109,7 +109,7 @@ static const int GUARD_BYTES = 0;
|
||||
#endif
|
||||
|
||||
template <typename T>
|
||||
-T absVal(T n) FB_NOTHROW
|
||||
+T absVal(T n) noexcept
|
||||
{
|
||||
return n < 0 ? -n : n;
|
||||
}
|
||||
@@ -160,7 +160,7 @@ struct FailedBlock
|
||||
FailedBlock* failedList = NULL;
|
||||
#endif
|
||||
|
||||
-void corrupt(const char* text) FB_NOTHROW
|
||||
+void corrupt(const char* text) noexcept
|
||||
{
|
||||
#ifdef DEV_BUILD
|
||||
fprintf(stderr, "%s\n", text);
|
||||
@@ -377,7 +377,7 @@ class MemHeader
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
void print_contents(bool used, FILE* file, bool used_only,
|
||||
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||
+ const char* filter_path, const size_t filter_len) noexcept
|
||||
{
|
||||
if (used || !used_only)
|
||||
{
|
||||
@@ -406,7 +406,7 @@ class MemHeader
|
||||
}
|
||||
#endif
|
||||
|
||||
- void validate(MemPool* p, StatInt& vUse) FB_NOTHROW
|
||||
+ void validate(MemPool* p, StatInt& vUse) noexcept
|
||||
{
|
||||
if (p == pool && !isExtent())
|
||||
vUse += getSize();
|
||||
@@ -461,7 +461,7 @@ class MemBaseHunk
|
||||
}
|
||||
|
||||
public:
|
||||
- void validate(MemPool* pool, size_t hdr, StatInt& vMap, StatInt& vUse) FB_NOTHROW
|
||||
+ void validate(MemPool* pool, size_t hdr, StatInt& vMap, StatInt& vUse) noexcept
|
||||
{
|
||||
if (length >= DEFAULT_ALLOCATION)
|
||||
{
|
||||
@@ -526,7 +526,7 @@ class MemSmallHunk : public MemBaseHunk<MemSmallHunk>
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||
+ const char* filter_path, const size_t filter_len) noexcept
|
||||
{
|
||||
UCHAR* m = ((UCHAR*) this) + hdrSize();
|
||||
fprintf(file, "Small hunk %p: memory=[%p:%p) spaceRemaining=%" SIZEFORMAT " length=%" SIZEFORMAT "\n",
|
||||
@@ -598,7 +598,7 @@ class MemMediumHunk : public MemBaseHunk<MemMediumHunk>
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||
+ const char* filter_path, const size_t filter_len) noexcept
|
||||
{
|
||||
UCHAR* m = ((UCHAR*) this) + hdrSize();
|
||||
fprintf(file, "Medium hunk %p: memory=[%p:%p) spaceRemaining=%" SIZEFORMAT " length=%" SIZEFORMAT "\n",
|
||||
@@ -630,7 +630,7 @@ class MemBigHunk
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||
+ const char* filter_path, const size_t filter_len) noexcept
|
||||
{
|
||||
fprintf(file, "Big hunk %p: memory=%p length=%" SIZEFORMAT "\n",
|
||||
this, block, length);
|
||||
@@ -1647,7 +1647,7 @@ class FreeObjects
|
||||
|
||||
~FreeObjects();
|
||||
|
||||
- FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size) FB_THROW (OOM_EXCEPTION)
|
||||
+ FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size)
|
||||
{
|
||||
size_t full_size = size + (from ? 0 : ListBuilder::MEM_OVERHEAD);
|
||||
if (full_size > Limits::TOP_LIMIT)
|
||||
@@ -1696,7 +1696,7 @@ class FreeObjects
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||
+ const char* filter_path, const size_t filter_len) noexcept
|
||||
{
|
||||
for (Extent* ext = currentExtent; ext; ext = ext->next)
|
||||
ext->print_contents(file, pool, used_only, filter_path, filter_len);
|
||||
@@ -1717,7 +1717,7 @@ class FreeObjects
|
||||
ListBuilder listBuilder;
|
||||
Extent* currentExtent;
|
||||
|
||||
- MemBlock* newBlock(MemPool* pool, unsigned slot) FB_THROW (OOM_EXCEPTION);
|
||||
+ MemBlock* newBlock(MemPool* pool, unsigned slot);
|
||||
};
|
||||
|
||||
|
||||
@@ -1799,26 +1799,26 @@ class MemPool
|
||||
};
|
||||
#endif // VALIDATE_POOL
|
||||
|
||||
- MemBlock* alloc(size_t from, size_t& length, bool flagRedirect) FB_THROW (OOM_EXCEPTION);
|
||||
- void releaseBlock(MemBlock *block, bool flagDecr) FB_NOTHROW;
|
||||
+ MemBlock* alloc(size_t from, size_t& length, bool flagRedirect);
|
||||
+ void releaseBlock(MemBlock *block, bool flagDecr) noexcept;
|
||||
|
||||
public:
|
||||
- void* allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
- MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
+ void* allocate(size_t size ALLOC_PARAMS);
|
||||
+ MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS);
|
||||
|
||||
private:
|
||||
- virtual void memoryIsExhausted(void) FB_THROW (OOM_EXCEPTION);
|
||||
- void* allocRaw(size_t length) FB_THROW (OOM_EXCEPTION);
|
||||
- static void releaseMemory(void* block, bool flagExtent) FB_NOTHROW;
|
||||
- static void releaseRaw(bool destroying, void *block, size_t size, bool use_cache = true) FB_NOTHROW;
|
||||
- void* getExtent(size_t from, size_t& to) FB_THROW (OOM_EXCEPTION);
|
||||
+ virtual void memoryIsExhausted(void);
|
||||
+ void* allocRaw(size_t length);
|
||||
+ static void releaseMemory(void* block, bool flagExtent) noexcept;
|
||||
+ static void releaseRaw(bool destroying, void *block, size_t size, bool use_cache = true) noexcept;
|
||||
+ void* getExtent(size_t from, size_t& to);
|
||||
|
||||
public:
|
||||
- static void releaseExtent(bool destroying, void *block, size_t size, MemPool* pool) FB_NOTHROW;
|
||||
+ static void releaseExtent(bool destroying, void *block, size_t size, MemPool* pool) noexcept;
|
||||
|
||||
// pass desired size, return actual extent size
|
||||
template <class Extent>
|
||||
- void newExtent(size_t& size, Extent** linkedList) FB_THROW (OOM_EXCEPTION);
|
||||
+ void newExtent(size_t& size, Extent** linkedList);
|
||||
|
||||
private:
|
||||
#ifdef USE_VALGRIND
|
||||
@@ -1830,9 +1830,9 @@ class MemPool
|
||||
|
||||
public:
|
||||
static void deletePool(MemPool* pool);
|
||||
- static void globalFree(void* block) FB_NOTHROW;
|
||||
+ static void globalFree(void* block) noexcept;
|
||||
|
||||
- static void deallocate(void* block) FB_NOTHROW;
|
||||
+ static void deallocate(void* block) noexcept;
|
||||
bool validate(char* buf, FB_SIZE_T size);
|
||||
|
||||
// Create memory pool instance
|
||||
@@ -1840,7 +1840,7 @@ class MemPool
|
||||
|
||||
// Set statistics group for pool. Usage counters will be decremented from
|
||||
// previously set group and added to new
|
||||
- void setStatsGroup(MemoryStats& stats) FB_NOTHROW;
|
||||
+ void setStatsGroup(MemoryStats& stats) noexcept;
|
||||
|
||||
// Initialize and finalize global memory pool
|
||||
static MemPool* init()
|
||||
@@ -1893,25 +1893,25 @@ class MemPool
|
||||
}
|
||||
|
||||
// Statistics
|
||||
- void increment_usage(size_t size) FB_NOTHROW
|
||||
+ void increment_usage(size_t size) noexcept
|
||||
{
|
||||
stats->increment_usage(size);
|
||||
used_memory += size;
|
||||
}
|
||||
|
||||
- void decrement_usage(size_t size) FB_NOTHROW
|
||||
+ void decrement_usage(size_t size) noexcept
|
||||
{
|
||||
stats->decrement_usage(size);
|
||||
used_memory -= size;
|
||||
}
|
||||
|
||||
- void increment_mapping(size_t size) FB_NOTHROW
|
||||
+ void increment_mapping(size_t size) noexcept
|
||||
{
|
||||
stats->increment_mapping(size);
|
||||
mapped_memory += size;
|
||||
}
|
||||
|
||||
- void decrement_mapping(size_t size) FB_NOTHROW
|
||||
+ void decrement_mapping(size_t size) noexcept
|
||||
{
|
||||
stats->decrement_mapping(size);
|
||||
mapped_memory -= size;
|
||||
@@ -1919,9 +1919,9 @@ class MemPool
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
// Print out pool contents. This is debugging routine
|
||||
- void print_contents(FILE*, unsigned flags, const char* filter_path) FB_NOTHROW;
|
||||
+ void print_contents(FILE*, unsigned flags, const char* filter_path) noexcept;
|
||||
// The same routine, but more easily callable from the debugger
|
||||
- void print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW;
|
||||
+ void print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept;
|
||||
|
||||
private:
|
||||
MemPool* next;
|
||||
@@ -1961,7 +1961,7 @@ void DoubleLinkedList::decrUsage(MemMediumHunk* hunk, MemPool* pool)
|
||||
|
||||
|
||||
template <class ListBuilder, class Limits>
|
||||
-MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot) FB_THROW (OOM_EXCEPTION)
|
||||
+MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot)
|
||||
{
|
||||
size_t size = Limits::getSize(slot);
|
||||
|
||||
@@ -2170,7 +2170,7 @@ MemPool::~MemPool(void)
|
||||
}
|
||||
|
||||
template <class Extent>
|
||||
-void MemPool::newExtent(size_t& size, Extent** linkedList) FB_THROW(OOM_EXCEPTION)
|
||||
+void MemPool::newExtent(size_t& size, Extent** linkedList)
|
||||
{
|
||||
// No large enough block found. We need to extend the pool
|
||||
void* memory = NULL;
|
||||
@@ -2214,7 +2214,7 @@ MemoryPool* MemoryPool::createPool(MemoryPool* parentPool, MemoryStats& stats)
|
||||
return FB_NEW_POOL(*parentPool) MemoryPool(p);
|
||||
}
|
||||
|
||||
-void MemPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||
+void MemPool::setStatsGroup(MemoryStats& newStats) noexcept
|
||||
{
|
||||
MutexLockGuard guard(mutex, "MemPool::setStatsGroup");
|
||||
|
||||
@@ -2230,12 +2230,12 @@ void MemPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||
stats->increment_usage(sav_used_memory);
|
||||
}
|
||||
|
||||
-void MemoryPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||
+void MemoryPool::setStatsGroup(MemoryStats& newStats) noexcept
|
||||
{
|
||||
pool->setStatsGroup(newStats);
|
||||
}
|
||||
|
||||
-MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect) FB_THROW (OOM_EXCEPTION)
|
||||
+MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect)
|
||||
{
|
||||
MutexEnsureUnlock guard(mutex, "MemPool::alloc");
|
||||
guard.enter();
|
||||
@@ -2294,7 +2294,7 @@ MemBlock* MemPool::allocate2(size_t from, size_t& size
|
||||
#ifdef DEBUG_GDS_ALLOC
|
||||
, const char* fileName, int line
|
||||
#endif
|
||||
-) FB_THROW (OOM_EXCEPTION)
|
||||
+)
|
||||
{
|
||||
size_t length = from ? size : ROUNDUP(size + VALGRIND_REDZONE, roundingSize) + GUARD_BYTES;
|
||||
MemBlock* memory = alloc(from, length, true);
|
||||
@@ -2324,7 +2324,7 @@ MemBlock* MemPool::allocate2(size_t from, size_t& size
|
||||
}
|
||||
|
||||
|
||||
-void* MemPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* MemPool::allocate(size_t size ALLOC_PARAMS)
|
||||
{
|
||||
#ifdef VALIDATE_POOL
|
||||
MutexLockGuard guard(mutex, "MemPool::allocate");
|
||||
@@ -2339,7 +2339,7 @@ void* MemPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
}
|
||||
|
||||
|
||||
-void MemPool::releaseMemory(void* object, bool flagExtent) FB_NOTHROW
|
||||
+void MemPool::releaseMemory(void* object, bool flagExtent) noexcept
|
||||
{
|
||||
if (object)
|
||||
{
|
||||
@@ -2403,7 +2403,7 @@ void MemPool::releaseMemory(void* object, bool flagExtent) FB_NOTHROW
|
||||
}
|
||||
}
|
||||
|
||||
-void MemPool::releaseBlock(MemBlock* block, bool decrUsage) FB_NOTHROW
|
||||
+void MemPool::releaseBlock(MemBlock* block, bool decrUsage) noexcept
|
||||
{
|
||||
if (block->pool != this)
|
||||
corrupt("bad block released");
|
||||
@@ -2464,12 +2464,12 @@ void MemPool::releaseBlock(MemBlock* block, bool decrUsage) FB_NOTHROW
|
||||
releaseRaw(pool_destroying, hunk, hunk->length, false);
|
||||
}
|
||||
|
||||
-void MemPool::memoryIsExhausted(void) FB_THROW (OOM_EXCEPTION)
|
||||
+void MemPool::memoryIsExhausted(void)
|
||||
{
|
||||
Firebird::BadAlloc::raise();
|
||||
}
|
||||
|
||||
-void* MemPool::allocRaw(size_t size) FB_THROW (OOM_EXCEPTION)
|
||||
+void* MemPool::allocRaw(size_t size)
|
||||
{
|
||||
#ifndef USE_VALGRIND
|
||||
if (size == DEFAULT_ALLOCATION)
|
||||
@@ -2549,7 +2549,7 @@ void* MemPool::allocRaw(size_t size) FB_THROW (OOM_EXCEPTION)
|
||||
}
|
||||
|
||||
|
||||
-void* MemPool::getExtent(size_t from, size_t& to) FB_THROW(OOM_EXCEPTION) // pass desired minimum size, return actual extent size
|
||||
+void* MemPool::getExtent(size_t from, size_t& to) // pass desired minimum size, return actual extent size
|
||||
{
|
||||
#ifdef VALIDATE_POOL
|
||||
MutexLockGuard guard(mutex, "MemPool::getExtent");
|
||||
@@ -2560,7 +2560,7 @@ void* MemPool::getExtent(size_t from, size_t& to) FB_THROW(OOM_EXCEPTION) // pa
|
||||
}
|
||||
|
||||
|
||||
-void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool* pool) FB_NOTHROW
|
||||
+void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool* pool) noexcept
|
||||
{
|
||||
if (size < DEFAULT_ALLOCATION)
|
||||
releaseMemory(block, true);
|
||||
@@ -2573,7 +2573,7 @@ void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool*
|
||||
}
|
||||
|
||||
|
||||
-void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cache) FB_NOTHROW
|
||||
+void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cache) noexcept
|
||||
{
|
||||
#ifndef USE_VALGRIND
|
||||
if (use_cache && (size == DEFAULT_ALLOCATION))
|
||||
@@ -2666,19 +2666,19 @@ void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cac
|
||||
}
|
||||
}
|
||||
|
||||
-void MemPool::globalFree(void* block) FB_NOTHROW
|
||||
+void MemPool::globalFree(void* block) noexcept
|
||||
{
|
||||
deallocate(block);
|
||||
}
|
||||
|
||||
-void* MemoryPool::calloc(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* MemoryPool::calloc(size_t size ALLOC_PARAMS)
|
||||
{
|
||||
void* block = allocate(size ALLOC_PASS_ARGS);
|
||||
memset(block, 0, size);
|
||||
return block;
|
||||
}
|
||||
|
||||
-void MemPool::deallocate(void* block) FB_NOTHROW
|
||||
+void MemPool::deallocate(void* block) noexcept
|
||||
{
|
||||
releaseMemory(block, false);
|
||||
}
|
||||
@@ -2720,7 +2720,7 @@ bool MemPool::validate(char* buf, FB_SIZE_T size)
|
||||
}
|
||||
|
||||
#ifdef MEM_DEBUG
|
||||
-void MemPool::print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||
+void MemPool::print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept
|
||||
{
|
||||
FILE* out = os_utils::fopen(filename, "w");
|
||||
if (!out)
|
||||
@@ -2731,7 +2731,7 @@ void MemPool::print_contents(const char* filename, unsigned flags, const char* f
|
||||
}
|
||||
|
||||
// This member function can't be const because there are calls to the mutex.
|
||||
-void MemPool::print_contents(FILE* file, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||
+void MemPool::print_contents(FILE* file, unsigned flags, const char* filter_path) noexcept
|
||||
{
|
||||
bool used_only = flags & MemoryPool::PRINT_USED_ONLY;
|
||||
|
||||
@@ -2818,7 +2818,7 @@ MemoryPool& AutoStorage::getAutoMemoryPool()
|
||||
}
|
||||
|
||||
#ifdef LIBC_CALLS_NEW
|
||||
-void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS)
|
||||
{
|
||||
if (!defaultMemoryManager)
|
||||
{
|
||||
@@ -2831,17 +2831,17 @@ void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
}
|
||||
#endif // LIBC_CALLS_NEW
|
||||
|
||||
-void MemoryPool::globalFree(void* block) FB_NOTHROW
|
||||
+void MemoryPool::globalFree(void* block) noexcept
|
||||
{
|
||||
MemPool::globalFree(block);
|
||||
}
|
||||
|
||||
-void* MemoryPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+void* MemoryPool::allocate(size_t size ALLOC_PARAMS)
|
||||
{
|
||||
return pool->allocate(size ALLOC_PASS_ARGS);
|
||||
}
|
||||
|
||||
-void MemoryPool::deallocate(void* block) FB_NOTHROW
|
||||
+void MemoryPool::deallocate(void* block) noexcept
|
||||
{
|
||||
pool->deallocate(block);
|
||||
}
|
||||
@@ -2870,14 +2870,14 @@ void MemoryPool::deletePool(MemoryPool* pool)
|
||||
delete pool;
|
||||
}
|
||||
|
||||
-void MemoryPool::print_contents(FILE* file, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||
+void MemoryPool::print_contents(FILE* file, unsigned flags, const char* filter_path) noexcept
|
||||
{
|
||||
#ifdef MEM_DEBUG
|
||||
pool->print_contents(file, flags, filter_path);
|
||||
#endif
|
||||
}
|
||||
|
||||
-void MemoryPool::print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||
+void MemoryPool::print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept
|
||||
{
|
||||
#ifdef MEM_DEBUG
|
||||
pool->print_contents(filename, flags, filter_path);
|
||||
@@ -2950,21 +2950,21 @@ void AutoStorage::ProbeStack() const
|
||||
// in a case when we actually need "new" only with file/line information
|
||||
// this version should be also present as a pair for "delete".
|
||||
#ifdef DEBUG_GDS_ALLOC
|
||||
-void* operator new(size_t s) FB_THROW (OOM_EXCEPTION)
|
||||
+void* operator new(size_t s)
|
||||
{
|
||||
return MemoryPool::globalAlloc(s ALLOC_ARGS);
|
||||
}
|
||||
-void* operator new[](size_t s) FB_THROW (OOM_EXCEPTION)
|
||||
+void* operator new[](size_t s)
|
||||
{
|
||||
return MemoryPool::globalAlloc(s ALLOC_ARGS);
|
||||
}
|
||||
|
||||
-void operator delete(void* mem) FB_NOTHROW
|
||||
+void operator delete(void* mem) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
|
||||
-void operator delete[](void* mem) FB_NOTHROW
|
||||
+void operator delete[](void* mem) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
diff --git a/src/common/classes/alloc.h b/src/common/classes/alloc.h
|
||||
index 65f9afbb8a9..44d9e0ea462 100644
|
||||
--- a/src/common/classes/alloc.h
|
||||
+++ b/src/common/classes/alloc.h
|
||||
@@ -58,20 +58,6 @@
|
||||
|
||||
#include <memory.h>
|
||||
|
||||
-#define OOM_EXCEPTION std::bad_alloc
|
||||
-
|
||||
-#if __cplusplus >= 201103L
|
||||
-#define FB_NO_THROW_SPECIFIER
|
||||
-#endif
|
||||
-
|
||||
-#ifdef FB_NO_THROW_SPECIFIER
|
||||
-#define FB_THROW(x)
|
||||
-#define FB_NOTHROW noexcept
|
||||
-#else
|
||||
-#define FB_THROW(x) throw(x)
|
||||
-#define FB_NOTHROW throw()
|
||||
-#endif
|
||||
-
|
||||
#ifdef DEBUG_GDS_ALLOC
|
||||
#define FB_NEW new(__FILE__, __LINE__)
|
||||
#define FB_NEW_POOL(pool) new(pool, __FILE__, __LINE__)
|
||||
@@ -106,10 +92,10 @@ class MemoryStats
|
||||
~MemoryStats()
|
||||
{}
|
||||
|
||||
- size_t getCurrentUsage() const FB_NOTHROW { return mst_usage.value(); }
|
||||
- size_t getMaximumUsage() const FB_NOTHROW { return mst_max_usage; }
|
||||
- size_t getCurrentMapping() const FB_NOTHROW { return mst_mapped.value(); }
|
||||
- size_t getMaximumMapping() const FB_NOTHROW { return mst_max_mapped; }
|
||||
+ size_t getCurrentUsage() const noexcept { return mst_usage.value(); }
|
||||
+ size_t getMaximumUsage() const noexcept { return mst_max_usage; }
|
||||
+ size_t getCurrentMapping() const noexcept { return mst_mapped.value(); }
|
||||
+ size_t getMaximumMapping() const noexcept { return mst_max_mapped; }
|
||||
|
||||
private:
|
||||
// Forbid copying/assignment
|
||||
@@ -131,7 +117,7 @@ class MemoryStats
|
||||
size_t mst_max_mapped;
|
||||
|
||||
// These methods are thread-safe due to usage of atomic counters only
|
||||
- void increment_usage(size_t size) FB_NOTHROW
|
||||
+ void increment_usage(size_t size) noexcept
|
||||
{
|
||||
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||
{
|
||||
@@ -141,7 +127,7 @@ class MemoryStats
|
||||
}
|
||||
}
|
||||
|
||||
- void decrement_usage(size_t size) FB_NOTHROW
|
||||
+ void decrement_usage(size_t size) noexcept
|
||||
{
|
||||
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||
{
|
||||
@@ -149,7 +135,7 @@ class MemoryStats
|
||||
}
|
||||
}
|
||||
|
||||
- void increment_mapping(size_t size) FB_NOTHROW
|
||||
+ void increment_mapping(size_t size) noexcept
|
||||
{
|
||||
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||
{
|
||||
@@ -159,7 +145,7 @@ class MemoryStats
|
||||
}
|
||||
}
|
||||
|
||||
- void decrement_mapping(size_t size) FB_NOTHROW
|
||||
+ void decrement_mapping(size_t size) noexcept
|
||||
{
|
||||
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||
{
|
||||
@@ -205,21 +191,21 @@ class MemoryPool
|
||||
#define ALLOC_PASS_ARGS
|
||||
#endif // DEBUG_GDS_ALLOC
|
||||
|
||||
- void* calloc(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
+ void* calloc(size_t size ALLOC_PARAMS);
|
||||
|
||||
#ifdef LIBC_CALLS_NEW
|
||||
- static void* globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
+ static void* globalAlloc(size_t s ALLOC_PARAMS);
|
||||
#else
|
||||
- static void* globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+ static void* globalAlloc(size_t s ALLOC_PARAMS)
|
||||
{
|
||||
return defaultMemoryManager->allocate(s ALLOC_PASS_ARGS);
|
||||
}
|
||||
#endif // LIBC_CALLS_NEW
|
||||
|
||||
- void* allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
+ void* allocate(size_t size ALLOC_PARAMS);
|
||||
|
||||
- static void globalFree(void* mem) FB_NOTHROW;
|
||||
- void deallocate(void* mem) FB_NOTHROW;
|
||||
+ static void globalFree(void* mem) noexcept;
|
||||
+ void deallocate(void* mem) noexcept;
|
||||
|
||||
// Set context pool for current thread of execution
|
||||
static MemoryPool* setContextPool(MemoryPool* newPool);
|
||||
@@ -229,7 +215,7 @@ class MemoryPool
|
||||
|
||||
// Set statistics group for pool. Usage counters will be decremented from
|
||||
// previously set group and added to new
|
||||
- void setStatsGroup(MemoryStats& stats) FB_NOTHROW;
|
||||
+ void setStatsGroup(MemoryStats& stats) noexcept;
|
||||
|
||||
// Initialize and finalize global memory pool
|
||||
static void init();
|
||||
@@ -241,9 +227,9 @@ class MemoryPool
|
||||
// Print out pool contents. This is debugging routine
|
||||
static const unsigned PRINT_USED_ONLY = 0x01;
|
||||
static const unsigned PRINT_RECURSIVE = 0x02;
|
||||
- void print_contents(FILE*, unsigned flags = 0, const char* filter_path = 0) FB_NOTHROW;
|
||||
+ void print_contents(FILE*, unsigned flags = 0, const char* filter_path = 0) noexcept;
|
||||
// The same routine, but more easily callable from the debugger
|
||||
- void print_contents(const char* filename, unsigned flags = 0, const char* filter_path = 0) FB_NOTHROW;
|
||||
+ void print_contents(const char* filename, unsigned flags = 0, const char* filter_path = 0) noexcept;
|
||||
|
||||
public:
|
||||
struct Finalizer
|
||||
@@ -298,7 +284,7 @@ class MemoryPool
|
||||
|
||||
} // namespace Firebird
|
||||
|
||||
-static inline Firebird::MemoryPool* getDefaultMemoryPool() FB_NOTHROW
|
||||
+static inline Firebird::MemoryPool* getDefaultMemoryPool() noexcept
|
||||
{
|
||||
fb_assert(Firebird::MemoryPool::defaultMemoryManager);
|
||||
return Firebird::MemoryPool::defaultMemoryManager;
|
||||
@@ -355,36 +341,36 @@ class SubsystemContextPoolHolder : public ContextPoolHolder
|
||||
using Firebird::MemoryPool;
|
||||
|
||||
// operators new and delete
|
||||
-extern void* operator new(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
-extern void* operator new[](size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||
-extern void operator delete(void* mem ALLOC_PARAMS) FB_NOTHROW;
|
||||
-extern void operator delete[](void* mem ALLOC_PARAMS) FB_NOTHROW;
|
||||
+extern void* operator new(size_t s ALLOC_PARAMS);
|
||||
+extern void* operator new[](size_t s ALLOC_PARAMS);
|
||||
+extern void operator delete(void* mem ALLOC_PARAMS) noexcept;
|
||||
+extern void operator delete[](void* mem ALLOC_PARAMS) noexcept;
|
||||
|
||||
|
||||
-inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
|
||||
{
|
||||
return pool.allocate(s ALLOC_PASS_ARGS);
|
||||
}
|
||||
-inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||
+inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
|
||||
{
|
||||
return pool.allocate(s ALLOC_PASS_ARGS);
|
||||
}
|
||||
|
||||
-inline void operator delete(void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_NOTHROW
|
||||
+inline void operator delete(void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
-inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_NOTHROW
|
||||
+inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
|
||||
#if __cplusplus >= 201402L
|
||||
-inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||
+inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
-inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||
+inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) noexcept
|
||||
{
|
||||
MemoryPool::globalFree(mem);
|
||||
}
|
||||
@@ -392,8 +378,8 @@ inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||
|
||||
#ifdef DEBUG_GDS_ALLOC
|
||||
|
||||
-extern void operator delete(void* mem) FB_NOTHROW;
|
||||
-extern void operator delete[](void* mem) FB_NOTHROW;
|
||||
+extern void operator delete(void* mem) noexcept;
|
||||
+extern void operator delete[](void* mem) noexcept;
|
||||
|
||||
#endif // DEBUG_GDS_ALLOC
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
Description: remove reference to obsolete syslog.target
|
||||
Syslog is socket-activated, so no need to declare a dependency on it
|
||||
Author: Damyan Ivanov <dmn@debian.org>
|
||||
|
||||
--- a/builds/install/arch-specific/linux/firebird-superserver.service.in
|
||||
+++ b/builds/install/arch-specific/linux/firebird-superserver.service.in
|
||||
@@ -1,6 +1,6 @@
|
||||
[Unit]
|
||||
Description=Firebird Database Server ( SuperServer )
|
||||
-After=syslog.target network.target
|
||||
+After=network.target
|
||||
Conflicts=firebird-classic.socket
|
||||
|
||||
[Service]
|
||||
Loading…
x
Reference in New Issue
Block a user