update to 2.5.2.26540 [release 2.5.2.26540-1mamba;Tue Jun 04 2013]

This commit is contained in:
Automatic Build System 2024-01-05 22:18:48 +01:00
parent 5983b47281
commit 80a189a177
14 changed files with 1220 additions and 0 deletions

View File

@ -0,0 +1,35 @@
diff -Nru Firebird-2.1.2.18118-0/doc/sql.extensions/README.expression_indices Firebird-2.1.2.18118-0/doc/sql.extensions-gil/README.expression_indices
--- Firebird-2.1.2.18118-0/doc/sql.extensions/README.expression_indices 2005-01-28 15:07:11.000000000 +0100
+++ Firebird-2.1.2.18118-0/doc/sql.extensions-gil/README.expression_indices 2009-05-12 20:31:04.000000000 +0200
@@ -19,7 +19,7 @@
Example(s):
1. CREATE INDEX IDX1 ON T1 COMPUTED BY ( UPPER(COL1 COLLATE PXW_CYRL) );
- SELECT * FROM T1 WHERE UPPER(COL1 COLLATE PXW_CYRL) = 'ÔÛÂÀ'
+ SELECT * FROM T1 WHERE UPPER(COL1 COLLATE PXW_CYRL) = '<capital cyrillic letters sequence>'
-- PLAN (T1 INDEX (IDX1))
2. CREATE INDEX IDX2 ON T2 COMPUTED BY ( EXTRACT(YEAR FROM COL2) || EXTRACT(MONTH FROM COL2) );
SELECT * FROM T2 ORDER BY EXTRACT(YEAR FROM COL2) || EXTRACT(MONTH FROM COL2)
diff -Nru Firebird-2.1.2.18118-0/doc/sql.extensions/README.global_temporary_tables Firebird-2.1.2.18118-0/doc/sql.extensions-gil/README.global_temporary_tables
--- Firebird-2.1.2.18118-0/doc/sql.extensions/README.global_temporary_tables 2007-03-15 10:35:57.000000000 +0100
+++ Firebird-2.1.2.18118-0/doc/sql.extensions-gil/README.global_temporary_tables 2009-05-12 20:29:49.000000000 +0200
@@ -67,11 +67,12 @@
garbage collection of deleted record versions. DELETE triggers are not fired in
this case.
- Data and index pages of all of the GTTs instances are placed in separate temporary
-files. Each connection has its own temporary file created when this connection
-first referenced some GTT. Also these temporary files are always opened with “Forced
-Writes = OFF” setting despite of database setting.
+ Data and index pages of all of the GTTs instances are placed in separate temporary
+files. Each connection has its own temporary file created when this connection
+first referenced some GTT. Also these temporary files are always opened with "Forced
+Writes = OFF" setting despite of database setting.
+
There's no limit on number of GTT instances. If you have N transactions
-active simultaneously and each transaction has referenced some GTT then youll
-have N GTTs instances.
+active simultaneously and each transaction has referenced some GTT then you'll
+have N GTTs instances.
\ No newline at end of file

View File

@ -0,0 +1,48 @@
diff -Nru Firebird-2.1.2.18118-0/configure.in Firebird-2.1.2.18118-0-gil/configure.in
--- Firebird-2.1.2.18118-0/configure.in 2008-12-12 14:28:32.000000000 +0100
+++ Firebird-2.1.2.18118-0-gil/configure.in 2009-05-12 20:42:06.000000000 +0200
@@ -940,6 +940,7 @@
mkdir -p gen/firebird/lib
mkdir -p gen/firebird/misc
mkdir -p gen/firebird/help
+mkdir -p gen/firebird/run
dnl #### TEMP ######### directories for .o and .d
dnl # by module name
diff -Nru Firebird-2.1.2.18118-0/src/jrd/file_params.h Firebird-2.1.2.18118-0-gil/src/jrd/file_params.h
--- Firebird-2.1.2.18118-0/src/jrd/file_params.h 2007-02-11 10:03:57.000000000 +0100
+++ Firebird-2.1.2.18118-0-gil/src/jrd/file_params.h 2009-05-12 20:44:00.000000000 +0200
@@ -38,11 +38,11 @@
const int EVENT_SEMAPHORES = 1;
#ifdef NOHOSTNAME
-static const char* EVENT_FILE = "isc_event1";
-static const char* LOCK_FILE = "isc_lock1.gbl";
-static const char* INIT_FILE = "isc_init1";
-static const char* GUARD_FILE = "isc_guard1";
-static const char* MONITOR_FILE = "isc_monitor1";
+static const char* EVENT_FILE = "run/isc_event1";
+static const char* LOCK_FILE = "run/isc_lock1.gbl";
+static const char* INIT_FILE = "run/isc_init1";
+static const char* GUARD_FILE = "run/isc_guard1";
+static const char* MONITOR_FILE = "run/isc_monitor1";
#elif defined(VMS)
static const char* EVENT_FILE = "[000000]isc_event1.%s";
static const char* LOCK_FILE = "[000000]isc_lock1.%s";
@@ -56,11 +56,11 @@
static const char* GUARD_FILE = "%s.grd";
static const char* MONITOR_FILE = "%s.mon";
#else
-static const char* EVENT_FILE = "isc_event1.%s";
-static const char* LOCK_FILE = "isc_lock1.%s";
-static const char* INIT_FILE = "isc_init1.%s";
-static const char* GUARD_FILE = "isc_guard1.%s";
-static const char* MONITOR_FILE = "isc_monitor1.%s";
+static const char* EVENT_FILE = "run/isc_event1.%s";
+static const char* LOCK_FILE = "run/isc_lock1.%s";
+static const char* INIT_FILE = "run/isc_init1.%s";
+static const char* GUARD_FILE = "run/isc_guard1.%s";
+static const char* MONITOR_FILE = "run/isc_monitor1.%s";
#endif
#ifdef sun

