[packages/Firebird] - up to 3.0.1.32609; patches from FC and Debian
arekm
arekm at pld-linux.org
Thu Feb 2 12:46:25 CET 2017
commit 8f47d69b00b6c3b422924c807a7f11bf6f237e81
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Thu Feb 2 12:46:13 2017 +0100
- up to 3.0.1.32609; patches from FC and Debian
Firebird-noroot.patch | 14 --
Firebird.spec | 18 ++-
...nerated-code-compatible-with-gcc-6-in-C-1.patch | 29 ++++
...zed-global-delete-operators-when-compiled.patch | 36 +++++
no-copy-from-icu.patch | 52 +++++++
parallel-build.patch | 169 +++++++++++++++++++++
6 files changed, 300 insertions(+), 18 deletions(-)
---
diff --git a/Firebird.spec b/Firebird.spec
index eddf9b7..8103acd 100644
--- a/Firebird.spec
+++ b/Firebird.spec
@@ -17,12 +17,12 @@ Summary(de.UTF-8): Firebird - relationalen Open-Source- Datenbankmanagementsyste
Summary(pl.UTF-8): Firebird - serwer baz danych SQL oraz narzędzia klienckie
Name: Firebird
# FirebirdCS/FirebirdSS (Classic Server/Super Server)?
-Version: 3.0.0.32483
+Version: 3.0.1.32609
Release: 0.1
License: Interbase Public License 1.0, Initial Developer's Public License 1.0
Group: Applications/Databases
Source0: http://downloads.sourceforge.net/firebird/%{name}-%{version}-0.tar.bz2
-# Source0-md5: 821260b61dafc22899d1464d4e91ee6a
+# Source0-md5: 85e2ace3d6950793d4c6917473e00c74
Source1: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/Firebird-3-QuickStart.pdf
# Source1-md5: 8e029d449e9cb3e1da8213ac6c11ad02
# distfiles refuses this, would require some audit to allow '('/')' chars
@@ -52,7 +52,10 @@ Patch3: %{name}-FHS.patch
Patch4: %{name}-opt.patch
Patch5: %{name}-gcc-icu.patch
Patch6: %{name}-libpath.patch
-Patch7: %{name}-noroot.patch
+Patch7: Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
+Patch8: Provide-sized-global-delete-operators-when-compiled.patch
+Patch9: parallel-build.patch
+Patch10: no-copy-from-icu.patch
URL: http://www.firebirdsql.org/
BuildRequires: autoconf >= 2.67
BuildRequires: automake
@@ -63,6 +66,8 @@ BuildRequires: libicu-devel
BuildRequires: libstdc++-devel
BuildRequires: libtommath-devel
BuildRequires: libtool >= 2:2
+# for lockfile
+BuildRequires: procmail
BuildRequires: rpmbuild(macros) >= 1.268
BuildRequires: sed >= 4.0
BuildRequires: zlib-devel
@@ -163,6 +168,9 @@ Obszerna dokumentacja do baz InterBase i Firebird.
%patch5 -p0
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
mkdir docs
cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} docs
@@ -177,8 +185,9 @@ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
%{__autoconf}
%configure \
+ CFLAGS="%{rpmcflags} -fno-delete-null-pointer-checks" \
--prefix=%{ibdir} \
- --with-editline \
+ --with-system-editline \
--with-fbconf=%{_sysconfdir}/firebird \
--with-fbinclude=%{_includedir} \
--with-fblib=%{_libdir} \
@@ -190,6 +199,7 @@ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
--with-system-editline \
%{?debug:--enable-debug} \
--disable-rpath \
+ --disable-binreloc \
%{?with_ss:--enable-superserver} \
%{__make} -j1
diff --git a/Firebird-noroot.patch b/Firebird-noroot.patch
deleted file mode 100644
index afbd4ad..0000000
--- a/Firebird-noroot.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- Firebird-3.0.0.32483-0/builds/install/arch-specific/linux/makeInstallImage.sh.in.orig 2016-04-14 16:07:29.000000000 +0200
-+++ Firebird-3.0.0.32483-0/builds/install/arch-specific/linux/makeInstallImage.sh.in 2016-08-31 21:15:58.897726690 +0200
-@@ -28,11 +28,6 @@
- # This script builds an image of the installed system into
- # the gen/buildroot directory.
-
--if [ "`whoami`" != "root" ]; then
-- echo 'You must be root to build package'
-- exit 1
--fi
--
- # Making an assumption that this program is being run in the gen directory
- BuildRootDir=..
- BuiltFBDir=Release/firebird # Where the just build fb exists.
diff --git a/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch b/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
new file mode 100644
index 0000000..981b09b
--- /dev/null
+++ b/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
@@ -0,0 +1,29 @@
+From: asfernandes <asfernandes at users.sourceforge.net>
+Date: Sat, 5 Mar 2016 03:39:36 +0000
+Subject: Make the generated code compatible with gcc 6 in C++-14 mode.
+ (cherry picked from commit 3618aa2171674babf79ef935aa049c40a3db1321)
+Patch-mainline:
+Git-commit: 3618aa2171674babf79ef935aa049c40a3db1321
+References: bsc#964466 CORE-5099
+
+---
+ src/gpre/c_cxx.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gpre/c_cxx.cpp b/src/gpre/c_cxx.cpp
+index df175dca9465..bafce8f282bf 100644
+--- a/src/gpre/c_cxx.cpp
++++ b/src/gpre/c_cxx.cpp
+@@ -2820,7 +2820,7 @@ static void gen_request(const gpre_req* request)
+ printa(0, "static %sshort\n isc_%dl = %d;",
+ (request->req_flags & REQ_extend_dpb) ? "" : CONST_STR,
+ request->req_ident, request->req_length);
+- printa(0, "static %schar\n isc_%d [] = {", CONST_STR, request->req_ident);
++ printa(0, "static %sunsigned char\n isc_%d [] = {", CONST_STR, request->req_ident);
+
+ const TEXT* string_type = "blr";
+ if (gpreGlob.sw_raw)
+--
+2.8.2
+
+
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 <mkubecek at 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
+
+
diff --git a/no-copy-from-icu.patch b/no-copy-from-icu.patch
new file mode 100644
index 0000000..42ef318
--- /dev/null
+++ b/no-copy-from-icu.patch
@@ -0,0 +1,52 @@
+Description: Link isql with ICU instead of embedding part of it in the source
+Author: Damyan Ivanov <dmn at 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
+@@ -454,7 +454,8 @@ $(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)
+
+ nbackup: $(NBACKUP)
+
diff --git a/parallel-build.patch b/parallel-build.patch
new file mode 100644
index 0000000..dc43df9
--- /dev/null
+++ b/parallel-build.patch
@@ -0,0 +1,169 @@
+Description: allow building with make -jN
+ without this there are sporadic segmentation faults
+ .
+ it seems that when gpre opens a database, it clashes with other gpre
+ processes that have the database open. perhaps this is because at
+ this stage of the build the compiled firebird engine lacks ability for
+ synchronisation. So, wrap all engine-using calls with a lock file
+Author: Damyan Ivanov <dmn at debian.org>
+Forwarded: no
+
+--- a/builds/posix/Makefile.in
++++ b/builds/posix/Makefile.in
+@@ -329,8 +329,8 @@ yachts.lnk: metadata.fdb
+
+ metadata.fdb: $(RUN_ISQL) $(SRC_ROOT)/dbs/metadata.sql
+ -$(RM) $@
+- $(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql
+- $(RUN_GFIX) -mode read_only $@
++ $(call LOCK_RUN,$(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql)
++ $(call LOCK_RUN,$(RUN_GFIX) -mode read_only $@)
+ $(CHMOD) 0444 $@
+
+ $(HELP_FDB): help.fdb
+@@ -339,7 +339,7 @@ $(HELP_FDB): help.fdb
+ $(CHMOD) 0444 $@
+
+ help.fdb: $(BLD_ROOT)/misc/help.gbak
+- $(RUN_GBAK) -MODE read_only -R $< $@
++ $(call LOCK_RUN,$(RUN_GBAK) -MODE read_only -R $< $@)
+ $(CHMOD) 0444 $@
+
+ $(SECURITY_FDB): security.fdb
+@@ -349,18 +349,18 @@ $(SECURITY_FDB): security.fdb
+ security.fdb: $(SRC_ROOT)/dbs/security.sql
+ -$(RM) $@
+ -$(RM) $(SECURITY_TMP)
+- echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL)
+- $(RUN_GFIX) -write async $(SECURITY_TMP)
+- $(RUN_ISQL) -i $^ $(SECURITY_TMP)
++ $(call LOCK_RUN,echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL))
++ $(call LOCK_RUN,$(RUN_GFIX) -write async $(SECURITY_TMP))
++ $(call LOCK_RUN,$(RUN_ISQL) -i $^ $(SECURITY_TMP))
+ $(CHMOD) a=rw $(SECURITY_TMP)
+ $(CP) $(SECURITY_TMP) $@
+- $(RUN_GFIX) -write sync $@
++ $(call LOCK_RUN,$(RUN_GFIX) -write sync $@)
+
+ msg.timestamp: $(MSG_FILES)
+ -$(RM) msg.fdb
+- echo create database \'msg.fdb\'\; | $(RUN_ISQL)
+- $(RUN_GFIX) -write async msg.fdb
+- for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done
++ $(call LOCK_RUN,echo create database \'msg.fdb\'\; | $(RUN_ISQL))
++ $(call LOCK_RUN,$(RUN_GFIX) -write async msg.fdb)
++ $(call LOCK_RUN,for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done)
+ $(TOUCH) $@
+
+
+@@ -528,7 +528,7 @@ codes: gen_codes
+ ids: $(IDS)
+
+ gen_codes: $(CODES) msg.timestamp
+- $(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT)
++ $(call LOCK_RUN,$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT))
+
+ $(CODES): $(CODES_Objects) $(COMMON_LIB)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+@@ -564,7 +564,7 @@ examples: include_generic
+ message_file: $(FIREBIRD_MSG)
+
+ $(FIREBIRD_MSG): $(BUILD_FILE) msg.timestamp
+- $(BUILD_FILE) -d msg.fdb -f $@
++ $(call LOCK_RUN,$(BUILD_FILE) -d msg.fdb -f $@)
+ $(CHMOD_6) $@
+
+ $(BUILD_FILE): $(BUILD_Objects) $(COMMON_LIB)
+--- a/builds/posix/make.defaults
++++ b/builds/posix/make.defaults
+@@ -378,6 +378,7 @@ GPRE_BOOT = $(RBIN)/gpre_boot$(EXE
+ GPRE = $(BIN)/gpre$(EXEC_EXT)
+ RUN_GPRE = $(RBIN)/gpre$(EXEC_EXT)
+ GPRE_CURRENT = $(RBIN)/gpre_current$(EXEC_EXT)
++LOCK_RUN = sh -x -c "lockfile -1 $(BIN)/build-db.lock && $(subst $$,\$$,$(1)); res=\$$?; rm -f $(BIN)/build-db.lock; exit \$$res"
+
+
+ # From msgs
+--- a/builds/posix/make.rules
++++ b/builds/posix/make.rules
+@@ -72,17 +72,17 @@ ISQL_GPRE_FLAGS = -m -z -n -ocxx
+ .SUFFIXES: .c .e .epp .cpp
+
+ .e.c:
+- $(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@)
+
+
+ $(OBJ)/jrd/%.cpp: $(SRC_ROOT)/jrd/%.epp
+- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@)
+
+ $(OBJ)/isql/%.cpp: $(SRC_ROOT)/isql/%.epp
+- $(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@)
+
+ $(OBJ)/%.cpp: $(SRC_ROOT)/%.epp
+- $(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@)
+
+
+ .SUFFIXES: .lo .o .cpp .c
+--- a/builds/posix/make.shared.targets
++++ b/builds/posix/make.shared.targets
+@@ -65,13 +65,13 @@ $(OBJ)/dsql/Parser.o $(OBJ)/yvalve/keywo
+
+ # Special cases for building cpp from epp
+ $(OBJ)/dsql/metd.cpp: $(SRC_ROOT)/dsql/metd.epp
+- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+
+ $(OBJ)/dsql/DdlNodes.cpp: $(SRC_ROOT)/dsql/DdlNodes.epp
+- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+
+ $(OBJ)/dsql/PackageNodes.cpp: $(SRC_ROOT)/dsql/PackageNodes.epp
+- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+
+ # Adding resources as prerequisite for some files
+
+--- a/builds/posix/Makefile.in.examples
++++ b/builds/posix/Makefile.in.examples
+@@ -123,8 +123,8 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)%
+
+ $(EMPLOYEE_DB): $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ -$(RM) $(EMPLOYEE_DB)
+- ./empbuild $(EMPLOYEE_DB)
+- $(GFIX) -write sync $(EMPLOYEE_DB)
++ $(call LOCK_RUN,./empbuild $(EMPLOYEE_DB))
++ $(call LOCK_RUN,$(GFIX) -write sync $(EMPLOYEE_DB))
+ -$(CHMOD_6) $(EMPLOYEE_DB)
+
+ # To get past the fact isql is called from the programs, we create a local link in this directory
+@@ -140,7 +140,7 @@ $(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_
+
+ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/empbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ -$(RM) $(EXAMPLES_DEST)/empbuild.fdb
+- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql
++ $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql)
+
+ # The chain for intlemp.fdb is the same a script file to create an empty database
+ # to allow a .e program to be compiled, to then create and populate with data
+@@ -148,7 +148,7 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPL
+
+ $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ -$(RM) intlemp.fdb
+- ./intlbld intlemp.fdb
++ $(call LOCK_RUN,./intlbld intlemp.fdb)
+ -$(CHMOD_6) intlemp.fdb
+
+ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB)
+@@ -158,7 +158,7 @@ $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_D
+
+ $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ -$(RM) intlbuild.fdb
+- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql
++ $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql)
+
+
+ $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/Firebird.git/commitdiff/8f47d69b00b6c3b422924c807a7f11bf6f237e81
More information about the pld-cvs-commit
mailing list