From 81ff231438487d0dc6c77dc78a407a097e4d40fd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Wed, 19 Sep 2012 18:06:41 +0200 Subject: [PATCH 1/1] - up to 2.5.1.26351; drop obsolete or unneded patches --- Firebird-64bit.patch | 20 -- Firebird-btyacc-segv.patch | 11 - Firebird-gcc.patch | 412 ----------------------------- Firebird-morearchs.patch | 69 ----- Firebird-opt.patch | 137 ---------- Firebird.spec | 19 +- firebird-2.5.1-svn-CORE-3610.patch | 32 +++ 7 files changed, 41 insertions(+), 659 deletions(-) delete mode 100644 Firebird-64bit.patch delete mode 100644 Firebird-btyacc-segv.patch delete mode 100644 Firebird-gcc.patch delete mode 100644 Firebird-morearchs.patch delete mode 100644 Firebird-opt.patch create mode 100644 firebird-2.5.1-svn-CORE-3610.patch diff --git a/Firebird-64bit.patch b/Firebird-64bit.patch deleted file mode 100644 index 685aa75..0000000 --- a/Firebird-64bit.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- Firebird-2.5.0.26074-0/src/gpre/pas.cpp.orig 2010-09-08 10:43:39.000000000 +0200 -+++ Firebird-2.5.0.26074-0/src/gpre/pas.cpp 2010-10-28 08:44:04.123740205 +0200 -@@ -1800,7 +1800,7 @@ - PAT args; - args.pat_database = (gpre_dbb*) init->nod_arg[3]; - args.pat_vector1 = status_vector(action); -- args.pat_value1 = (int) init->nod_arg[2]; -+ args.pat_value1 = (int) (IPTR)init->nod_arg[2]; - args.pat_value2 = (int) event_list->nod_count; - args.pat_string1 = GDS_EVENT_WAIT; - args.pat_string2 = GDS_EVENT_COUNTS; -@@ -1872,7 +1872,7 @@ - gpre_sym* stack_name = (gpre_sym*) event_init->nod_arg[0]; - if (!strcmp(event_name->sym_string, stack_name->sym_string)) - { -- ident = (int) event_init->nod_arg[2]; -+ ident = (int) (IPTR)event_init->nod_arg[2]; - database = (gpre_dbb*) event_init->nod_arg[3]; - } - } diff --git a/Firebird-btyacc-segv.patch b/Firebird-btyacc-segv.patch deleted file mode 100644 index 430373b..0000000 --- a/Firebird-btyacc-segv.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Firebird-2.1.3.18185-0/extern/btyacc/main.c.orig 2006-04-29 02:29:46.000000000 +0200 -+++ Firebird-2.1.3.18185-0/extern/btyacc/main.c 2010-08-29 08:33:44.738817429 +0200 -@@ -300,7 +300,7 @@ - tmpdir = DEFAULT_TMPDIR; - - len = strlen(tmpdir); -- i = len + 13; -+ i = len + 14; /* add len of temp_form + one for NUL */ - if (len && tmpdir[len-1] != DIR_CHAR) - ++i; - diff --git a/Firebird-gcc.patch b/Firebird-gcc.patch deleted file mode 100644 index da33af4..0000000 --- a/Firebird-gcc.patch +++ /dev/null @@ -1,412 +0,0 @@ ---- src/common/classes/array.h.orig 2012-06-20 09:58:37.000000000 +0200 -+++ src/common/classes/array.h 2012-06-26 10:37:49.000000000 +0200 -@@ -347,7 +347,7 @@ - size_t add(const Value& item) { - size_t pos; - find(KeyOfValue::generate(this, item), pos); -- insert(pos, item); -+ this->insert(pos, item); - return pos; - } - }; ---- src/common/classes/stack.h.orig 2012-06-20 09:58:37.000000000 +0200 -+++ src/common/classes/stack.h 2012-06-26 10:41:54.000000000 +0200 -@@ -48,7 +48,7 @@ - Entry(Object e, Entry* stk) - : inherited(), next(stk) - { -- add(e); -+ this->add(e); - } - - Entry(Entry* stk) : inherited(), next(stk) { } -@@ -62,7 +62,7 @@ - { - if (inherited::getCount() < this->getCapacity()) - { -- add(e); -+ this->add(e); - return this; - } - Entry* newEntry = FB_NEW(p) Entry(e, this); ---- src/common/classes/vector.h.orig 2012-06-20 09:58:37.000000000 +0200 -+++ src/common/classes/vector.h 2012-06-26 10:37:49.000000000 +0200 -@@ -135,7 +135,7 @@ - size_t add(const Value& item) { - size_t pos; - find(KeyOfValue::generate(this, item), pos); -- insert(pos, item); -+ this->insert(pos, item); - return pos; - } - }; ---- src/jrd/Collation.cpp.orig 2012-06-20 09:58:27.000000000 +0200 -+++ src/jrd/Collation.cpp 2012-06-26 11:35:42.000000000 +0200 -@@ -191,154 +191,53 @@ - - - template --bool SLEUTHNAME(Jrd::thread_db* tdbb_dummy, Jrd::TextType* obj, USHORT flags, -- const SLEUTHTYPE* search, SLONG search_len, -- const SLEUTHTYPE* match, SLONG match_len) --{ --/************************************** -- * -- * E V L _ ? ? _ s l e u t h _ c h e c k -- * -- ************************************** -- * -- * Functional description -- * Evaluate the "sleuth" search operator. -- * -- * Turn the (pointer, byte length) input parameters into -- * (pointer, end_pointer) for use in SLEUTH_AUX -- * -- **************************************/ -- fb_assert((match_len % sizeof(SLEUTHTYPE)) == 0); -- fb_assert((search_len % sizeof(SLEUTHTYPE)) == 0); -- fb_assert(obj->getCanonicalWidth() == sizeof(SLEUTHTYPE)); -- -- const SLEUTHTYPE* const end_match = match + (match_len / sizeof(SLEUTHTYPE)); -- const SLEUTHTYPE* const end_search = search + (search_len / sizeof(SLEUTHTYPE)); -- -- return SLEUTH_AUX(obj, flags, search, end_search, match, end_match); --} -- -- --template --ULONG SLEUTH_MERGE_NAME(Jrd::thread_db* tdbb_dummy, Jrd::TextType* obj, -- const SLEUTHTYPE* match, SLONG match_bytes, -- const SLEUTHTYPE* control, SLONG control_bytes, -- SLEUTHTYPE* combined, SLONG combined_bytes) -+static bool SLEUTH_CLASS_NAME( -+ Jrd::TextType* obj, -+ USHORT flags, -+ const SLEUTHTYPE* char_class, -+ const SLEUTHTYPE* const end_class, -+ SLEUTHTYPE character) - { - /************************************** - * -- * E V L _ ? ? _ s l e u t h _ m e r g e -+ * s l e u t h _ c l a s s - * - ************************************** - * - * Functional description -- * Merge the matching pattern and control strings to give a cannonical -- * matching pattern. Return the length of the combined string. -- * -- * What this routine does is to take the language template, strip off -- * the prefix and put it in the output string, then parse the definitions -- * into an array of character pointers. The index array is the defined -- * character. The routine then takes the actual match pattern and uses -- * the characters in it to index into the definitions to produce an equivalent -- * pattern in the cannonical language. -- * -- * The silly loop setting *v++ to zero initializes the array up to the -- * highest character defined (also max_op). Believe it or not, that part -- * is not a bug. -+ * See if a character is a member of a class. -+ * Japanese version operates on short-based buffer, -+ * instead of SCHAR-based. - * - **************************************/ -- fb_assert(match != NULL); -- fb_assert(control != NULL); -- fb_assert(combined != NULL); -- -- fb_assert((match_bytes % sizeof(SLEUTHTYPE)) == 0); -- fb_assert((control_bytes % sizeof(SLEUTHTYPE)) == 0); -+ fb_assert(char_class != NULL); -+ fb_assert(end_class != NULL); -+ fb_assert(char_class <= end_class); - fb_assert(obj->getCanonicalWidth() == sizeof(SLEUTHTYPE)); - -- const SLEUTHTYPE* const end_match = match + (match_bytes / sizeof(SLEUTHTYPE)); -- const SLEUTHTYPE* const end_control = control + (control_bytes / sizeof(SLEUTHTYPE)); -- -- SLEUTHTYPE max_op = 0; -- SLEUTHTYPE* comb = combined; -- SLEUTHTYPE* vector[256]; -- SLEUTHTYPE** v = vector; -- SLEUTHTYPE temp[256]; -- SLEUTHTYPE* t = temp; -- --/* Parse control string into substitution strings and initializing string */ -+ bool result = true; - -- while (control < end_control) { -- SLEUTHTYPE c = *control++; -- if (*control == *(SLEUTHTYPE*)obj->getGdmlSubstituteCanonic()) { -- /* Note: don't allow substitution characters larger than vector */ -- SLEUTHTYPE** const end_vector = -- vector + (((int)c < FB_NELEM(vector)) ? c : 0); -- while (v <= end_vector) -- *v++ = 0; -- *end_vector = t; -- ++control; -- while (control < end_control) { -- c = *control++; -- if ((t > temp && t[-1] == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) -- || ((c != *(SLEUTHTYPE*)obj->getGdmlCommaCanonic()) && (c != *(SLEUTHTYPE*)obj->getGdmlRParenCanonic()))) -- { -- *t++ = c; -- } -- else -- break; -- } -- *t++ = 0; -- } -- else if (c == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic() && control < end_control) -- *comb++ = *control++; -- else if (c == *(SLEUTHTYPE*)obj->getGdmlRParenCanonic()) -- break; -- else if (c != *(SLEUTHTYPE*)obj->getGdmlLParenCanonic()) -- *comb++ = c; -+ if (*char_class == *(SLEUTHTYPE*)obj->getGdmlNotCanonic()) { -+ ++char_class; -+ result = false; - } - -- max_op = v - vector; -- --/* Interpret matching string, substituting where appropriate */ -- -- while (match < end_match) { -- const SLEUTHTYPE c = *match++; -- -- /* if we've got a defined character, slurp the definition */ -- -- SLEUTHTYPE* p; -- if (c <= max_op && (p = vector[c])) { -- while (*p) -- *comb++ = *p++; -- -- /* if we've got the definition of a quote character, -- slurp the next character too */ -- -- if (comb > combined && comb[-1] == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic() && *match) -- *comb++ = *match++; -+ while (char_class < end_class) { -+ const SLEUTHTYPE c = *char_class++; -+ if (c == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) { -+ if (*char_class++ == character) -+ return true; - } -- -- /* at this point we've got a non-match, but as it might be one of ours, -- quote it. */ -- -- else { -- if ((((size_t) c) < FB_NELEM(special)) && special[c] && -- comb > combined && comb[-1] != *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) -- { -- *comb++ = *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic(); -- } -- *comb++ = c; -+ else if (*char_class == *(SLEUTHTYPE*)obj->getGdmlRangeCanonic()) { -+ char_class += 2; -+ if (character >= c && character <= char_class[-1]) -+ return result; - } -+ else if (character == c) -+ return result; - } - --/* Put in trailing stuff */ -- -- while (control < end_control) -- *comb++ = *control++; -- -- /* YYY - need to add code watching for overflow of combined */ -- -- return (comb - combined) * sizeof(SLEUTHTYPE); -+ return !result; - } - - -@@ -473,53 +372,154 @@ - - - template --static bool SLEUTH_CLASS_NAME( -- Jrd::TextType* obj, -- USHORT flags, -- const SLEUTHTYPE* char_class, -- const SLEUTHTYPE* const end_class, -- SLEUTHTYPE character) -+bool SLEUTHNAME(Jrd::thread_db* tdbb_dummy, Jrd::TextType* obj, USHORT flags, -+ const SLEUTHTYPE* search, SLONG search_len, -+ const SLEUTHTYPE* match, SLONG match_len) - { - /************************************** - * -- * s l e u t h _ c l a s s -+ * E V L _ ? ? _ s l e u t h _ c h e c k - * - ************************************** - * - * Functional description -- * See if a character is a member of a class. -- * Japanese version operates on short-based buffer, -- * instead of SCHAR-based. -+ * Evaluate the "sleuth" search operator. -+ * -+ * Turn the (pointer, byte length) input parameters into -+ * (pointer, end_pointer) for use in SLEUTH_AUX - * - **************************************/ -- fb_assert(char_class != NULL); -- fb_assert(end_class != NULL); -- fb_assert(char_class <= end_class); -+ fb_assert((match_len % sizeof(SLEUTHTYPE)) == 0); -+ fb_assert((search_len % sizeof(SLEUTHTYPE)) == 0); - fb_assert(obj->getCanonicalWidth() == sizeof(SLEUTHTYPE)); - -- bool result = true; -+ const SLEUTHTYPE* const end_match = match + (match_len / sizeof(SLEUTHTYPE)); -+ const SLEUTHTYPE* const end_search = search + (search_len / sizeof(SLEUTHTYPE)); - -- if (*char_class == *(SLEUTHTYPE*)obj->getGdmlNotCanonic()) { -- ++char_class; -- result = false; -+ return SLEUTH_AUX(obj, flags, search, end_search, match, end_match); -+} -+ -+ -+template -+ULONG SLEUTH_MERGE_NAME(Jrd::thread_db* tdbb_dummy, Jrd::TextType* obj, -+ const SLEUTHTYPE* match, SLONG match_bytes, -+ const SLEUTHTYPE* control, SLONG control_bytes, -+ SLEUTHTYPE* combined, SLONG combined_bytes) -+{ -+/************************************** -+ * -+ * E V L _ ? ? _ s l e u t h _ m e r g e -+ * -+ ************************************** -+ * -+ * Functional description -+ * Merge the matching pattern and control strings to give a cannonical -+ * matching pattern. Return the length of the combined string. -+ * -+ * What this routine does is to take the language template, strip off -+ * the prefix and put it in the output string, then parse the definitions -+ * into an array of character pointers. The index array is the defined -+ * character. The routine then takes the actual match pattern and uses -+ * the characters in it to index into the definitions to produce an equivalent -+ * pattern in the cannonical language. -+ * -+ * The silly loop setting *v++ to zero initializes the array up to the -+ * highest character defined (also max_op). Believe it or not, that part -+ * is not a bug. -+ * -+ **************************************/ -+ fb_assert(match != NULL); -+ fb_assert(control != NULL); -+ fb_assert(combined != NULL); -+ -+ fb_assert((match_bytes % sizeof(SLEUTHTYPE)) == 0); -+ fb_assert((control_bytes % sizeof(SLEUTHTYPE)) == 0); -+ fb_assert(obj->getCanonicalWidth() == sizeof(SLEUTHTYPE)); -+ -+ const SLEUTHTYPE* const end_match = match + (match_bytes / sizeof(SLEUTHTYPE)); -+ const SLEUTHTYPE* const end_control = control + (control_bytes / sizeof(SLEUTHTYPE)); -+ -+ SLEUTHTYPE max_op = 0; -+ SLEUTHTYPE* comb = combined; -+ SLEUTHTYPE* vector[256]; -+ SLEUTHTYPE** v = vector; -+ SLEUTHTYPE temp[256]; -+ SLEUTHTYPE* t = temp; -+ -+/* Parse control string into substitution strings and initializing string */ -+ -+ while (control < end_control) { -+ SLEUTHTYPE c = *control++; -+ if (*control == *(SLEUTHTYPE*)obj->getGdmlSubstituteCanonic()) { -+ /* Note: don't allow substitution characters larger than vector */ -+ SLEUTHTYPE** const end_vector = -+ vector + (((int)c < FB_NELEM(vector)) ? c : 0); -+ while (v <= end_vector) -+ *v++ = 0; -+ *end_vector = t; -+ ++control; -+ while (control < end_control) { -+ c = *control++; -+ if ((t > temp && t[-1] == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) -+ || ((c != *(SLEUTHTYPE*)obj->getGdmlCommaCanonic()) && (c != *(SLEUTHTYPE*)obj->getGdmlRParenCanonic()))) -+ { -+ *t++ = c; -+ } -+ else -+ break; -+ } -+ *t++ = 0; -+ } -+ else if (c == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic() && control < end_control) -+ *comb++ = *control++; -+ else if (c == *(SLEUTHTYPE*)obj->getGdmlRParenCanonic()) -+ break; -+ else if (c != *(SLEUTHTYPE*)obj->getGdmlLParenCanonic()) -+ *comb++ = c; - } - -- while (char_class < end_class) { -- const SLEUTHTYPE c = *char_class++; -- if (c == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) { -- if (*char_class++ == character) -- return true; -+ max_op = v - vector; -+ -+/* Interpret matching string, substituting where appropriate */ -+ -+ while (match < end_match) { -+ const SLEUTHTYPE c = *match++; -+ -+ /* if we've got a defined character, slurp the definition */ -+ -+ SLEUTHTYPE* p; -+ if (c <= max_op && (p = vector[c])) { -+ while (*p) -+ *comb++ = *p++; -+ -+ /* if we've got the definition of a quote character, -+ slurp the next character too */ -+ -+ if (comb > combined && comb[-1] == *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic() && *match) -+ *comb++ = *match++; - } -- else if (*char_class == *(SLEUTHTYPE*)obj->getGdmlRangeCanonic()) { -- char_class += 2; -- if (character >= c && character <= char_class[-1]) -- return result; -+ -+ /* at this point we've got a non-match, but as it might be one of ours, -+ quote it. */ -+ -+ else { -+ if ((((size_t) c) < FB_NELEM(special)) && special[c] && -+ comb > combined && comb[-1] != *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic()) -+ { -+ *comb++ = *(SLEUTHTYPE*)obj->getGdmlQuoteCanonic(); -+ } -+ *comb++ = c; - } -- else if (character == c) -- return result; - } - -- return !result; -+/* Put in trailing stuff */ -+ -+ while (control < end_control) -+ *comb++ = *control++; -+ -+ /* YYY - need to add code watching for overflow of combined */ -+ -+ return (comb - combined) * sizeof(SLEUTHTYPE); - } - - diff --git a/Firebird-morearchs.patch b/Firebird-morearchs.patch deleted file mode 100644 index d4a8134..0000000 --- a/Firebird-morearchs.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- Firebird-2.5.0.26074-0/src/jrd/common.h.orig 2010-09-08 10:43:27.000000000 +0200 -+++ Firebird-2.5.0.26074-0/src/jrd/common.h 2010-10-28 07:51:57.395734339 +0200 -@@ -158,6 +158,11 @@ - #define RISC_ALIGNMENT - #endif // IA64 - -+#ifdef __alpha__ -+#define IMPLEMENTATION isc_info_db_impl_linux_alpha /* 82 */ -+#define RISC_ALIGNMENT -+#endif -+ - #ifndef USE_POSIX_THREADS - // force pthread detection on Linux for distros that do not provide - // POSIX thread compatability ---- Firebird-2.5.0.26074-0/src/jrd/inf_pub.h.orig 2010-09-08 10:43:27.000000000 +0200 -+++ Firebird-2.5.0.26074-0/src/jrd/inf_pub.h 2010-10-28 07:52:00.183734339 +0200 -@@ -213,6 +213,7 @@ - - isc_info_db_impl_linux_sh = 80, - isc_info_db_impl_linux_sheb = 81, -+ isc_info_db_impl_linux_alpha = 82, - - isc_info_db_impl_last_value // Leave this LAST! - }; ---- Firebird-2.5.0.26074-0/src/jrd/pag.cpp.orig 2010-09-08 10:43:27.000000000 +0200 -+++ Firebird-2.5.0.26074-0/src/jrd/pag.cpp 2010-10-28 07:58:22.771734339 +0200 -@@ -160,9 +160,10 @@ - static const int CLASS_LINUX_S390 = 37; // LINUX/s390 - static const int CLASS_LINUX_SH = 38; // LINUX/SH (little-endian) - static const int CLASS_LINUX_SHEB = 39; // LINUX/SH (big-endian) -+static const int CLASS_LINUX_ALPHA = 40; // LINUX/Alpha - - static const int CLASS_MAX10 = CLASS_LINUX_AMD64; // This should not be changed, no new ports with ODS10 --static const int CLASS_MAX = CLASS_LINUX_SHEB; -+static const int CLASS_MAX = CLASS_LINUX_ALPHA; - - // ARCHITECTURE COMPATIBILITY CLASSES - -@@ -259,7 +260,8 @@ - archBigEndian, // CLASS_LINUX_S390X - archBigEndian, // CLASS_LINUX_S390 - archLittleEndian, // CLASS_LINUX_SH -- archBigEndian // CLASS_LINUX_SHEB -+ archBigEndian, // CLASS_LINUX_SHEB -+ archLittleEndian // CLASS_LINUX_ALPHA - }; - - #ifdef __sun -@@ -319,6 +321,8 @@ - const SSHORT CLASS = CLASS_LINUX_SH; - #elif defined(SHEB) - const SSHORT CLASS = CLASS_LINUX_SHEB; -+#elif defined(__alpha__) -+const SSHORT CLASS = CLASS_LINUX_ALPHA; - #else - #error no support on other hardware for Linux - #endif ---- Firebird-2.5.0.26074-0/src/jrd/utl.cpp.orig 2010-09-08 10:43:27.000000000 +0200 -+++ Firebird-2.5.0.26074-0/src/jrd/utl.cpp 2010-10-28 07:57:59.231736853 +0200 -@@ -225,7 +225,8 @@ - "Firebird/linux s390x", // 78 - "Firebird/linux s390", // 79 - "Firebird/linux SH", // 80 -- "Firebird/linux SHEB" // 81 -+ "Firebird/linux SHEB", // 81 -+ "Firebird/linux Alpha" // 82 - }; - - diff --git a/Firebird-opt.patch b/Firebird-opt.patch deleted file mode 100644 index a2e0d88..0000000 --- a/Firebird-opt.patch +++ /dev/null @@ -1,137 +0,0 @@ ---- Firebird-2.5.0.26074-0/builds/posix/prefix.linux.orig 2010-09-08 10:41:23.000000000 +0200 -+++ Firebird-2.5.0.26074-0/builds/posix/prefix.linux 2010-10-28 08:55:49.323734339 +0200 -@@ -18,8 +18,8 @@ - # - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - --COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 --OPTIMIZE_FLAGS=-O3 -march=i586 -mtune=i686 -fno-omit-frame-pointer -+COMMON_FLAGS=@CFLAGS@ -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer - WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable - - PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_amd64.orig 2007-05-03 13:24:50.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_amd64 2010-08-29 10:48:42.742820781 +0200 -@@ -18,8 +18,8 @@ - # - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - --COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 --OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer -+COMMON_FLAGS=@CFLAGS@ -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer - WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable - CXXFLAGS:= $(CXXFLAGS) -fno-rtti - ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_arm.orig 2008-04-15 16:11:33.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_arm 2010-08-29 10:50:20.766823295 +0200 -@@ -23,11 +23,11 @@ - - #LD=@CXX@ - --#PROD_FLAGS=-ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -pipe -MMD -fPIC --#DEV_FLAGS=-ggdb -DLINUX -DDEBUG_GDS_ALLOC -pipe -MMD -p -fPIC -Wall -Wno-switch -+COMMON_FLAGS=@CFLAGS@ -DLINUX -DARM -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0 -+OPTIMIZE_FLAGS= - --PROD_FLAGS=-O3 -DNDEBUG -DLINUX -DARM -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0 --DEV_FLAGS=-ggdb -DLINUX -DARM -pipe -p -MMD -fPIC -Wall -fsigned-char -fmessage-length=0 -+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) -+DEV_FLAGS=$(COMMON_FLAGS) -Wall - - OS_ServerFiles=inet_server.cpp - ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_generic.orig 2007-05-03 13:24:50.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_generic 2010-08-29 10:50:59.358822457 +0200 -@@ -18,10 +18,11 @@ - # - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - --COMMON_FLAGS=-DLINUX -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -+COMMON_FLAGS=@CFLAGS@ -DLINUX -pipe -MMD -fPIC -DFB_SEND_FLAGS=MSG_NOSIGNAL -+OPTIMIZE_FLAGS= - --PROD_FLAGS=-ggdb -O3 -DNDEBUG $(COMMON_FLAGS) --DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS) -+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) -+DEV_FLAGS=-Wall -Wno-switch $(COMMON_FLAGS) - CXXFLAGS:= $(CXXFLAGS) -fno-rtti - - OS_ServerFiles=inet_server.cpp ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_ia64.orig 2008-05-31 04:33:45.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_ia64 2010-08-29 10:51:21.938821619 +0200 -@@ -18,8 +18,8 @@ - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - # Adriano dos Santos Fernandes - --COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DIA64 -pipe -MMD -fPIC -fmessage-length=0 --OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer -+COMMON_FLAGS=@CFLAGS@ -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DIA64 -pipe -MMD -fPIC -fmessage-length=0 -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer - WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable - CXXFLAGS:= $(CXXFLAGS) -fno-rtti - ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_mips.orig 2008-01-17 13:20:44.000000000 +0100 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_mips 2010-08-29 10:51:45.386816591 +0200 -@@ -1,5 +1,5 @@ --COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 --OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer -fno-builtin -+COMMON_FLAGS=@CFLAGS@ -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer - WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable - - PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_mipsel.orig 2007-05-04 03:18:21.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_mipsel 2010-08-29 10:58:57.222819943 +0200 -@@ -19,10 +19,12 @@ - - LD=@CXX@ - --# -fno-builtin is used because GCC 3.0-3.2.2 had bug with builtins expansion --# you may remove it if engine is getting compiled with any other GCC version --PROD_FLAGS=-ggdb -O3 -fno-omit-frame-pointer -DNDEBUG -DLINUX -pipe -MMD -fPIC --DEV_FLAGS=-ggdb -DLINUX -DDEBUG_GDS_ALLOC -pipe -MMD -p -fPIC -Wall -Wno-switch -+COMMON_FLAGS=@CFLAGS@ -DLINUX -pipe -MMD -fPIC -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer -+WARN_FLAGS=-Wall -Wno-switch -+ -+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) -+DEV_FLAGS=-DDEBUG_GDS_ALLOC -p $(COMMON_FLAGS) $(WARN_FLAGS) - - OS_ServerFiles=inet_server.cpp - ---- Firebird-2.5.0.26074-0/builds/posix/prefix.linux_powerpc.orig 2010-09-08 10:41:23.000000000 +0200 -+++ Firebird-2.5.0.26074-0/builds/posix/prefix.linux_powerpc 2010-10-28 09:02:24.423734339 +0200 -@@ -18,9 +18,12 @@ - # - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - --PROD_FLAGS=-ggdb -fno-omit-frame-pointer -fsigned-char -DNDEBUG -DLINUX -pipe -MMD -fPIC -fmessage-length=0 -DLINUX -DPowerPC -DPPC -O3 -mcpu=powerpc --DEV_FLAGS=-ggdb -O0 -DLINUX -pipe -MMD -p -fPIC -Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -fmessage-length=0 -fsigned-char -DLINUX -DPowerPC -DPPC --#DEV_FLAGS=-DUSE_VALGRIND -ggdb -O0 -DLINUX -pipe -MMD -p -fPIC -Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -fmessage-length=0 -DLINUX -DPowerPC -DPPC -+COMMON_FLAGS=@CFLAGS@ -DLINUX -DPowerPC -DPPC -fsigned-char -pipe -MMD -fPIC -fmessage-length=0 -+OPTIMIZE_FLAGS=-fno-omit-frame-pointer -+WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -+ -+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS) -+DEV_FLAGS=-p $(COMMON_FLAGS) $(WARN_FLAGS) - - OS_ServerFiles=inet_server.cpp - ---- Firebird-2.1.3.18185-0/builds/posix/prefix.linux_sparc32.orig 2007-05-03 13:24:50.000000000 +0200 -+++ Firebird-2.1.3.18185-0/builds/posix/prefix.linux_sparc32 2010-08-29 11:04:26.538821619 +0200 -@@ -18,9 +18,10 @@ - # - # 2 Oct 2002, Nickolay Samofatov - Major cleanup - --COMMON_FLAGS=-m32 -DLINUX -pipe -MMD -fPIC -Dsparc -DFB_SEND_FLAGS=MSG_NOSIGNAL --PROD_FLAGS=-ggdb -mcpu=ultrasparc -mtune=ultrasparc -O3 -DNDEBUG $(COMMON_FLAGS) --DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS) -+COMMON_FLAGS=@CFLAGS@ -m32 -DLINUX -pipe -MMD -fPIC -Dsparc -DFB_SEND_FLAGS=MSG_NOSIGNAL -+ -+PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) -+DEV_FLAGS=-p -Wall -Wno-switch $(COMMON_FLAGS) - CXXFLAGS:= $(CXXFLAGS) -fno-rtti - - OS_ServerFiles=inet_server.cpp diff --git a/Firebird.spec b/Firebird.spec index 9a9b0ad..7a17d84 100644 --- a/Firebird.spec +++ b/Firebird.spec @@ -13,12 +13,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: 2.5.0.26074 -Release: 8 +Version: 2.5.1.26351 +Release: 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: 780f162ee71f087fc277adf09f966529 +# Source0-md5: 1772fba4f09c8fc84d989282405f90fd Source1: http://www.firebirdsql.org/pdfmanual/%{name}-2.5-QuickStart.pdf # Source1-md5: a7776f1eae45ba0b2543c203cd5271ae # distfiles refuses this, would require some audit to allow '('/')' chars @@ -44,12 +44,11 @@ Source102: firebird.inetd Patch0: %{name}-chmod.patch Patch1: %{name}-editline.patch Patch2: %{name}-va.patch -Patch3: %{name}-morearchs.patch +Patch3: Firebird-fix-CORE-3388.patch Patch4: %{name}-FHS.patch -Patch5: %{name}-64bit.patch + Patch6: %{name}-gcc-icu.patch -Patch7: %{name}-btyacc-segv.patch -Patch8: %{name}-opt.patch + Patch9: %{name}-rpath.patch Patch10: %{name}-noroot.patch URL: http://www.firebirdsql.org/ @@ -79,6 +78,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define ibdir %{_libdir}/interbase %define specflags -fno-strict-aliasing %define debugcflags -O1 -g -Wall -fno-strict-aliasing +%define Werror_cflags '' %description Firebird is a powerful, high-performance relational database designed @@ -168,10 +168,9 @@ Obszerna dokumentacja do baz InterBase i Firebird. %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 + %patch6 -p0 -%patch7 -p1 -%patch8 -p1 + %patch9 -p1 %patch10 -p1 diff --git a/firebird-2.5.1-svn-CORE-3610.patch b/firebird-2.5.1-svn-CORE-3610.patch new file mode 100644 index 0000000..075ad94 --- /dev/null +++ b/firebird-2.5.1-svn-CORE-3610.patch @@ -0,0 +1,32 @@ +--- src/jrd/vio.cpp 2011/09/29 03:27:33 53487 ++++ jrd/vio.cpp 2011/09/29 07:45:12 53488 +@@ -1821,7 +1821,6 @@ + + + bool VIO_get_current(thread_db* tdbb, +- //record_param* old_rpb, + record_param* rpb, + jrd_tra* transaction, + MemoryPool* pool, +@@ -2025,12 +2024,14 @@ + if (rpb->rpb_flags & rpb_deleted) + return !foreign_key; + +- if (rpb->rpb_flags & rpb_uk_modified) +- return !foreign_key; +- +- // clear lock error from status vector +- fb_utils::init_status(tdbb->tdbb_status_vector); +- return true; ++ if (foreign_key) ++ { ++ // clear lock error from status vector ++ fb_utils::init_status(tdbb->tdbb_status_vector); ++ return !(rpb->rpb_flags & rpb_uk_modified); ++ } ++ ++ return !foreign_key; + + case tra_dead: + if (transaction->tra_attachment->att_flags & ATT_no_cleanup) { + -- 2.44.0