View File

@ -0,0 +1,9 @@
firebird.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 firebird adm
}

View File

@ -0,0 +1,11 @@
--- Firebird-2.1.2.18118-0/builds/posix/prefix.linux 2007-05-03 13:24:50.000000000 +0200
+++ Firebird-2.1.2.18118-0/builds/posix/prefix.linux-gil 2009-05-12 20:36:07.000000000 +0200
@@ -22,7 +22,7 @@
# you may remove it if engine is getting compiled with any other GCC version
COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -pipe -MMD -fPIC -fmessage-length=0
-OPTIMIZE_FLAGS=-O3 -march=i586 -mcpu=i686 -fno-omit-frame-pointer -fno-builtin
+OPTIMIZE_FLAGS=-O3 -march=i586 -mtune=i686 -fno-omit-frame-pointer -fno-builtin
WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable
PROD_FLAGS=-DNDEBUG $(COMMON_FLAGS) $(OPTIMIZE_FLAGS)

View File

@ -0,0 +1 @@
setenv PATH "${PATH}:__FIRE_DIR__/bin"

View File

@ -0,0 +1 @@
export PATH=$PATH:__FIRE_DIR__/bin

View File

@ -0,0 +1,27 @@
--- builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in 2009-07-24 12:16:22.000000000 +0200
+++ builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in.new 2009-07-28 01:08:16.000000000 +0200
@@ -1,11 +1,20 @@
#!/bin/sh
-# chkconfig: 345 20 80
+# chkconfig: 345 80 20
# description: Start/Stop firebird database server
#
# This file belongs in /etc/init.d where it will be run
# on system startup and shutdown to start the background
# Firebird database server daemon
+### BEGIN INIT INFO
+# Provides: firebird
+# Required-Start: $local_fs $syslog
+# Required-Stop:
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Firebird server database
+# Description: Starts and stops the Firebird database server backend daemon.
+### END INIT INFO
# Source function library - RedHat or Mandriva specific
# functions actually used: checkpid killproc daemon

View File

@ -0,0 +1,32 @@
# Author: Adriano dos Santos Fernandes
#Index: src/common/classes/alloc.h
#===================================================================
#RCS file: /cvsroot/firebird/firebird2/src/common/classes/alloc.h,v
#retrieving revision 1.71
diff -u -p -r1.71 alloc.h
--- src/common/classes/alloc.h 26 Sep 2007 17:48:20 -0000 1.71
+++ src/common/classes/alloc.h 20 May 2009 02:20:08 -0000
@@ -47,6 +47,7 @@
#include <stdlib.h> /* XPG: prototypes for malloc/free have to be in
stdlib.h (EKU) */
#endif
+#include <new>
#ifdef _MSC_VER
#define THROW_BAD_ALLOC
@@ -448,15 +449,6 @@ inline void* operator new[](size_t s) TH
);
}
-inline void* operator new(size_t, void* ptr) throw()
-{
- return ptr;
-}
-inline void* operator new[](size_t, void* ptr) throw()
-{
- return ptr;
-}
-
inline void operator delete(void* mem) throw()
{
Firebird::MemoryPool::globalFree(mem);

View File

@ -1,2 +1,5 @@
# firebird # firebird
firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. firebird offers excellent concurrency, high performance,and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.
The firebird Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) on 25 July, 2000.

View File

