- up to 3.0.1.32609; patches from FC and Debian auto/th/Firebird-3.0.1.32609-0.1
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 2 Feb 2017 11:46:13 +0000 (12:46 +0100)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 2 Feb 2017 11:46:13 +0000 (12:46 +0100)
Firebird-noroot.patch [deleted file]
Firebird.spec
Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch [new file with mode: 0644]
Provide-sized-global-delete-operators-when-compiled.patch [new file with mode: 0644]
no-copy-from-icu.patch [new file with mode: 0644]
parallel-build.patch [new file with mode: 0644]

diff --git a/Firebird-noroot.patch b/Firebird-noroot.patch
deleted file mode 100644 (file)
index afbd4ad..0000000
+++ /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.
index eddf9b7..8103acd 100644 (file)
@@ -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/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 (file)
index 0000000..981b09b
--- /dev/null
@@ -0,0 +1,29 @@
+From: asfernandes <asfernandes@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 (file)
index 0000000..1302d1d
--- /dev/null
@@ -0,0 +1,36 @@
+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
+
+
diff --git a/no-copy-from-icu.patch b/no-copy-from-icu.patch
new file mode 100644 (file)
index 0000000..42ef318
--- /dev/null
@@ -0,0 +1,52 @@
+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
+@@ -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 (file)
index 0000000..dc43df9
--- /dev/null
@@ -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@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
This page took 0.218604 seconds and 4 git commands to generate.