diff --git a/.gitignore b/.gitignore index 0e5122a..2e29dee 100644 --- a/.gitignore +++ b/.gitignore @@ -11,11 +11,3 @@ Firebird-2.1.3.18185-0.RC2.tar.bz2 /Firebird-3.0.3.32900-0.tar.bz2 /Firebird-3.0.4.33054-0.tar.bz2 /Firebird-3.0.5.33220-0.tar.bz2 -/Firebird-3.0.6.33328-0.tar.bz2 -/Firebird-3.0.7.33374-0.tar.bz2 -/Firebird-4.0.0.2496-0.tar.xz -/Firebird-4.0.2.2816-0.tar.xz -/Firebird-4.0.3.2975-0.tar.xz -/Firebird-4.0.4.3010-0.tar.xz -/Firebird-4.0.6.3221-0.tar.xz -/Firebird-5.0.3.1683-0-source.tar.xz diff --git a/0001-Port-to-RISC-V-64-bit-riscv64.patch b/0001-Port-to-RISC-V-64-bit-riscv64.patch new file mode 100644 index 0000000..6fcc1fc --- /dev/null +++ b/0001-Port-to-RISC-V-64-bit-riscv64.patch @@ -0,0 +1,134 @@ +diff -urN Firebird-3.0.3.32900-0.old/builds/posix/prefix.linux_riscv64 Firebird-3.0.3.32900-0/builds/posix/prefix.linux_riscv64 +--- Firebird-3.0.3.32900-0.old/builds/posix/prefix.linux_riscv64 1970-01-01 01:00:00.000000000 +0100 ++++ Firebird-3.0.3.32900-0/builds/posix/prefix.linux_riscv64 2018-03-19 08:56:57.254118156 +0000 +@@ -0,0 +1,26 @@ ++# The contents of this file are subject to the Interbase Public ++# License Version 1.0 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy ++# of the License at http://www.Inprise.com/IPL.html ++# ++# Software distributed under the License is distributed on an ++# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++# or implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code was created by Inprise Corporation ++# and its predecessors. Portions created by Inprise Corporation are ++# Copyright (C) Inprise Corporation. ++# ++# All Rights Reserved. ++# Contributor(s): ______________________________________. ++# Start of file prefix.linux: $(VERSION) $(PLATFORM) ++# ++# Richard W.M. Jones, Red Hat Inc. ++ ++WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -Wno-invalid-offsetof -Wno-narrowing -Wno-unused-local-typedefs ++ ++PROD_FLAGS=-O3 -DLINUX -DRISCV64 -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0 ++DEV_FLAGS=-ggdb -DLINUX -DRISCV64 -pipe -p -MMD -fPIC -Wall -fsigned-char -fmessage-length=0 $(WARN_FLAGS) ++ ++CXXFLAGS := $(CXXFLAGS) -std=c++11 +diff -urN Firebird-3.0.3.32900-0.old/configure.ac Firebird-3.0.3.32900-0/configure.ac +--- Firebird-3.0.3.32900-0.old/configure.ac 2018-03-19 08:56:23.222156918 +0000 ++++ Firebird-3.0.3.32900-0/configure.ac 2018-03-19 08:56:57.254118156 +0000 +@@ -251,6 +251,18 @@ + libdir=/usr/lib64 + ;; + ++ riscv64*-*-linux*) ++ MAKEFILE_PREFIX=linux_riscv64 ++ INSTALL_PREFIX=linux ++ PLATFORM=LINUX ++ AC_DEFINE(LINUX, 1, [Define this if OS is Linux]) ++ EDITLINE_FLG=Y ++ SHRLIB_EXT=so ++ STD_EDITLINE=true ++ STD_ICU=true ++ libdir=/usr/lib64 ++ ;; ++ + powerpc64le-*-linux*) + MAKEFILE_PREFIX=linux_powerpc64el + INSTALL_PREFIX=linux +diff -urN Firebird-3.0.3.32900-0.old/src/common/classes/DbImplementation.cpp Firebird-3.0.3.32900-0/src/common/classes/DbImplementation.cpp +--- Firebird-3.0.3.32900-0.old/src/common/classes/DbImplementation.cpp 2018-02-02 11:00:35.000000000 +0000 ++++ Firebird-3.0.3.32900-0/src/common/classes/DbImplementation.cpp 2018-03-19 08:56:57.254118156 +0000 +@@ -49,6 +49,7 @@ + static const UCHAR CpuArm64 = 15; + static const UCHAR CpuPowerPc64el = 16; + static const UCHAR CpuM68k = 17; ++static const UCHAR CpuRiscV64 = 18; + + static const UCHAR OsWindows = 0; + static const UCHAR OsLinux = 1; +@@ -89,7 +90,8 @@ + "Alpha", + "ARM64", + "PowerPC64el", +- "M68k" ++ "M68k", ++ "RiscV64" + }; + + const char* operatingSystem[] = { +@@ -116,22 +118,22 @@ + // This table lists pre-fb3 implementation codes + const UCHAR backwardTable[FB_NELEM(hardware) * FB_NELEM(operatingSystem)] = + { +-// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el +-/* Windows */ 50, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* Linux */ 60, 66, 65, 69, 86, 71, 72, 75, 76, 79, 78, 80, 81, 82, 83, 84, 85, +-/* Darwin */ 70, 73, 0, 63, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* Solaris */ 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* HPUX */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, +-/* AIX */ 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* MVS */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* FreeBSD */ 61, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* NetBSD */ 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ++// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el RiscV64 ++/* Windows */ 50, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* Linux */ 60, 66, 65, 69, 86, 71, 72, 75, 76, 79, 78, 80, 81, 82, 83, 84, 85, 88, ++/* Darwin */ 70, 73, 0, 63, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* Solaris */ 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* HPUX */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, ++/* AIX */ 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* MVS */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* FreeBSD */ 61, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* NetBSD */ 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + const UCHAR backEndianess[FB_NELEM(hardware)] = + { +-// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el M68k +- 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1 ++// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el M68k RiscV64 ++ 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, + }; + + } // anonymous namespace +diff -urN Firebird-3.0.3.32900-0.old/src/common/common.h Firebird-3.0.3.32900-0/src/common/common.h +--- Firebird-3.0.3.32900-0.old/src/common/common.h 2018-03-19 08:56:23.377156741 +0000 ++++ Firebird-3.0.3.32900-0/src/common/common.h 2018-03-19 08:56:57.255118154 +0000 +@@ -135,6 +135,10 @@ + #define FB_CPU CpuArm64 + #endif /* ARM64 */ + ++#ifdef RISCV64 ++#define FB_CPU CpuRiscV64 ++#endif /* RISCV64 */ ++ + #ifdef sparc + #define FB_CPU CpuUltraSparc + #define RISC_ALIGNMENT +diff -urN Firebird-3.0.3.32900-0.old/src/jrd/inf_pub.h Firebird-3.0.3.32900-0/src/jrd/inf_pub.h +--- Firebird-3.0.3.32900-0.old/src/jrd/inf_pub.h 2018-02-02 11:00:36.000000000 +0000 ++++ Firebird-3.0.3.32900-0/src/jrd/inf_pub.h 2018-03-19 08:56:57.255118154 +0000 +@@ -245,7 +245,7 @@ + isc_info_db_impl_linux_ppc64el = 85, + isc_info_db_impl_linux_ppc64 = 86, + isc_info_db_impl_linux_m68k = 87, +- ++ isc_info_db_impl_linux_riscv64 = 88, + + isc_info_db_impl_last_value // Leave this LAST! + }; diff --git a/Provide-sized-global-delete-operators-when-compiled.patch b/Provide-sized-global-delete-operators-when-compiled.patch new file mode 100644 index 0000000..1302d1d --- /dev/null +++ b/Provide-sized-global-delete-operators-when-compiled.patch @@ -0,0 +1,36 @@ +From: Michal Kubecek +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 + + diff --git a/README.Fedora b/README.Fedora index 071b351..9f869cb 100644 --- a/README.Fedora +++ b/README.Fedora @@ -8,10 +8,13 @@ Differences between upstream and the Fedora package * By default, Firebird is set as superserver mode. Please read the Firebird doc if you want to change the mode. + To help you, you have systemd units in /usr/share/firebird/misc. * According to Fedora packaging rules, firebird service is not started automatically. You need to start it, as root : - systemctl start firebird.service + for SuperServer : + systemctl start firebird-superserver.service If you want to have firebird started at each boot, as root : - systemctl enable firebird.service + for SuperServer : + systemctl enable firebird-superserver.service diff --git a/add-pkgconfig-files.patch b/add-pkgconfig-files.patch index e9fbb3f..d8ea48c 100644 --- a/add-pkgconfig-files.patch +++ b/add-pkgconfig-files.patch @@ -1,6 +1,16 @@ +From: Michal Kubecek +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 0000000..d49fdc5 +index 000000000000..d49fdc5821c5 --- /dev/null +++ b/builds/install/arch-specific/linux/misc/fbclient.pc.in @@ -0,0 +1,10 @@ @@ -14,13 +24,19 @@ index 0000000..d49fdc5 +Version: @FIREBIRD_VERSION@ +Cflags: -I${includedir}/firebird +Libs: -L${libdir} -lfbclient ---- Firebird-5.0.3.1683-0-source/configure.ac~ 2025-07-14 01:33:58.000000000 -0500 -+++ Firebird-5.0.3.1683-0-source/configure.ac 2025-09-26 10:42:45.022624859 -0500 -@@ -1540,6 +1540,7 @@ +diff --git a/configure.ac b/configure.ac +index 717f5eccc53d..60b3aaa5b08b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1200,6 +1200,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/install/misc/firebird.service:builds/install/arch-specific/linux/firebird.service.in - ], - [chmod a+x gen/install/*sh 2>/dev/null]) + 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 + + diff --git a/btyacc-honour-build-flags.patch b/btyacc-honour-build-flags.patch deleted file mode 100644 index cb9f38c..0000000 --- a/btyacc-honour-build-flags.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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= - diff --git a/cloop-honour-build-flags.patch b/cloop-honour-build-flags.patch index 3ce2e2f..735e3b9 100644 --- a/cloop-honour-build-flags.patch +++ b/cloop-honour-build-flags.patch @@ -4,51 +4,24 @@ Forwarded: no --- a/extern/cloop/Makefile +++ b/extern/cloop/Makefile -@@ -27,8 +27,8 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$ +@@ -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),$ 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) -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 +-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 - 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 \ + ifeq ($(TARGET),release) diff --git a/examples-honour-build-flags.patch b/examples-honour-build-flags.patch deleted file mode 100644 index fc7ebd9..0000000 --- a/examples-honour-build-flags.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/builds/posix/Makefile.in.plugins_examples b/builds/posix/Makefile.in.plugins_examples -index 989e80d..344f487 100644 ---- a/builds/posix/Makefile.in.plugins_examples -+++ b/builds/posix/Makefile.in.plugins_examples -@@ -101,7 +101,7 @@ AllObjects += $(CA_Objects) - crypt_app: $(CRYPT_APP) - - $(CRYPT_APP): $(CA_Objects) -- $(EXE_LINK) $(LSB_UNDEF) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) -+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $(LSB_UNDEF) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) - - - include $(ROOT)/gen/make.shared.targets -diff --git a/examples/extauth/Makefile b/examples/extauth/Makefile -index 3c8b878..7de22a8 100644 ---- a/examples/extauth/Makefile -+++ b/examples/extauth/Makefile -@@ -61,8 +61,8 @@ KEYGEN_objects=$(INTERMED)/keygen.o - TCWRAP_objects=$(INTERMED)/TcWrapper.o - KEY_AUTH_objects=$(INTERMED)/ExtAuth.o - --CXXFLAGS=-std=c++17 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE) --LDFLAGS=-pthread -L$(LIB) -Wl,-rpath,'$$ORIGIN/../lib' $(TOMCRYPT_LINK) -+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/firebird.service b/firebird-superserver.service similarity index 75% rename from firebird.service rename to firebird-superserver.service index ecd4cf4..50442e6 100644 --- a/firebird.service +++ b/firebird-superserver.service @@ -1,5 +1,5 @@ [Unit] -Description=Firebird Database Server +Description=Firebird Database Server ( SuperServer ) After=network.target Conflicts=firebird-classic.socket @@ -7,6 +7,7 @@ Conflicts=firebird-classic.socket User=firebird Group=firebird ExecStart=/usr/sbin/fbguard -forever +StandardError=syslog RuntimeDirectory=firebird RuntimeDirectoryMode=0775 diff --git a/firebird.spec b/firebird.spec index a98162d..36b5db6 100644 --- a/firebird.spec +++ b/firebird.spec @@ -1,67 +1,78 @@ -%global upversion 5.0.3.1683 +%global upversion 3.0.6.33328 %global pkgversion Firebird-%{upversion}-0 -%global major 5.0 +%global major 3.0 %global _hardened_build 1 -# firebird is mis-compiled when LTO is enabled. A root -# cause analysis has not yet been completed. Reported upstream. -# Disable LTO for now -%global _lto_cflags %nil Name: firebird Version: %{upversion} Release: 1%{?dist} Summary: SQL relational database management system -# Automatically converted from old format: Interbase - review is highly recommended. -License: Interbase-1.0 +License: Interbase URL: http://www.firebirdsql.org/ -Source0: https://github.com/FirebirdSQL/firebird/releases/download/v5.0.3/%{pkgversion}-source.tar.xz +Source0: https://github.com/FirebirdSQL/firebird/releases/download/R3_0_6/%{pkgversion}.tar.bz2 Source1: firebird-logrotate Source2: README.Fedora -Source3: firebird.service +Source3: firebird-superserver.service Source4: fb_config # from OpenSuse Patch101: add-pkgconfig-files.patch +Patch103: Provide-sized-global-delete-operators-when-compiled.patch # from Debian to be sent upstream +Patch201: obsolete-syslogd.target.patch +Patch202: honour-buildflags.patch Patch203: no-copy-from-icu.patch Patch205: cloop-honour-build-flags.patch # from upstream -Patch401: btyacc-honour-build-flags.patch -# not yet upstream -Patch501: examples-honour-build-flags.patch +# Support for riscv64, sent upstream: +# http://tracker.firebirdsql.org/browse/CORE-5779 +Patch401: 0001-Port-to-RISC-V-64-bit-riscv64.patch -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-rpm-macros -BuildRequires: chrpath -BuildRequires: zlib-devel -BuildRequires: procmail -BuildRequires: make -BuildRequires: libtomcrypt-devel -BuildRequires: unzip -BuildRequires: sed -BuildRequires: cmake +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 Requires(postun): /usr/sbin/userdel Requires(postun): /usr/sbin/groupdel -Recommends: logrotate +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires: logrotate Requires: libfbclient2 = %{version}-%{release} Requires: libib-util = %{version}-%{release} Requires: %{name}-utils = %{version}-%{release} +Obsoletes: firebird-arch < 3.0 +Obsoletes: firebird-filesystem < 3.0 +Obsoletes: firebird-classic-common < 3.0 +Obsoletes: firebird-classic < 3.0 +Obsoletes: firebird-superclassic < 3.0 +Obsoletes: firebird-superserver < 3.0 +Conflicts: firebird-arch < 3.0 +Conflicts: firebird-filesystem < 3.0 +Conflicts: firebird-classic-common < 3.0 +Conflicts: firebird-classic < 3.0 +Conflicts: firebird-superclassic < 3.0 +Conflicts: firebird-superserver < 3.0 + %description Firebird is a relational database offering many ANSI SQL standard @@ -103,6 +114,9 @@ in production systems, under a variety of names, since 1981. %package -n libfbclient2 Summary: Firebird SQL server client library +Obsoletes: firebird-libfbclient < 3.0 +Conflicts: firebird-libfbclient < 3.0 +Obsoletes: firebird-libfbembed < 3.0 %description -n libfbclient2 Shared client library for Firebird SQL server. @@ -175,85 +189,84 @@ in production systems, under a variety of names, since 1981. %prep -%setup -q -n %{pkgversion}-source -%patch -P101 -p1 -%patch -P203 -p1 -%patch -P205 -p1 -%patch -P401 -p1 -%patch -P501 -p1 - -# Create a sysusers.d config file -cat >firebird.sysusers.conf < .%{_localstatedir}/log/%{name}/%{name}.log sed "s@%{name}.log@%{_localstatedir}/log/%{name}/%{name}.log@g" %{SOURCE1} > .%{_sysconfdir}/logrotate.d/%{name} +cp -f %{SOURCE3} .%{_datadir}/%{name}/misc/%{name}-superserver.service + mkdir -p .%{_unitdir} -cp -f %{SOURCE3} .%{_unitdir}/%{name}.service +cp .%{_datadir}/%{name}/misc/%{name}-superserver.service .%{_unitdir}/%{name}-superserver.service %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} + # Add gds_db to /etc/services if needed FileName=/etc/services newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol" @@ -264,19 +277,21 @@ fi %post -%systemd_post firebird.service +%systemd_post firebird-superserver.service %postun -%systemd_postun_with_restart firebird.service +%systemd_postun_with_restart firebird-superserver.service %preun -%systemd_preun firebird.service +%systemd_preun firebird-superserver.service %files -%{_docdir}/%{name}/ +%{_docdir}/%{name}/IDPLicense.txt +%{_docdir}/%{name}/IPLicense.txt +%{_docdir}/%{name}/README.Fedora %{_bindir}/fbtracemgr %{_sbindir}/firebird %{_sbindir}/fbguard @@ -286,40 +301,37 @@ fi %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 +%{_libdir}/%{name}/udf +%{_datadir}/%{name}/misc %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/security5.fdb +%attr(0600,firebird,firebird) %config(noreplace) %{_localstatedir}/lib/%{name}/secdb/security3.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 +%ghost %dir %attr(0775,%{name},%{name}) %{_var}/run/%{name} +%ghost %attr(0644,%{name},%{name}) %{_var}/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} -%attr(0644,root,root) %{_unitdir}/%{name}.service -%{_sysusersdir}/firebird.conf +%attr(0644,root,root) %{_unitdir}/%{name}-superserver.service %files devel -%{_includedir}/*.h %{_includedir}/%{name} %{_libdir}/fb_config %{_sbindir}/fb_config %files -n libfbclient2 -%{_libdir}/libfbclient.so.2 -%{_libdir}/libfbclient.so.%{major}* +%{_libdir}/libfbclient.so.* %files -n libfbclient2-devel @@ -332,7 +344,7 @@ fi %files doc -%{_docdir}/%{name}/ +%{_docdir}/%{name} %exclude %{_docdir}/%{name}/sample %exclude %{_docdir}/%{name}/IDPLicense.txt %exclude %{_docdir}/%{name}/IPLicense.txt @@ -347,6 +359,7 @@ fi %{_bindir}/gsec %{_bindir}/isql-fb %{_bindir}/nbackup +%{_bindir}/qli %{_bindir}/gsplit @@ -356,105 +369,6 @@ fi %changelog -* Fri Sep 26 2025 Gwyn Ciesla - 5.0.3.1683-1 -- 5.0.3.1683 - -* Thu Sep 25 2025 Gwyn Ciesla - 4.0.6.3221-1 -- 4.0.6.3221 - -* Wed Jul 23 2025 Fedora Release Engineering - 4.0.4.3010-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 4.0.4.3010-7 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Thu Jan 16 2025 Fedora Release Engineering - 4.0.4.3010-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Aug 07 2024 Miroslav Suchý - 4.0.4.3010-5 -- convert license to SPDX - -* Wed Jul 17 2024 Fedora Release Engineering - 4.0.4.3010-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Wed Jan 24 2024 Fedora Release Engineering - 4.0.4.3010-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 4.0.4.3010-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Nov 09 2023 Philippe Makowski - 4.0.4.3010-0 -- Update to 4.0.4 (#2247832) - -* Tue Aug 08 2023 Philippe Makowski - 4.0.3.2975-0 -- Update to 4.0.3 (#2228171) - -* Wed Jul 19 2023 Fedora Release Engineering - 4.0.2.2816-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering - 4.0.2.2816-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Dec 1 2022 Florian Weimer - 4.0.2.2816-3 -- Port configure script to C99 - -* Thu Nov 24 2022 Philippe Makowski - 4.0.2.2816-2 -- Patch for autoconf 2.72 (#2144802) - -* Fri Aug 12 2022 Philippe Makowski - 4.0.2.2816-1 -- Update to 4.0.2 (#2033945) - -* Thu Jul 21 2022 Fedora Release Engineering - 4.0.0.2496-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri May 13 2022 Philippe Makowski - 4.0.0.2496-7 -- Remove Standard output type syslog (#2035798) - -* Thu Jan 20 2022 Fedora Release Engineering - 4.0.0.2496-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sun Oct 10 2021 Kalev Lember - 4.0.0.2496-5 -- Recommend logrotate rather than hard requiring - -* Fri Oct 08 2021 Kalev Lember - 4.0.0.2496-4 -- BuildRequire systemd-rpm-macros instead of systemd-units -- Remove requires on systemd-units as per updated guidelines - -* Fri Aug 20 2021 Philippe Makowski - 4.0.0.2496-3 -- Fix build on s390x (#1969393) - -* Wed Jul 21 2021 Fedora Release Engineering - 4.0.0.2496-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jun 08 2021 Philippe Makowski - 4.0.0.2496-1 -- Update to 4.0.0 (#1963311) - -* Mon May 10 2021 Jeff Law - 3.0.7.33374-5 -- Re-enable LTO - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 3.0.7.33374-4 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Jan 26 2021 Fedora Release Engineering - 3.0.7.33374-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Oct 27 2020 Jeff Law - 3.0.7.33374-2 -- Force C++14 as this code is not C++17 ready - -* Fri Oct 23 2020 Philippe Makowski - 3.0.7.33374-1 -- new upstream release fix #1887991 - -* Mon Aug 10 2020 Jeff Law - 3.0.6.33328-4 -- Disable LTO on s390x for now - -* Sat Aug 01 2020 Fedora Release Engineering - 3.0.6.33328-3 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 3.0.6.33328-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - * Wed Jul 08 2020 Philippe Makowski - 3.0.6.33328-1 - new upstream release fix #1850675 diff --git a/honour-buildflags.patch b/honour-buildflags.patch new file mode 100644 index 0000000..221241d --- /dev/null +++ b/honour-buildflags.patch @@ -0,0 +1,78 @@ +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. + The third change stops overriding CXXFLAGS + The result is using hardening flags from the environment when compiling and + linking. +Author: Damyan Ivanov + +--- a/builds/posix/Makefile.in ++++ b/builds/posix/Makefile.in +@@ -623,7 +623,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) $(MAKE_HEADER_Src) + $(CP) $^ . + $(MAKE_HEADER_Bin) $@ + $(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@ +--- a/builds/posix/prefix.linux ++++ b/builds/posix/prefix.linux +@@ -19,7 +19,7 @@ + # 2 Oct 2002, Nickolay Samofatov - Major cleanup + + COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -fno-delete-null-pointer-checks +-CXXFLAGS=-std=gnu++03 ++CXXFLAGS+=-std=gnu++03 + OPTIMIZE_FLAGS=-O3 -march=i586 -mtune=i686 -fno-omit-frame-pointer + WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -Wno-narrowing + +--- a/builds/posix/prefix.linux_amd64 ++++ b/builds/posix/prefix.linux_amd64 +@@ -19,7 +19,7 @@ + # 2 Oct 2002, Nickolay Samofatov - Major cleanup + + COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -fno-delete-null-pointer-checks +-CXXFLAGS=-std=gnu++03 ++CXXFLAGS+=-std=gnu++03 + OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer + WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -Wno-invalid-offsetof -Wno-narrowing -Wno-unused-local-typedefs + +--- a/builds/posix/prefix.linux_generic ++++ b/builds/posix/prefix.linux_generic +@@ -19,7 +19,7 @@ + # 2 Oct 2002, Nickolay Samofatov - Major cleanup + + COMMON_FLAGS=-DLINUX -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -fno-delete-null-pointer-checks +-CXXFLAGS=-std=gnu++03 ++CXXFLAGS+=-std=gnu++03 + + PROD_FLAGS=-ggdb -O3 $(COMMON_FLAGS) + DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS) -Wno-non-virtual-dtor diff --git a/no-copy-from-icu.patch b/no-copy-from-icu.patch index 3dfbd6d..94c2b80 100644 --- a/no-copy-from-icu.patch +++ b/no-copy-from-icu.patch @@ -3,7 +3,7 @@ Author: Damyan Ivanov --- a/src/isql/isql.epp +++ b/src/isql/isql.epp -@@ -173,34 +173,6 @@ const char* UNKNOWN = "*unknown*"; +@@ -167,34 +167,6 @@ const char* UNKNOWN = "*unknown*"; namespace IcuUtil { @@ -40,12 +40,12 @@ Author: Damyan Ivanov { --- a/builds/posix/Makefile.in +++ b/builds/posix/Makefile.in -@@ -543,7 +543,7 @@ $(GSTAT): $(GSTAT_Objects) $(COMMON_LIB +@@ -481,7 +481,7 @@ $(GSTAT): $(GSTAT_Objects) $(COMMON_LIB isql: $(ISQL) $(ISQL): $(ISQL_Objects) $(COMMON_LIB) -- $(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) +- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..) ++ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS) $(call LINK_DARWIN_RPATH,..) nbackup: $(NBACKUP) diff --git a/obsolete-syslogd.target.patch b/obsolete-syslogd.target.patch new file mode 100644 index 0000000..a08276c --- /dev/null +++ b/obsolete-syslogd.target.patch @@ -0,0 +1,14 @@ +Description: remove reference to obsolete syslog.target + Syslog is socket-activated, so no need to declare a dependency on it +Author: Damyan Ivanov + +--- 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] diff --git a/sources b/sources index deab017..49a1844 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Firebird-5.0.3.1683-0-source.tar.xz) = 3b1d075ced4dfcf099723f06a8a18ac6821aa9fd3c0c9919f44b4bb7126390436dc1a9f61369f0dd7401af5bbac82dff02edf28555046c89cbe33657e26fd937 +SHA512 (Firebird-3.0.6.33328-0.tar.bz2) = e8fabb9b4e3e9c8f6a1ae5566f94b64d268cc3264b486650246ab6214baf3f073e8e77c009b92f8061dc3ad9c5d4da0dc5c5c1817b66b8bc7f41ac40cf82f62b