@ -0,0 +1,432 @@
Index: Firebird-2.1.4.18393-0/src/common/classes/array.h
===================================================================
--- Firebird-2.1.4.18393-0.orig/src/common/classes/array.h
+++ Firebird-2.1.4.18393-0/src/common/classes/array.h
@@ -347,7 +347,7 @@ public:
size_t add(const Value& item) {
size_t pos;
find(KeyOfValue::generate(this, item), pos);
- insert(pos, item);
+ this->insert(pos, item);
return pos;
}
};
Index: Firebird-2.1.4.18393-0/src/common/classes/stack.h
===================================================================
--- Firebird-2.1.4.18393-0.orig/src/common/classes/stack.h
+++ Firebird-2.1.4.18393-0/src/common/classes/stack.h
@@ -48,7 +48,7 @@ namespace Firebird {
Entry(Object e, Entry* stk)
: inherited(), next(stk)
{
- add(e);
+ this->add(e);
}
Entry(Entry* stk) : inherited(), next(stk) { }
@@ -62,7 +62,7 @@ namespace Firebird {
{
if (inherited::getCount() < this->getCapacity())
{
- add(e);
+ this->add(e);
return this;
}
Entry* newEntry = FB_NEW(p) Entry(e, this);
Index: Firebird-2.1.4.18393-0/src/common/classes/vector.h
===================================================================
--- Firebird-2.1.4.18393-0.orig/src/common/classes/vector.h
+++ Firebird-2.1.4.18393-0/src/common/classes/vector.h
@@ -135,7 +135,7 @@ public:
size_t add(const Value& item) {
size_t pos;
find(KeyOfValue::generate(this, item), pos);
- insert(pos, item);
+ this->insert(pos, item);
return pos;
}
};
Index: Firebird-2.1.4.18393-0/src/jrd/Collation.cpp
===================================================================
--- Firebird-2.1.4.18393-0.orig/src/jrd/Collation.cpp
+++ Firebird-2.1.4.18393-0/src/jrd/Collation.cpp
@@ -191,157 +191,55 @@ bool MATCHESNAME(Jrd::thread_db* tdbb, J
template <class SLEUTHTYPE>
-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 <class SLEUTHTYPE>
-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;
}
-
template <class SLEUTHTYPE>
static bool SLEUTH_AUX(
Jrd::TextType* obj,
@@ -472,57 +370,163 @@ static bool SLEUTH_AUX(
}
+
template <class SLEUTHTYPE>
-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 <class SLEUTHTYPE>
+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);
}
+
+
+
+
// Below are templates for functions used in Collation implementation
class NullStrConverter {

View File

@ -0,0 +1,11 @@
--- Firebird-2.1.4.18393-0/src/jrd/scl.epp.orig 2011-04-08 17:43:58.038668578 +0200
+++ Firebird-2.1.4.18393-0/src/jrd/scl.epp 2011-04-08 17:43:11.594901756 +0200
@@ -141,7 +141,7 @@
{
ERR_post(isc_no_priv, isc_arg_string, "(ACL unrecognized)",
isc_arg_string, "security_class",
- isc_arg_string, s_class->scl_name,
+ isc_arg_string, s_class->scl_name.c_str(),
isc_arg_end);
}

View File

@ -0,0 +1,24 @@
diff -Nru Firebird-2.1.5.18496-0.orig/builds/install/arch-specific/linux/classic/makeInstallImage.sh.in Firebird-2.1.5.18496-0/builds/install/arch-specific/linux/classic/makeInstallImage.sh.in
--- Firebird-2.1.5.18496-0.orig/builds/install/arch-specific/linux/classic/makeInstallImage.sh.in 2012-06-20 09:57:20.000000000 +0200
+++ Firebird-2.1.5.18496-0/builds/install/arch-specific/linux/classic/makeInstallImage.sh.in 2012-10-06 19:19:34.189415759 +0200
@@ -196,8 +196,6 @@
# cp -f $BuiltFBDir/lib/gds.a @libdir@/libgds.a
cp -f $BuiltFBDir/lib/libib_util.so $DestDir/lib/libib_util.so
- cp -df $BuiltFBDir/lib/libicu*.so* $DestDir/lib/
-
cp $BuiltFBDir/intl/libfbintl.so $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.so $DestDir/UDF/
cp $BuiltFBDir/UDF/fbudf.so $DestDir/UDF/
diff -Nru Firebird-2.1.5.18496-0.orig/builds/install/arch-specific/linux/super/makeInstallImage.sh.in Firebird-2.1.5.18496-0/builds/install/arch-specific/linux/super/makeInstallImage.sh.in
--- Firebird-2.1.5.18496-0.orig/builds/install/arch-specific/linux/super/makeInstallImage.sh.in 2012-06-20 09:57:20.000000000 +0200
+++ Firebird-2.1.5.18496-0/builds/install/arch-specific/linux/super/makeInstallImage.sh.in 2012-10-06 19:19:20.420545660 +0200
@@ -182,8 +182,6 @@
cp -df $BuiltFBDir/lib/libfbclient.so* $DestDir/lib
cp -f $BuiltFBDir/lib/libib_util.so $DestDir/lib/libib_util.so
- cp -df $BuiltFBDir/lib/libicu*.so* $DestDir/lib/
-
cp $BuiltFBDir/intl/libfbintl.so $DestDir/intl/fbintl
cp $BuiltFBDir/UDF/ib_udf.so $DestDir/UDF/
cp $BuiltFBDir/UDF/fbudf.so $DestDir/UDF/

View File

@ -0,0 +1,141 @@
--- Firebird-2.5.2.26540-0/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in.orig 2013-06-27 13:14:33.562335793 +0200
+++ Firebird-2.5.2.26540-0/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 2013-06-27 13:15:27.325808333 +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=./firebird # Where the just build fb exists.
@@ -118,7 +113,6 @@
for d in $Dirs; do
Dir=${TargetDir}${d}
mkdir -p $Dir
- chown root:root $Dir
chmod 0755 $Dir
done
}
@@ -163,7 +157,6 @@
cp $BuiltFBDir/bin/isql ${TargetDir}@FB_BINDIR@/isql
cp $BuiltFBDir/bin/qli ${TargetDir}@FB_BINDIR@/qli
- chown root:root ${TargetDir}@FB_BINDIR@/*
chmod 0755 ${TargetDir}@FB_BINDIR@/*
#sbin
@@ -182,7 +175,6 @@
cp $BuiltFBDir/bin/createAliasDB.sh ${TargetDir}@FB_SBINDIR@
cp $BuiltFBDir/bin/fb_config ${TargetDir}@FB_SBINDIR@
- chown root:root ${TargetDir}@FB_SBINDIR@/*
chmod 0755 ${TargetDir}@FB_SBINDIR@/*
chmod 0700 ${TargetDir}@FB_SBINDIR@/*.sh
@@ -206,19 +198,16 @@
for i in `find ${TargetDir}@FB_SAMPLEDIR@ -type d -print`
do
- chown root:root $i
chmod 0555 $i
done
for i in `find ${TargetDir}@FB_SAMPLEDIR@ -type f -print`
do
- chown root:root $i
chmod 0444 $i
done
makeDirs @FB_SAMPLEDBDIR@
cp $BuiltFBDir/examples/empbuild/*.fdb ${TargetDir}@FB_SAMPLEDBDIR@
- chown root:root ${TargetDir}@FB_SAMPLEDBDIR@/*.fdb
chmod 0444 ${TargetDir}@FB_SAMPLEDBDIR@/*.fdb
fi
@@ -226,13 +215,11 @@
copyIfExists $BuiltFBDir/help/help.gbak ${TargetDir}@FB_HELPDIR@
cp $BuiltFBDir/help/help.fdb ${TargetDir}@FB_HELPDIR@
- chown root:root ${TargetDir}@FB_HELPDIR@/*.fdb
chmod 0444 ${TargetDir}@FB_HELPDIR@/*.fdb
#message file
cp $BuiltFBDir/*.msg ${TargetDir}@FB_MSGDIR@
- chown root:root ${TargetDir}@FB_MSGDIR@/*.msg
chmod 0444 ${TargetDir}@FB_MSGDIR@/*.msg
#secureDB (access rights will be set at install time)
@@ -241,7 +228,6 @@
#.h files
cp $BuiltFBDir/include/*.h ${TargetDir}@FB_INCDIR@
- chown root:root ${TargetDir}@FB_INCDIR@/*.h
chmod 0444 ${TargetDir}@FB_INCDIR@/*.h
#lib
@@ -250,20 +236,17 @@
cp -f $BuiltFBDir/lib/libib_util.so ${TargetDir}@FB_LIBDIR@/libib_util.so
copyIfExists $BuiltFBDir/lib/libicu*.so* ${TargetDir}@FB_LIBDIR@
- chown root:root ${TargetDir}@FB_LIBDIR@/*.so*
chmod 0755 ${TargetDir}@FB_LIBDIR@/*.so*
#plugins
cp -df $BuiltFBDir/plugins/* ${TargetDir}@FB_PLUGDIR@
- chown root:root ${TargetDir}@FB_PLUGDIR@/*.so*
chmod 0755 ${TargetDir}@FB_PLUGDIR@/*.so*
#intl
cp $BuiltFBDir/intl/libfbintl.so ${TargetDir}@FB_INTLDIR@/fbintl
cp $BuildRootDir/gen/install/misc/fbintl.conf ${TargetDir}@FB_INTLDIR@
- chown root:root ${TargetDir}@FB_INTLDIR@/fbintl*
chmod 0755 ${TargetDir}@FB_INTLDIR@/fbintl
chmod 0644 ${TargetDir}@FB_INTLDIR@/fbintl.conf
@@ -276,7 +259,6 @@
cp $BuildRootDir/src/extlib/ib_udf2.sql ${TargetDir}@FB_UDFDIR@
cp $BuildRootDir/src/extlib/fbudf/fbudf.sql ${TargetDir}@FB_UDFDIR@
- chown root:root ${TargetDir}@FB_UDFDIR@/*.so ${TargetDir}@FB_UDFDIR@/*.sql
chmod 0755 ${TargetDir}@FB_UDFDIR@/*.so
chmod 0644 ${TargetDir}@FB_UDFDIR@/*.sql
@@ -287,9 +269,7 @@
cp $BuildRootDir/doc/WhatsNew ${TargetDir}@FB_CONFDIR@/WhatsNew
cp $BuildRootDir/doc/README.user ${TargetDir}@FB_CONFDIR@/README
- chown -R root:root ${TargetDir}@FB_MISCDIR@
for i in `find ${TargetDir}@FB_MISCDIR@ -print`; do
- chown root:root $i
if [ -d $i ]; then
chmod 0755 $i
else
@@ -306,7 +286,6 @@
cp $BuildRootDir/gen/install/misc/firebird.init.d.* ${TargetDir}@FB_MISCDIR@
cp $BuildRootDir/gen/install/misc/rc.config.firebird ${TargetDir}@FB_MISCDIR@
- chown -R root:root ${TargetDir}@FB_MISCDIR@
chmod -R go-rwx ${TargetDir}@FB_MISCDIR@
#conf
@@ -314,13 +293,11 @@
cp $BuildRootDir/gen/install/misc/aliases.conf ${TargetDir}@FB_CONFDIR@
cp $BuildRootDir/gen/install/misc/fbtrace.conf ${TargetDir}@FB_CONFDIR@
- chown root:root ${TargetDir}@FB_CONFDIR@/*.conf
chmod 0644 ${TargetDir}@FB_CONFDIR@/*.conf
#license
cp $BuildRootDir/builds/install/misc/*License.txt ${TargetDir}@FB_CONFDIR@
- chown root:root ${TargetDir}@FB_CONFDIR@/*License.txt
chmod 0444 ${TargetDir}@FB_CONFDIR@/*License.txt
# Create links from @libdir@ to install area.

445
firebird.spec Normal file
View File

@ -0,0 +1,445 @@
%define groupid 65055
%define userid 65055
%define pkg_name %{name}-%{version}-0
%define major %(echo %version | cut -d. -f 1-3)
%define majver %(echo %version | cut -d. -f 1-2)
Name: firebird
Version: 2.5.2.26540
Release: 1mamba
Summary: SQL Relational Database
Group: Applications/Databases
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://www.firebirdsql.org/
Source0: http://downloads.sourceforge.net/project/firebird/firebird/%{major}-Release/Firebird-%{version}-0.tar.bz2
#Source0: http://downloads.sourceforge.net/project/firebird/firebird/%{majver}-Release/Firebird-%{version}-0.tar.bz2
Source1: Firebird-2.1.2.18118.0-profile.sh
Source2: Firebird-2.1.2.18118.0-profile.csh
Source3: Firebird-2.1.2.18118.0-logrotate
Patch0: Firebird-2.1.3.18185-fix-initscript.patch
Patch1: Firebird-2.1.2.18118.0-doc.patch
Patch2: Firebird-2.1.2.18118.0-mcpu-to-mtune.patch
Patch3: Firebird-2.1.2.18118.0-lock-file-location.patch
Patch4: Firebird-2.1.3.18185-gcc-icu.patch
Patch5: %{name}-2.1.4.18393-gcc45.patch
Patch6: firebird-2.1.4-gcc-4.7.patch
Patch7: firebird-2.1.5-system-icu.patch
Patch8: firebird-2.5.2.26540-makeInstallImage-noroot.patch
License: MPL 1.1
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: libtool
BuildRequires: libtermcap-devel
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libgcc
BuildRequires: libicu-devel
BuildRequires: libncurses-devel
BuildRequires: libstdc++6-devel
## AUTOBUILDREQ-END
Requires: libfbclient-%{name}
Provides: Firebird
Obsoletes: Firebird
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. %{name} offers excellent concurrency, high performance,and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.
The %{name} Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) on 25 July, 2000.
%package classic
Group: Applications/Databases
Summary: Classic (xinetd) server for %{name} SQL RDBMS
Requires: xinetd
Requires: %{name} = %{version}-%{release}
Conflicts: %{name}-superserver
Requires: libfbembed-%{name} = %{version}-%{release}
Provides: Firebird-classic
Obsoletes: Firebird-classic
%description classic
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This is the classic (xinetd) server %{name} SQL RDBMS. It can also be used as an embedded server, when paired with the client-embedded package.
%package devel
Group: Applications/Databases
Summary: Development Libraries for %{name} SQL RDBMS
Requires: libfbclient-%{name} = %{version}-%{release}
Requires: libfbembed-%{name} = %{version}-%{release}
Provides: Firebird-devel
Obsoletes: Firebird-devel
%description devel
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This package contains development libraries for %{name}.
%package doc
Group: Documentation
Summary: Documentation for %{name}
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Provides: Firebird-doc
Obsoletes: Firebird-doc
%description doc
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This package contains documentation for %{name}.
%package -n libfbclient-%{name}
Group: System/Libraries
Summary: Multi-threaded, non-local client libraries for Firebird SQL RDBMS
Provides: libfbclient-Firebird
Obsoletes: libfbclient-Firebird
%description -n libfbclient-%{name}
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This package contains multi-threaded, non-local client libraries for Firebird SQL Database
%package -n libfbembed-%{name}
Group: System/Libraries
Summary: Multi-process, local client libraries for Firebird SQL RDBMS
Provides: libfbembed-Firebird
Obsoletes: libfbembed-Firebird
%description -n libfbembed-%{name}
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This package contains multi-process, local client libraries for Firebird SQL RDBMS
%package superserver
Group: Applications/Databases
Summary: Superserver (single process) server for %{name} SQL RDBMS
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Conflicts: %{name}-classic
Provides: Firebird-superserver
Obsoletes: Firebird-superserver
%description superserver
%{name} is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.
This is the Superserver (single process) %{name} SQL RDBMS.
%prep
#:<< __EOF
[ -e Firebird-%{version}-0 ] && chmod u+w Firebird-%{version}-0/* -R
%setup -q -n Firebird-%{version}-0
iconv -f ISO-8859-1 -t utf-8 -c doc/README.intl -o doc/README.intl
#%patch0 -p0
#%patch1 -p1
#%patch2 -p1
#%patch3 -p1
#%patch4 -p0
#%patch5 -p1
#%patch6 -p1
#%patch7 -p1
%patch8 -p1
%build
#:<< __EOF
# build classic
#./autogen.sh
#autoreconf -vfi
autoreconf
%configure \
--prefix=%{_libdir}/firebird \
--with-system-icu
chmod u+w gen/* -R
# parallel build is broken
make
cd gen
./install/makeInstallImage.sh
mv ./buildroot buildroot-classic
chmod 644 ./buildroot-classic%{_libdir}/firebird/help/help.fdb
cd ..
# build superserver
%configure \
--prefix=%{_libdir}/firebird \
--enable-superserver \
--with-system-icu
# parallel build is broken
make
cd gen
./install/makeInstallImage.sh
mv ./buildroot/ buildroot-superserver
chmod 644 ./buildroot-superserver%{_libdir}/firebird/help/help.fdb
%install
install -d %{buildroot}
chmod u+w gen/* -R
cp -a gen/buildroot-superserver/* %{buildroot}/
cp -a gen/buildroot-classic/* %{buildroot}/
cd %{buildroot}
mkdir -p %{buildroot}%{_sysconfdir}/firebird
mkdir -p %{buildroot}%{_initrddir}
mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
mkdir -p %{buildroot}%{_var}/run/firebird
mkdir -p %{buildroot}%{_localstatedir}/lib/firebird/data
mkdir -p %{buildroot}%{_localstatedir}/log/firebird
mkdir -p %{buildroot}%{_includedir}/firebird
mkdir -p %{buildroot}%{_libdir}/firebird/help
mkdir -p %{buildroot}%{_libdir}/firebird/intl
mkdir -p %{buildroot}%{_libdir}/firebird/lib
mkdir -p %{buildroot}%{_libdir}/firebird/include
mkdir -p %{buildroot}%{_libdir}/firebird/bin-classic
mkdir -p %{buildroot}%{_libdir}/firebird/UDF-classic
mkdir -p %{buildroot}%{_libdir}/firebird/bin-superserver
mkdir -p %{buildroot}%{_libdir}/firebird/UDF-superserver
mkdir -p %{buildroot}%{_bindir}
pushd %{_builddir}/Firebird-%{version}-0/gen
pushd buildroot-classic%{_libdir}/firebird
#cp examples/empbuild/employee.fdb %{buildroot}%{_localstatedir}/lib/firebird/data/employee.fdb
cp help/help.fdb %{buildroot}%{_libdir}/firebird/help/help.fdb
cp *.msg %{buildroot}%{_libdir}/firebird
cp intl/fbintl %{buildroot}%{_libdir}/firebird/intl/fbintl
cp lib/libib_util.so %{buildroot}%{_libdir}/firebird/lib/
cp lib/libfbclient.so.%{major} %{buildroot}%{_libdir}/firebird/lib/
cp lib/libfbembed.so.%{major} %{buildroot}%{_libdir}/firebird/lib/
cp bin/* %{buildroot}%{_libdir}/firebird/bin-classic/
cp UDF/* %{buildroot}%{_libdir}/firebird/UDF-classic/
popd
pushd buildroot-superserver%{_libdir}/firebird
cp bin/* %{buildroot}%{_libdir}/firebird/bin-superserver/
cp UDF/* %{buildroot}%{_libdir}/firebird/UDF-superserver/
popd
popd
(
cd %{buildroot}%{_libdir}/firebird/bin-superserver/
ln -s /fbmgr.bin ./fbmgr
)
#(
# cd %{buildroot}%{_libdir}/firebird/lib/
# ln -s libfbembed.so.%{major} %{buildroot}%{_libdir}/firebird/lib/libfbembed.so.2.1
# ln -s libfbembed.so.2.1 %{buildroot}%{_libdir}/firebird/lib/libfbembed.so
# ln -s libfbclient.so.%{major} %{buildroot}%{_libdir}/firebird/lib/libfbclient.so.2
# ln -s libfbclient.so.2 %{buildroot}%{_libdir}/firebird/lib/libfbclient.so
#)
#
#(
# cd %{buildroot}%{_libdir}/firebird/lib
# ln -s libfbembed.so %{buildroot}%{_libdir}/libfbembed.so
# ln -s libfbembed.so.2.1 %{buildroot}%{_libdir}/libfbembed.so.2.1
# ln -s libfbembed.so.%{major} %{buildroot}%{_libdir}/libfbembed.so.%{major}
# ln -s libfbclient.so %{buildroot}%{_libdir}/libfbclient.so
# ln -s libfbclient.so.2 %{buildroot}%{_libdir}/libfbclient.so.2
# ln -s libfbclient.so.%{major} %{buildroot}%{_libdir}/libfbclient.so.%{major}
# ln -s libib_util.so %{buildroot}%{_libdir}/libib_util.so
#)
echo 1 > %{buildroot}%{_localstatedir}/log/firebird/firebird.log
ln -s %{_localstatedir}/log/firebird/firebird.log %{buildroot}%{_libdir}/firebird/firebird.log
sed "s@firebird.log@%{_localstatedir}/log/firebird/firebird.log@g" %{SOURCE3} > %{buildroot}%{_sysconfdir}/logrotate.d/firebird
cp %{_builddir}/Firebird-%{version}-0/gen/buildroot-classic%{_libdir}/firebird/include/* %{buildroot}%{_includedir}/firebird/
#(
# cd %{buildroot}%{_includedir}/firebird
# ln -s ibase.h %{buildroot}%{_libdir}/firebird/include/ibase.h
# ln -s iberror.h %{buildroot}%{_libdir}/firebird/include/iberror.h
# ln -s ib_util.h %{buildroot}%{_libdir}/firebird/include/ib_util.h
# ln -s perf.h %{buildroot}%{_libdir}/firebird/include/perf.h
#)
pushd %{_builddir}/Firebird-%{version}-0/gen
cp buildroot-classic%{_libdir}/firebird/aliases.conf %{buildroot}%{_sysconfdir}/firebird/aliases.conf
sed "s@%{_libdir}/firebird/examples/empbuild@%{_localstatedir}/lib/firebird/data@" -i %{buildroot}%{_sysconfdir}/firebird/aliases.conf
cp buildroot-classic%{_libdir}/firebird/firebird.conf %{buildroot}%{_sysconfdir}/firebird/firebird.conf
cp buildroot-classic%{_libdir}/firebird/intl/fbintl.conf %{buildroot}%{_sysconfdir}/firebird/fbintl.conf
cp buildroot-classic%{_libdir}/firebird/security2.fdb %{buildroot}%{_sysconfdir}/firebird/security2.fdb
# ln -s %{_sysconfdir}/firebird/aliases.conf %{buildroot}%{_libdir}/firebird/aliases.conf
# ln -s %{_sysconfdir}/firebird/firebird.conf %{buildroot}%{_libdir}/firebird/firebird.conf
# ln -s %{_sysconfdir}/firebird/security2.fdb %{buildroot}%{_libdir}/firebird/security2.fdb
# ln -s %{_sysconfdir}/firebird/fbintl.conf %{buildroot}%{_libdir}/firebird/intl/fbintl.conf
popd
sed "s@__FIRE_DIR__@%{_libdir}/firebird@g" %{SOURCE1} > %{buildroot}%{_sysconfdir}/profile.d/firebird.sh
pushd %{_builddir}/Firebird-%{version}-0/gen
cp buildroot-classic%{_libdir}/firebird/misc/firebird.xinetd \
%{buildroot}%{_sysconfdir}/xinetd.d/firebird
cp buildroot-superserver%{_libdir}/firebird/misc/firebird.init.d.mandrake \
%{buildroot}%{_initrddir}/firebird
popd
sed "s@chkconfig: 345@chkconfig: -@" -i %{buildroot}%{_initrddir}/firebird
(
cd %{buildroot}
ln -s bin-superserver %{buildroot}%{_libdir}/firebird/bin
ln -s %{_var}/run/firebird %{buildroot}%{_libdir}/firebird/run
ln -s %{_libdir}/firebird/bin/isql %{buildroot}%{_bindir}/fbsql
ln -s %{_libdir}/firebird/bin/gbak %{buildroot}%{_bindir}/gbak
ln -s %{_libdir}/firebird/bin/gfix %{buildroot}%{_bindir}/gfix
ln -s %{_libdir}/firebird/bin/gsec %{buildroot}%{_bindir}/gsec
ln -s %{_libdir}/firebird/bin/nbackup %{buildroot}%{_bindir}/nbackup
ln -s %{_libdir}/firebird/bin/gstat %{buildroot}%{_bindir}/gstat
)
rm -f %{buildroot}%{_sysconfdir}/profile.d/firebird.csh
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
rm -rf gen
%pre
if [ $1 -ge 1 ]; then
/usr/sbin/groupadd firebird -g %{groupid} 2>/dev/null
/usr/sbin/useradd -u %{userid} -c 'Firebird user' -d /dev/null -g firebird \
-s /bin/false firebird 2>/dev/null
fi
exit 0
%preun
if [ $1 -eq 0 ]; then
/usr/sbin/userdel firebird 2>/dev/null
/usr/sbin/groupdel firebird 2>/dev/null
fi
exit 0
%files
%defattr(-,root,root)
%dir %{_libdir}/firebird
%dir %{_libdir}/firebird/lib
%dir %{_sysconfdir}/firebird
%config(noreplace) %attr(664,firebird,firebird) %{_sysconfdir}/firebird/aliases.conf
%config(noreplace) %attr(664,firebird,firebird) %{_sysconfdir}/firebird/fbintl.conf
%config(noreplace) %attr(664,firebird,firebird) %{_sysconfdir}/firebird/firebird.conf
%config(noreplace) %attr(660,firebird,firebird) %{_sysconfdir}/firebird/security2.fdb
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/firebird
%attr(755,root,root) %{_sysconfdir}/profile.d/firebird.sh
%dir %{_localstatedir}/log/firebird
%attr(664,firebird,firebird) %{_localstatedir}/log/firebird/firebird.log
%dir %attr(770,firebird,firebird) %{_localstatedir}/lib/firebird/data
#%attr(660,firebird,firebird) %{_localstatedir}/lib/firebird/data/employee.fdb
%attr(755,root,root) %{_bindir}/fbsql
%attr(755,root,root) %{_bindir}/gbak
%attr(755,root,root) %{_bindir}/gfix
%attr(755,root,root) %{_bindir}/gsec
%attr(755,root,root) %{_bindir}/gstat
%attr(755,root,root) %{_bindir}/nbackup
%attr(755,root,root) %{_libdir}/firebird/intl/fbintl
%attr(644,root,root) %{_libdir}/firebird/aliases.conf
%attr(644,root,root) %{_libdir}/firebird/firebird.conf
%attr(644,root,root) %{_libdir}/firebird/intl/fbintl.conf
%attr(644,root,root) %{_libdir}/firebird/firebird.log
%attr(644,root,root) %{_libdir}/firebird/firebird.msg
%attr(644,root,root) %{_libdir}/firebird/help/help.fdb
%attr(644,root,root) %{_libdir}/libib_util.so
%attr(644,root,root) %{_libdir}/firebird/lib/libib_util.so
%attr(660,root,root) %{_libdir}/firebird/security2.fdb
%{_libdir}/firebird/fbtrace.conf
%dir %{_libdir}/firebird/UDF
%{_libdir}/firebird/UDF/fbudf.so
%{_libdir}/firebird/UDF/fbudf.sql
%{_libdir}/firebird/UDF/ib_udf.so
%{_libdir}/firebird/UDF/ib_udf.sql
%{_libdir}/firebird/UDF/ib_udf2.sql
%{_libdir}/firebird/de_DE.msg
%{_libdir}/firebird/fr_FR.msg
%dir %{_libdir}/firebird/misc
%{_libdir}/firebird/misc/*
%{_libdir}/firebird/plugins/libfbtrace.so
%doc ChangeLog doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt
%files classic
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/xinetd.d/firebird
%dir %{_libdir}/firebird/bin-classic
%dir %{_libdir}/firebird/UDF-classic
%attr(755,root,root) %{_libdir}/firebird/bin-classic/*
%attr(755,root,root) %{_libdir}/firebird/UDF-classic/*.so
%attr(755,root,root) %{_libdir}/firebird/UDF-classic/*.sql
%doc doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt
%files devel
%defattr(-,root,root)
%dir %{_libdir}/firebird/include
%attr(644,root,root) %{_libdir}/firebird/include/*
%attr(644,root,root) %{_includedir}/*
%attr(644,root,root) %{_libdir}/firebird/lib/libfbclient.so
%attr(644,root,root) %{_libdir}/firebird/lib/libfbembed.so
%attr(644,root,root) %{_libdir}/libfbclient.so
%attr(644,root,root) %{_libdir}/libfbembed.so
%files doc
%defattr(-,root,root)
%{_libdir}/firebird/IDPLicense.txt
%{_libdir}/firebird/IPLicense.txt
%{_libdir}/firebird/README
%{_libdir}/firebird/WhatsNew
%dir %{_libdir}/firebird/examples
%{_libdir}/firebird/examples/*
%dir %{_libdir}/firebird/doc
%{_libdir}/firebird/doc/*
%files -n libfbclient-%{name}
%defattr(-,root,root)
%attr(755,root,root) %{_libdir}/libfbclient.so.*
%attr(755,root,root) %{_libdir}/firebird/lib/libfbclient.so.*
%doc doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt
%files -n libfbembed-%{name}
%defattr(-,root,root)
%attr(755,root,root) %{_libdir}/libfbembed.so.*
%attr(755,root,root) %{_libdir}/firebird/lib/libfbembed.so.*
%doc doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt
%files superserver
%defattr(-,root,root)
%{_libdir}/firebird/bin
%dir %{_libdir}/firebird/bin-superserver
%dir %{_libdir}/firebird/UDF-superserver
%attr(755,root,root) %{_initrddir}/firebird
%attr(755,root,root) %{_libdir}/firebird/bin-superserver/*
%attr(755,root,root) %{_libdir}/firebird/UDF-superserver/*.so
%attr(644,root,root) %{_libdir}/firebird/UDF-superserver/*.sql
%attr(755,root,root) %{_libdir}/firebird/run
%doc doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt
%changelog
* Tue Jun 04 2013 Automatic Build System <autodist@mambasoft.it> 2.5.2.26540-1mamba
- update to 2.5.2.26540
* Fri Sep 21 2012 Automatic Build System <autodist@mambasoft.it> 2.1.5.18496-1mamba
- update to 2.1.5.18496
* Fri Apr 08 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 2.1.4.18393-1mamba
- update to 2.1.4.18393
- removed duplicated csh profile.d script
- renamed from Firebird to firebird
- create firebird user and group as required
* Wed Jun 30 2010 Automatic Build System <autodist@mambasoft.it> 2.1.3.18185-1mamba
- update to 2.1.3.18185
* Wed Jun 30 2010 Automatic Build System <autodist@mambasoft.it> 2.1.2.18118-3mamba
- automatic rebuild by autodist
* Wed Jan 13 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 2.1.2.18118.0-2mamba
- fix symlink to client binaries
- changes to support automatic rebuilds
* Tue May 12 2009 gil <puntogil@libero.it> 2.1.2.18118.0-1mamba
- package created by autospec