From 3aae6c40f56d166aebec5bcb5910b27bd67c54d3 Mon Sep 17 00:00:00 2001 From: Rosa Date: Wed, 1 Feb 2012 20:04:27 +0400 Subject: [PATCH] Automatic import for version 2.5.0.26074.0 --- .abf.yml | 2 + firebird-2.5.0-svn-CORE-3447.patch | 206 +++++++ firebird-logrotate | 9 + firebird.mdv.releasenote | 39 ++ firebird.spec | 836 +++++++++++++++++++++++++++++ 5 files changed, 1092 insertions(+) create mode 100644 .abf.yml create mode 100644 firebird-2.5.0-svn-CORE-3447.patch create mode 100644 firebird-logrotate create mode 100644 firebird.mdv.releasenote create mode 100644 firebird.spec diff --git a/.abf.yml b/.abf.yml new file mode 100644 index 0000000..a3b3e7e --- /dev/null +++ b/.abf.yml @@ -0,0 +1,2 @@ +sources: + "Firebird-2.5.0.26074-0.tar.bz2": d7afea3a87c8298fd39ad76cc9580ef9f4100421 diff --git a/firebird-2.5.0-svn-CORE-3447.patch b/firebird-2.5.0-svn-CORE-3447.patch new file mode 100644 index 0000000..d610cfd --- /dev/null +++ b/firebird-2.5.0-svn-CORE-3447.patch @@ -0,0 +1,206 @@ +--- src/jrd/unicode_util.cpp 2011/04/21 09:50:06 52786 ++++ src/jrd/unicode_util.cpp 2011/04/21 19:57:57 52787 +@@ -61,8 +61,11 @@ + ICU& operator =(const ICU&); // not implemented + + public: +- ICU() +- : inModule(NULL), ucModule(NULL) ++ ICU(int aMajorVersion, int aMinorVersion) ++ : majorVersion(aMajorVersion), ++ minorVersion(aMinorVersion), ++ inModule(NULL), ++ ucModule(NULL) + { + } + +@@ -72,6 +75,21 @@ + delete inModule; + } + ++ template void getEntryPoint(const char* name, ModuleLoader::Module* module, T& ptr) ++ { ++ string symbol; ++ ++ symbol.printf("%s_%d_%d", name, majorVersion, minorVersion); ++ module->findSymbol(symbol, ptr); ++ if (ptr) ++ return; ++ ++ symbol.printf("%s_%d%d", name, majorVersion, minorVersion); ++ module->findSymbol(symbol, ptr); ++ } ++ ++ int majorVersion; ++ int minorVersion; + ModuleLoader::Module* inModule; + ModuleLoader::Module* ucModule; + UVersionInfo collVersion; +@@ -740,17 +758,17 @@ + const Firebird::string& configInfo) + { + #if defined(WIN_NT) +- const char* const inTemplate = "icuin%s%s.dll"; +- const char* const ucTemplate = "icuuc%s%s.dll"; ++ const char* const inTemplate = "icuin%d%d.dll"; ++ const char* const ucTemplate = "icuuc%d%d.dll"; + #elif defined(DARWIN) + const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib"; + const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib"; + #elif defined(HPUX) +- const char* const inTemplate = "libicui18n.sl.%s%s"; +- const char* const ucTemplate = "libicuuc.sl.%s%s"; ++ const char* const inTemplate = "libicui18n.sl.%d%d"; ++ const char* const ucTemplate = "libicuuc.sl.%d%d"; + #else +- const char* const inTemplate = "libicui18n.so.%s%s"; +- const char* const ucTemplate = "libicuuc.so.%s%s"; ++ const char* const inTemplate = "libicui18n.so.%d%d"; ++ const char* const ucTemplate = "libicuuc.so.%d%d"; + #endif + + ObjectsArray versions; +@@ -764,41 +782,32 @@ + + for (ObjectsArray::const_iterator i(versions.begin()); i != versions.end(); ++i) + { +- string majorVersion; +- string minorVersion; ++ int majorVersion, minorVersion; + + if (*i == "default") + { +- majorVersion = STRINGIZE(U_ICU_VERSION_MAJOR_NUM); +- minorVersion = STRINGIZE(U_ICU_VERSION_MINOR_NUM); ++ majorVersion = U_ICU_VERSION_MAJOR_NUM; ++ minorVersion = U_ICU_VERSION_MINOR_NUM; + } +- else +- { +- const size_t pos = i->find('.'); +- if (pos == i->npos) +- continue; ++ else if (sscanf(i->c_str(), "%d.%d", &majorVersion, &minorVersion) != 2) ++ continue; + +- majorVersion = i->substr(0, pos); +- minorVersion = i->substr(pos + 1); +- } ++ string configVersion; ++ configVersion.printf("%d.%d", majorVersion, minorVersion); + +- if (version != majorVersion + "." + minorVersion) +- { ++ if (version != configVersion) + continue; +- } + + ReadLockGuard readGuard(icuModules->lock); + + ICU* icu; + if (icuModules->modules().get(version, icu)) +- { + return icu; +- } + + PathName filename; +- filename.printf(ucTemplate, majorVersion.c_str(), minorVersion.c_str()); ++ filename.printf(ucTemplate, majorVersion, minorVersion); + +- icu = FB_NEW(*getDefaultMemoryPool()) ICU(); ++ icu = FB_NEW(*getDefaultMemoryPool()) ICU(majorVersion, minorVersion); + + icu->ucModule = ModuleLoader::loadModule(filename); + if (!icu->ucModule) +@@ -813,7 +822,7 @@ + continue; + } + +- filename.printf(inTemplate, majorVersion.c_str(), minorVersion.c_str()); ++ filename.printf(inTemplate, majorVersion, minorVersion); + + icu->inModule = ModuleLoader::loadModule(filename); + if (!icu->inModule) +@@ -828,61 +837,25 @@ + continue; + } + +- string symbol; +- +- symbol.printf("u_init_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->uInit); +- +- symbol.printf("u_versionToString_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->uVersionToString); +- +- symbol.printf("uloc_countAvailable_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->ulocCountAvailable); +- +- symbol.printf("uloc_getAvailable_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->ulocGetAvailable); +- +- symbol.printf("uset_close_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->usetClose); +- +- symbol.printf("uset_getItem_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->usetGetItem); +- +- symbol.printf("uset_getItemCount_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->usetGetItemCount); +- +- symbol.printf("uset_open_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->ucModule->findSymbol(symbol, icu->usetOpen); +- +- symbol.printf("ucol_close_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolClose); +- +- symbol.printf("ucol_getContractions_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolGetContractions); +- +- symbol.printf("ucol_getSortKey_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolGetSortKey); +- +- symbol.printf("ucol_open_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolOpen); +- +- symbol.printf("ucol_setAttribute_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolSetAttribute); +- +- symbol.printf("ucol_strcoll_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolStrColl); +- +- symbol.printf("ucol_getVersion_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->ucolGetVersion); +- +- symbol.printf("utrans_open_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->utransOpen); +- +- symbol.printf("utrans_close_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->utransClose); +- +- symbol.printf("utrans_transUChars_%s_%s", majorVersion.c_str(), minorVersion.c_str()); +- icu->inModule->findSymbol(symbol, icu->utransTransUChars); ++ icu->getEntryPoint("u_init", icu->ucModule, icu->uInit); ++ icu->getEntryPoint("u_versionToString", icu->ucModule, icu->uVersionToString); ++ icu->getEntryPoint("uloc_countAvailable", icu->ucModule, icu->ulocCountAvailable); ++ icu->getEntryPoint("uloc_getAvailable", icu->ucModule, icu->ulocGetAvailable); ++ icu->getEntryPoint("uset_close", icu->ucModule, icu->usetClose); ++ icu->getEntryPoint("uset_getItem", icu->ucModule, icu->usetGetItem); ++ icu->getEntryPoint("uset_getItemCount", icu->ucModule, icu->usetGetItemCount); ++ icu->getEntryPoint("uset_open", icu->ucModule, icu->usetOpen); ++ ++ icu->getEntryPoint("ucol_close", icu->inModule, icu->ucolClose); ++ icu->getEntryPoint("ucol_getContractions", icu->inModule, icu->ucolGetContractions); ++ icu->getEntryPoint("ucol_getSortKey", icu->inModule, icu->ucolGetSortKey); ++ icu->getEntryPoint("ucol_open", icu->inModule, icu->ucolOpen); ++ icu->getEntryPoint("ucol_setAttribute", icu->inModule, icu->ucolSetAttribute); ++ icu->getEntryPoint("ucol_strcoll", icu->inModule, icu->ucolStrColl); ++ icu->getEntryPoint("ucol_getVersion", icu->inModule, icu->ucolGetVersion); ++ icu->getEntryPoint("utrans_open", icu->inModule, icu->utransOpen); ++ icu->getEntryPoint("utrans_close", icu->inModule, icu->utransClose); ++ icu->getEntryPoint("utrans_transUChars", icu->inModule, icu->utransTransUChars); + + if (/*!icu->uInit ||*/ !icu->uVersionToString || !icu->ulocCountAvailable || + !icu->ulocGetAvailable || !icu->usetClose || !icu->usetGetItem || + + diff --git a/firebird-logrotate b/firebird-logrotate new file mode 100644 index 0000000..5da6610 --- /dev/null +++ b/firebird-logrotate @@ -0,0 +1,9 @@ +firebird.log { + weekly + missingok + rotate 52 + compress + delaycompress + notifempty + create 640 firebird adm + } diff --git a/firebird.mdv.releasenote b/firebird.mdv.releasenote new file mode 100644 index 0000000..b34c941 --- /dev/null +++ b/firebird.mdv.releasenote @@ -0,0 +1,39 @@ +Differences between upstream and the Mandriva package +===================================================== + +* All files are installed according to the FHS. Relatively complete + environment as provided by upstream may be found in %{fbroot} + +* Firebird utilities gbak,gsec,gfix and nbackup have a symlink in /usr/bin + In /usr/bin you have also isql-fb symlinked to Firebird isql. + We can't name it isql to avoid conflict with isql from UNIX-ODBC + In /usr/bin you have also gstat-fb symlinked to Firebird gstat. + We can't name it gstat to avoid conflict with gstat from Ganglia. + +* Mandriva packages do not use, nor contain the pre-supplied sources for + libicu and libeditline. Mandriva packages are used instead. + +* The sysdba password is set to masterkey by default. Don't forget to change + the password after installation with this command : + gsec -user sysdba -pass masterkey -mo sysdba -pw icuryy4me + where 'icuryy4me' is the new password + see : http://www.firebirdsql.org/manual/qsg2-config.html + +* POSSIBLE INCOMPATIBILITY + In indices on text-based columns (CHAR/VARCHAR), Firebird uses ICU to get + binary-comparable sequences (collations). These collations may be different + in different ICU versions. + + In Firebird 2.5 upstream always uses the bundled ICU library. Firebird packages + use the Firebird-packaged libicu*. Unfortunately, this may lead to + incompatibilities in the binary index representation (on disk) between + databases created by Mandriva-packaged Firebird, and upstream. + + This can also lead to incompatibilities when the Firebird packages are + re-built using different version of the system-wide ICU library + + One way to fix this is to backup and restore all databases created with ICU + version different from the one currently installed on the system. Another is + to re-generate all indices that contain a text-based columns. + + diff --git a/firebird.spec b/firebird.spec new file mode 100644 index 0000000..5aa7e24 --- /dev/null +++ b/firebird.spec @@ -0,0 +1,836 @@ +%if %mdkversion >= 200910 +%define Werror_cflags %{nil} +%endif + +%define major 2.5.0 +%define pkgname Firebird-2.5.0.26074-0 +%define version 2.5.0.26074.0 +%define somajor 2 +%define libfbclient %mklibname fbclient %somajor +%define libfbembed %mklibname fbembed %somajor + +%define fbroot %{_libdir}/%{name} + +Summary: Firebird SQL database management system +Name: firebird +Version: %{version} +Release: %mkrel 3 +Group: Databases +License: IPL +URL: http://www.firebirdsql.org/ +Source0: http://downloads.sourceforge.net/firebird/%{pkgname}.tar.bz2 +Source1: firebird-logrotate +Source2: firebird.mdv.releasenote +# from upstream +Patch0: firebird-2.5.0-svn-CORE-3447.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: bison +BuildRequires: libtool +BuildRequires: libncurses-devel +BuildRequires: libtermcap-devel +BuildRequires: icu-devel +BuildRequires: edit-devel +BuildRequires: gcc-c++ +BuildRequires: libstdc++-static-devel +Requires: %{name}-arch = %{version}-%{release} +Requires: grep +Requires: sed +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot + +%description +This is the Firebird SQL Database shared files. + +%files +%defattr(0644,root,root,0755) +%doc doc/license/IDPL.txt +%doc doc/license/README.license.usage.txt +%doc gen/buildroot-classic%{_defaultdocdir}/%{name} +%doc gen/buildroot-classic%{fbroot}/misc/intl.sql +%doc gen/buildroot-classic%{fbroot}/misc/upgrade +%doc gen/buildroot-classic%{_sysconfdir}/%{name}/README +%doc gen/buildroot-classic%{_sysconfdir}/%{name}/WhatsNew + +# +# Meta packages for allowing urpmi asking only once +# +%package classic +Summary: Meta-package for Firebird SQL Classic Database (xinetd based) +Group: Databases +Provides: %{name}-arch = %{version}-%{release} +Requires: %{name}-server-classic = %{version} +Requires: %{name}-utils-classic = %{version} +Requires: xinetd +# Yes, we need force this. Otherwise, only direct local access wil be available. +Requires: %libfbclient +Conflicts: %{name}-superserver +Conflicts: %{name}-superclassic + +%description classic +This is a meta-package for easy selecting the Classic arch for Firebird 2 + +%files classic +%config(noreplace) %{_sysconfdir}/xinetd.d/%{name} + +%package superclassic +Summary: Meta-package for Firebird SQL SuperClassic Database +Group: Databases +Provides: %{name}-arch = %{version}-%{release} +Requires: %{name}-server-classic = %{version} +Requires: %{name}-utils-classic = %{version} +# Yes, we need force this. Otherwise, only direct local access wil be available. +Requires: %libfbclient +Requires: %libfbembed +Conflicts: %{name}-superserver +Conflicts: %{name}-classic + +%description superclassic +This is a meta-package for easy selecting the SuperClassic arch for Firebird 2 + +%files superclassic +%defattr(0755,root,root,0755) +%{_initrddir}/%{name}-superclassic + +%package superserver +Summary: Meta-package for Firebird SQL SuperServer Database (standalone) +Group: Databases +Provides: %{name}-arch = %{version}-%{release} +Requires: %{name}-server-superserver = %{version} +Requires: %{name}-utils-superserver = %{version} +Conflicts: %{name}-classic +Conflicts: %{name}-superclassic + +%description superserver +This is a meta-package for easy selecting the SuperServer arch for Firebird 2 + +%files superserver + +# +# Development headers and static libraries +# +%package devel +Summary: Development Libraries for Firebird SQL Database +Group: Development/Databases +Requires: %libfbclient +Requires: %libfbembed + +%description devel +Development libraries for firebird. + +%files devel +%defattr(0644,root,root,0755) +%dir %{_includedir}/%{name} +%{_includedir}/*.h +%{_includedir}/%{name}/*.h +%{_libdir}/libfb*.so +%{_libdir}/libgds.so + +# +# Standard client programs +# + +# +# Utils programs (classic) +# +%package utils-classic +Summary: Client programs for Firebird SQL Database +Group: Databases +Provides: %{name}-utils-arch = %{version}-%{release} +Requires: %{name}-utils-common = %{version} +Conflicts: %{name}-utils-superserver +Obsoletes: %{name}-client-embedded <= 2.0 + +%description utils-classic +Client access tools for firebird embeded only. + +%files utils-classic +%defattr(0755,root,root,0755) +%dir %{fbroot}/bin-classic +%{fbroot}/bin-classic/gbak +%{fbroot}/bin-classic/fbsvcmgr +%{fbroot}/bin-classic/isql +%{fbroot}/bin-classic/qli +%{fbroot}/bin-classic/fbtracemgr + +# +# Utils programs (superserver) +# +%package utils-superserver +Summary: Client programs for Firebird SQL Database +Group: Databases +Provides: %{name}-utils-arch = %{version}-%{release} +Requires: %{name}-utils-common = %{version} +Conflicts: %{name}-utils-classic + +%description utils-superserver +Client access tools for firebird. + +%files utils-superserver +%defattr(0755,root,root,0755) +%dir %{fbroot}/bin-superserver +%{fbroot}/bin-superserver/gbak +%{fbroot}/bin-superserver/fbsvcmgr +%{fbroot}/bin-superserver/isql +%{fbroot}/bin-superserver/qli +%{fbroot}/bin-superserver/fbtracemgr + +%package utils-common +Summary: Client programs for Firebird SQL Database +Group: Databases +Requires: %{name}-utils-arch = %{version}-%{release} + +%description utils-common +Common client access tools for firebird. + +%files utils-common +%defattr(0644,root,root,0755) +%doc doc/license/IDPL.txt +%doc doc/license/README.license.usage.txt +%defattr(0755,root,root,0755) +%dir %{fbroot} +%ghost %{fbroot}/bin +%{_bindir}/isql-fb +%{_bindir}/gbak +%{_bindir}/fbsvcmgr +%{_bindir}/qli +%{_bindir}/fbtracemgr +%defattr(0644,root,root,0755) +%{_localstatedir}/lib/%{name}/system/*.msg +%{_localstatedir}/lib/%{name}/system/help.fdb + +# +# Multi-threaded, independant client libraries +# +%package -n %libfbclient +Summary: Multi-threaded, non-local client libraries for Firebird SQL Database +Group: System/Libraries + +%description -n %libfbclient +Multi-threaded, non-local client libraries for Firebird SQL Database + +%files -n %libfbclient +%{_libdir}/libfbclient.so.* +%{_libdir}/libgds.so.0 + +# +# Multi-process, independant client libraries +# +%package -n %libfbembed +Summary: Multi-process, local client libraries for Firebird SQL Database +Group: System/Libraries + +%description -n %libfbembed +Multi-process, local client libraries for Firebird SQL Database + +%files -n %libfbembed +%{_libdir}/libfbembed.so.* + +# +# Classic server programs +# +%package server-classic +Summary: Classic (xinetd) server for Firebird SQL Database +Group: Databases +Provides: firebird-server = %{version}-%{release} +Requires: %{name}-server-common = %{version} +Conflicts: %{name}-server-superserver +Requires(pre): %{name}-server-common = %{version} +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd + +%description server-classic +This package contains the command line utilities and files common to classic and superclassic Firebird servers. + +%files server-classic +%dir %{fbroot}/bin-classic +%dir %{fbroot}/plugins-classic +%defattr(0755,root,root,0755) +%{_sbindir}/fb_inet_server +%{_sbindir}/fb_smp_server +%{fbroot}/plugins-classic/* +%{fbroot}/bin-classic/gsec +%{fbroot}/bin-classic/gdef +%{fbroot}/bin-classic/gfix +%{fbroot}/bin-classic/gpre +%{fbroot}/bin-classic/gsplit +%{fbroot}/bin-classic/gstat +%{fbroot}/bin-classic/nbackup +%{fbroot}/bin-classic/fb_config + +# +# Super server programs +# +%package server-superserver +Summary: Superserver (single process) server for Firebird SQL Database +Group: Databases +Provides: firebird-server = %{version}-%{release} +Requires: %{name}-server-common = %{version}-%{release} +Conflicts: %{name}-server-classic +Conflicts: %{name}-server-superclassic +Requires(pre): %{name}-server-common = %{version} + +%description server-superserver +This is the Superserver (single process) for the Firebird SQL Database. + +It does not include any client access tools, nor does it include the +multi-threaded client library. + +%files server-superserver +%defattr(0644,root,root,0755) +%dir %{fbroot}/bin-superserver +%dir %{fbroot}/plugins-superserver +%defattr(0755,root,root,0755) +%{_initrddir}/%{name}-superserver +%{fbroot}/bin-superserver/gsec +%{fbroot}/bin-superserver/gdef +%{fbroot}/bin-superserver/gfix +%{fbroot}/bin-superserver/gpre +%{fbroot}/bin-superserver/gsplit +%{fbroot}/bin-superserver/gstat +%{fbroot}/bin-superserver/nbackup +%{fbroot}/bin-superserver/fb_config +%{fbroot}/plugins-superserver/*.so +%{_sbindir}/fbserver + +# +# Server's common files +# +%package server-common +Summary: Common files for Firebird SQL Database servers +Group: Databases +# Due to moved files. +Conflicts: firebird-server-classic < 2.0 +Requires: firebird-server = %{version}-%{release} +Requires(postun): /usr/sbin/userdel +Requires(postun): /usr/sbin/groupdel +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires: logrotate +Obsoletes: %{name}-server-superserver < 2.0.1.12855.0-3mdk + +%description server-common +This package contains common files between firebird-server-classic and +firebird-server-superserver. You will need this if you want to use either one. + +%files server-common +%defattr(0644,root,root,0755) +%doc doc/license/IDPL.txt +%doc doc/license/README.license.usage.txt +%doc firebird.mdv.releasenote +%doc README.urpmi +%defattr(0644,root,root,0755) +%dir %attr(0755,root,root) %{_localstatedir}/lib/%{name} +%dir %attr(0775,%{name},%{name}) %{_localstatedir}/lib/%{name}/data +%attr(0660,%{name},%{name}) %{_localstatedir}/lib/%{name}/data/employee.fdb +%dir %attr(0775,%{name},%{name}) %{_localstatedir}/log/%{name} +%dir %{fbroot}/intl +%dir %{fbroot}/UDF +%{fbroot}/UDF/* +%ghost %{fbroot}/bin +%dir %{_sysconfdir}/%{name} +%dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/system +%config(noreplace) %attr (0600,%{name},%{name}) %{_localstatedir}/lib/%{name}/system/security2.fdb +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/fbintl.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/aliases.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/firebird.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/fbtrace.conf +%{fbroot}/intl/fbintl.conf +%config(noreplace) %attr(0664,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log +%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name} +%{_libdir}/libib_util.so +%defattr(0755,root,root,0750) +%{fbroot}/intl/fbintl +%defattr(0755,root,root,0755) +%{_bindir}/gsec +%{_bindir}/gfix +%{_bindir}/nbackup +%{_bindir}/gstat-fb +%{_bindir}/gpre +%{_bindir}/gdef +%{_bindir}/gsplit +%{_bindir}/fb_config +%{_bindir}/fbtracemgr +%{_sbindir}/fbguard +%{_sbindir}/fb_lock_print +%dir %attr(0775,%{name},%{name}) %{_var}/run/%{name} + + +%prep +%setup -q -n %{pkgname} +%patch0 +# convert intl character to UTF-8 +iconv -f ISO-8859-1 -t utf-8 -c ./doc/README.intl -o ./doc/README.intl + +# ----------------------------------------------------------------------------- + +%build + +# disable -Wl,--no-undefined to avoid fail build of fbintl +# when fbintl is loaded, one of the modules (libfbembed or fbserver) for sure exports +# gds__log() +%define _disable_ld_no_undefined 1 + +# classic +NOCONFIGURE=1 ./autogen.sh +%configure --prefix=%{fbroot} --with-system-icu --with-system-editline \ + --with-fbbin=%{fbroot}/bin-classic --with-fbinclude=%{_includedir}/%{name} \ + --with-fbsbin=%{_sbindir} --with-fbconf=%{_sysconfdir}/%{name} --with-fblib=%{_libdir} \ + --with-fbdoc=%{_defaultdocdir}/%{name} --with-fbudf=%{fbroot}/UDF --with-fbsample=%{_defaultdocdir}/%{name}/examples \ + --with-fbsample-db=%{_localstatedir}/lib/%{name}/data/ \ + --with-fbhelp=%{_localstatedir}/lib/%{name}/system/ --with-fbintl=%{fbroot}/intl \ + --with-fbmisc=%{fbroot}/misc --with-fbsecure-db=%{_localstatedir}/lib/%{name}/system \ + --with-fbmsg=%{_localstatedir}/lib/%{name}/system --with-fblog=%{_localstatedir}/log/%{name} \ + --with-fbglock=%{_var}/run/%{name} --with-fbplugins=%{fbroot}/plugins-classic +# Can't use %%make as itsparallel build is broken +make +cd gen +sed "s@exit 1@# exit 1@" -i ./install/makeInstallImage.sh +sed "s@chown@echo ""# chown@g" -i ./install/makeInstallImage.sh +sed "s@chmod@echo ""# chmod@g" -i ./install/makeInstallImage.sh +./install/makeInstallImage.sh +mv ./buildroot/ buildroot-classic +cd .. + +# superserver +make clean +NOCONFIGURE=1 ./autogen.sh +%configure --prefix=%{fbroot} --with-system-icu --with-system-editline --enable-superserver \ + --with-fbbin=%{fbroot}/bin-superserver --with-fbinclude=%{_includedir}/%{name} \ + --with-fbsbin=%{_sbindir} --with-fbconf=%{_sysconfdir}/%{name} --with-fblib=%{_libdir} \ + --with-fbdoc=%{_defaultdocdir}/%{name} --with-fbudf=%{fbroot}/UDF --with-fbsample=%{_defaultdocdir}/%{name}/examples \ + --with-fbsample-db=%{_localstatedir}/lib/%{name}/data/ \ + --with-fbhelp=%{_localstatedir}/lib/%{name}/system/ --with-fbintl=%{fbroot}/intl \ + --with-fbmisc=%{fbroot}/misc --with-fbsecure-db=%{_localstatedir}/lib/%{name}/system \ + --with-fbmsg=%{_localstatedir}/lib/%{name}/system --with-fblog=%{_localstatedir}/log/%{name} \ + --with-fbglock=%{_var}/run/%{name} --with-fbplugins=%{fbroot}/plugins-superserver +# Can't use %%make as itsparallel build is broken +make +cd gen +sed "s@exit 1@echo ""# exit 1@" -i ./install/makeInstallImage.sh +sed "s@chown@echo ""# chown@g" -i ./install/makeInstallImage.sh +sed "s@chmod@echo ""# chmod@g" -i ./install/makeInstallImage.sh +./install/makeInstallImage.sh + +cd %{_builddir}/%{pkgname} +sed "s@%%{fbroot}@%{fbroot}@g" %{SOURCE2} > firebird.mdv.releasenote + +cat > README.urpmi < %{buildroot}%{fbroot}/bin-superserver/fb_config +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{_sbindir}/fbguard %{buildroot}%{_sbindir}/fbguard +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{_sbindir}/fb_inet_server %{buildroot}%{_sbindir}/fb_inet_server +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{_sbindir}/fb_lock_print %{buildroot}%{_sbindir}/fb_lock_print +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{_sbindir}/fb_smp_server %{buildroot}%{_sbindir}/fb_smp_server +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_sbindir}/fbserver %{buildroot}%{_sbindir}/fbserver +rm -f %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/bin-superserver/fb_inet_server +rm -f %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/bin-superserver/fb_smp_server +rm -f %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/bin-superserver/changeMultiConnectMode.sh +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/bin-superserver/* %{buildroot}%{fbroot}/bin-superserver +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_includedir}/*.h %{buildroot}%{_includedir} +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_includedir}/%{name}/* %{buildroot}%{_includedir}/%{name} +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_sysconfdir}/%{name}/* %{buildroot}%{_sysconfdir}/%{name} +rm -f %{buildroot}%{_sysconfdir}/%{name}/README +rm -f %{buildroot}%{_sysconfdir}/%{name}/WhatsNew + +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{_libdir}/lib* %{buildroot}%{_libdir} +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/UDF/* %{buildroot}%{fbroot}/UDF +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_localstatedir}/lib/%{name}/data/* %{buildroot}%{_localstatedir}/lib/%{name}/data +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{_localstatedir}/lib/%{name}/system/* %{buildroot}%{_localstatedir}/lib/%{name}/system +cp -d %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/plugins-superserver/* %{buildroot}%{fbroot}/plugins-superserver +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/plugins-classic/* %{buildroot}%{fbroot}/plugins-classic +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/intl/fbintl %{buildroot}%{fbroot}/intl/fbintl +cp -d %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/intl/fbintl.conf %{buildroot}%{_sysconfdir}/%{name}/fbintl.conf +ln -s %{_sysconfdir}/%{name}/fbintl.conf .%{fbroot}/intl/fbintl.conf + + +cd %{buildroot}%{_libdir} +ln -s libfbclient.so libgds.so +ln -s libfbclient.so.%{major} libgds.so.0 +cd %{buildroot} + +echo 1 > %{buildroot}%{_localstatedir}/log/%{name}/%{name}.log +sed "s@%{name}.log@%{_localstatedir}/log/%{name}/%{name}.log@g" %{SOURCE1} > %{buildroot}%{_sysconfdir}/logrotate.d/%{name} + +sed "s@= root@= %{name}@" %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/misc/%{name}.xinetd > %{buildroot}%{_sysconfdir}/xinetd.d/%{name} +cp %{_builddir}/%{pkgname}/gen/buildroot%{fbroot}/misc/%{name}.init.d.mandrake %{buildroot}%{_initrddir}/%{name}-superserver +cp %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/misc/%{name}.init.d.mandrake %{buildroot}%{_initrddir}/%{name}-superclassic + +cd %{buildroot} +ln -s %{fbroot}/bin/fbsvcmgr .%{_bindir}/fbsvcmgr +ln -s %{fbroot}/bin/fbtracemgr .%{_bindir}/fbtracemgr +ln -s %{fbroot}/bin/gbak .%{_bindir}/gbak +ln -s %{fbroot}/bin/gdef .%{_bindir}/gdef +ln -s %{fbroot}/bin/gfix .%{_bindir}/gfix +ln -s %{fbroot}/bin/gpre .%{_bindir}/gpre +ln -s %{fbroot}/bin/gsec .%{_bindir}/gsec +ln -s %{fbroot}/bin/gsplit .%{_bindir}/gsplit +ln -s %{fbroot}/bin/gstat .%{_bindir}/gstat-fb +ln -s %{fbroot}/bin/isql .%{_bindir}/isql-fb +ln -s %{fbroot}/bin/nbackup .%{_bindir}/nbackup +ln -s %{fbroot}/bin/qli .%{_bindir}/qli +ln -s %{fbroot}/bin/fb_config .%{_bindir}/fb_config + + +# ----------------------------------------------------------------------------- + +%clean +rm -rf %{buildroot} + +# ----------------------------------------------------------------------------- +# lib scripts +# ----------------------------------------------------------------------------- +# While using -p flag, you can't leave comments until the next tag. +%if %mdkversion < 200900 +%post -n %libfbclient -p /sbin/ldconfig +%endif +%if %mdkversion < 200900 +%postun -n %libfbclient -p /sbin/ldconfig +%endif +%if %mdkversion < 200900 +%post -n %libfbembed -p /sbin/ldconfig +%endif +%if %mdkversion < 200900 +%postun -n %libfbembed -p /sbin/ldconfig +%endif + +#----------------------------------------------------------------------------- +# to bypass the rpm possible bug that don't do pre server-common +#---------------------------------------------------------------------------- +%pre server-classic +%_pre_useradd %{name} %{_localstatedir}/lib/%{name}/data /sbin/nologin + +# ----------------------------------------------------------------------------- +# classic server scripts +# ----------------------------------------------------------------------------- +%post server-classic +if [ "$(readlink %{fbroot}/bin 2> /dev/null)" \!= "%{fbroot}/bin-classic" ]; then + [ -e %{fbroot}/bin ] && rm -f %{fbroot}/bin + ln -s %{fbroot}/bin{-classic,} +fi + +%preun classic +if [ $1 -eq 0 ]; then + if /sbin/service xinetd status >& /dev/null; then + /sbin/service xinetd reload &>/dev/null || : + fi +fi + +%preun server-classic +if [ $1 -eq 0 ]; then + if [ "$(readlink %{fbroot}/bin 2> /dev/null)" = "%{fbroot}/bin-classic" ]; then + rm -f %{fbroot}/bin + fi +fi + +%post superclassic +if [ "$(readlink %{fbroot}/bin 2> /dev/null)" \!= "%{fbroot}/bin-classic" ]; then + [ -e %{fbroot}/bin ] && rm -f %{fbroot}/bin + ln -s %{fbroot}/bin{-classic,} +fi + +if [ ! -f /etc/gds_hosts.equiv ]; then + echo localhost > /etc/gds_hosts.equiv +fi +%_post_service %{name}-superclassic + +%preun superclassic +if [ $1 -eq 0 ]; then + if /sbin/service firebird-superclassic status >& /dev/null; then + /sbin/service firebird-superclassic stop + fi + chkconfig --del firebird-superclassic +fi +%_preun_service %{name}-superclassic + + +# ----------------------------------------------------------------------------- +# superserver scripts +# ----------------------------------------------------------------------------- +%post server-superserver +if [ "$(readlink %{fbroot}/bin 2> /dev/null)" \!= "%{fbroot}/bin-superserver" ]; then + [ -e %{fbroot}/bin ] && rm -f %{fbroot}/bin + ln -s %{fbroot}/bin{-superserver,} +fi + +if [ ! -f /etc/gds_hosts.equiv ]; then + echo localhost > /etc/gds_hosts.equiv +fi +%_post_service %{name}-superserver + +%preun server-superserver +if [ $1 -eq 0 ]; then + if /sbin/service firebird-superserver status >& /dev/null; then + /sbin/service firebird-superserver stop + fi + chkconfig --del firebird-superserver + if [ "$(readlink %{fbroot}/bin 2> /dev/null)" = "%{fbroot}/bin-superserver" ]; then + rm -f %{fbroot}/bin + fi +fi +%_preun_service %{name}-superserver + +# ----------------------------------------------------------------------------- +# server-common scripts +# ----------------------------------------------------------------------------- +%pre server-common +# Create the firebird user and group if it doesn't exist +%_pre_useradd %{name} %{_localstatedir}/lib/%{name}/data /sbin/nologin +# Add gds_db to /etc/services if needed +FileName=/etc/services +newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol" +oldLine=`grep "^gds_db" $FileName` +if [ -z "$oldLine" ]; then + echo $newLine >> $FileName +fi + +%postun server-common +%_postun_userdel %{name} + +%if %mdkversion < 200900 +%post -p /sbin/ldconfig +%endif +%if %mdkversion < 200900 +%postun -p /sbin/ldconfig +%endif + + + +%changelog +* Sun Jun 05 2011 Funda Wang 2.5.0.26074.0-3mdv2011.0 ++ Revision: 682810 +- rebuild for new icu + +* Fri Apr 22 2011 Phillipe Makowski 2.5.0.26074.0-2 ++ Revision: 656655 +- Fix rh #697313 with backport mainstream patch CORE-3447 (icu > 4.2) + +* Mon Mar 14 2011 Funda Wang 2.5.0.26074.0-1 ++ Revision: 644582 +- rebuild for new icu + +* Wed Dec 22 2010 Phillipe Makowski 2.5.0.26074.0-0mdv2011.0 ++ Revision: 623855 +- new upstream +- new upstream + +* Sun Dec 05 2010 Oden Eriksson 2.1.3.18185.0-7mdv2011.0 ++ Revision: 610426 +- rebuild + +* Wed Mar 24 2010 Phillipe Makowski 2.1.3.18185.0-6mdv2010.1 ++ Revision: 527170 +- build with last upstream +- Fix rh #563461 +- Fix mdv #58305 + +* Tue Aug 11 2009 Phillipe Makowski 2.1.3.18185.0-5mdv2010.0 ++ Revision: 415207 +- fix post and pre\ +- make sure that firebird user is created for classic + +* Tue Aug 11 2009 Phillipe Makowski 2.1.3.18185.0-4mdv2010.0 ++ Revision: 414734 +- added correct Requires(pre) + +* Sun Aug 09 2009 Phillipe Makowski 2.1.3.18185.0-3mdv2010.0 ++ Revision: 412354 +- remove incorrect groupadd + +* Sat Aug 08 2009 Phillipe Makowski 2.1.3.18185.0-2mdv2010.0 ++ Revision: 411790 +- correct setuid for Classic lock manager + +* Wed Aug 05 2009 Phillipe Makowski 2.1.3.18185.0-1mdv2010.0 ++ Revision: 410289 +- fix superserver init script +- avoid conflict with gstat from ganglia +- remove stupid rm -Rf in postun +- using good macros + +* Wed Jul 29 2009 Phillipe Makowski 2.1.3.18185.0-0mdv2010.0 ++ Revision: 403725 +- major cleaning install process to take care of the two architectures (Classic and Superserver) the right way +- fix #36038 +- update to new upstream fix #52505 +- better fix #50101 and #45263 (user firebird created with nologin) +- fix #28542 +- fix #34265 (change chkconfig: 345 20 80 to chkconfig: 345 80 20) + +* Mon Apr 20 2009 Oden Eriksson 2.1.2.18118.0-2mdv2009.1 ++ Revision: 368462 +- fix #50101 (user firebird created with nologin) + +* Fri Apr 10 2009 Oden Eriksson 2.1.2.18118.0-1mdv2009.1 ++ Revision: 365909 +- 2.1.2.18118-0 +- disable the -Werror=format-security flags + +* Fri Jul 18 2008 Oden Eriksson 2.1.1.17910.0-1mdv2009.0 ++ Revision: 238144 +- 2.1.1.17910-0 +- rediff the patches +- build it against system icu and edit libs + + + Pixel + - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers + +* Wed May 14 2008 Rafael da Veiga Cabral 2.0.4.13130.1-1mdv2009.0 ++ Revision: 207344 +- Update to version 2.0.4.13130. +- Changes on summary of the package. + +* Tue Mar 11 2008 Tiago Salem 2.0.3.12981.0-2mdv2008.1 ++ Revision: 186539 +- Fix initscript and create /etc/gds_hosts.equiv on %%post to fix bug #34267 +- bump release + + + Olivier Blin + - restore BuildRoot + + + Thierry Vignaud + - kill re-definition of %%buildroot on Pixel's request + +* Thu Sep 13 2007 Marcelo Ricardo Leitner 2.0.3.12981.0-1mdv2008.0 ++ Revision: 84989 +- New upstream: 2.0.3.12981, fixing an annoying bug. + +* Fri Aug 24 2007 Marcelo Ricardo Leitner 2.0.2.12964.0-3mdv2008.0 ++ Revision: 71056 +- New upstream: 2.0.2 + +* Fri Aug 17 2007 Funda Wang 2.0.1.12855.0-3mdv2008.0 ++ Revision: 64705 +- fix obsoletes old package + +* Wed Aug 15 2007 Funda Wang 2.0.1.12855.0-2mdv2008.0 ++ Revision: 63722 +- Fix file conflict + +* Wed May 09 2007 Marcelo Ricardo Leitner 2.0.1.12855.0-1mdv2008.0 ++ Revision: 25665 +- New upstream: 2.0.1 +- Removed patch amd64: applied upstream. + + +* Fri Jan 19 2007 Marcelo Ricardo Leitner 2.0.0.12748-8mdv2007.0 ++ Revision: 110615 +- Improve firebird-classic and firebird-superserver summaries in order + to explicit their difference: xinetd and standalone. + +* Fri Nov 24 2006 Marcelo Ricardo Leitner 2.0.0.12748-7mdv2007.1 ++ Revision: 86946 +- Added /var/lib/firebird and /var/lib/firebird/backup to server-common + package. + +* Thu Nov 16 2006 Marcelo Ricardo Leitner 2.0.0.12748-6mdv2007.1 ++ Revision: 84834 +- Try libncurses-devel instead +- Added buildrequires to libncurses5-devel +- New upstream: 2.0.0.12748 (2.0.0 final) +- Fully disabled parallel build, as it is broken for now. +- Bumped release, in order to be able to rebuild for x86_64. +- Added missing BuildRequires to libtermcap-devel, as required by included + readline. + +* Wed Sep 13 2006 Marcelo Ricardo Leitner 2.0.0.12724-4mdv2007.0 ++ Revision: 61079 +- Added Conflicts in firebird-server-common to firebird-firebird-server-classic + < 2.0 due to moved files. +- Fix binaries ownership in firebird-server-classic. They should be owned by + root:root and not firebird:firebird. + +* Wed Sep 06 2006 Marcelo Ricardo Leitner 2.0.0.12724-3mdv2007.0 ++ Revision: 59998 +- Applied Philippe Makowski suggestions: + * Include example employee.fdb + * -devel should requires libfbclient + * Tagged security2.fdb as config. + +* Tue Sep 05 2006 Marcelo Ricardo Leitner 2.0.0.12724-2mdv2007.0 ++ Revision: 59875 +- Disabled parallel build: it's broken. +- Import firebird + +* Sat Sep 02 2006 Marcelo Ricardo Leitner 2.0.0.12724-1mdv2007.0 +- Major packaging restructuring, following debian style. +- Enabled superserver flavor. +- Enhanced pre/post sections. +- Do not remove firebird user on package removal: we may leave some files on + the filesystem. + +* Thu Aug 24 2006 Philippe Makowski 2.0.0.12724-0.1mdk +- Update to Firebird2 + +* Tue Jul 26 2005 Stew Benedict 1.5.2.4731-0.3mdk +- fix provides in lib package + +* Fri Jan 28 2005 Lenny Cartier 1.5.2.4731-0.2mdk +- add deps +- little spec cleaning + +* Wed Jan 12 2005 Lenny Cartier 1.5.2.4731-0.1mdk +- from Philippe Makowski : + - adapted to Mandrake + - updated from the CVS tree +- libification +- bzip2 patches +- use configure macros +- requires on versions not on releases + +* Wed Aug 18 2004 Erik S. LaBianca - 1.5.1.4481-0.fdr.1 +- updated to 1.5.1 official source release +- minimized install patch intrusiveness, move files in .spec file instead +- don't try to remove the user/group on install, just leave the mess + +* Wed Feb 04 2004 Erik S. LaBianca - 1.5.0.4280-postRC8.1 +- updated to CVS code +- remove lock files from post/postun +- set target arch to match prefix.linux settings +- add dependencies to firebird RPM + +* Tue Feb 03 2004 Erik S. LaBianca - 1.5.0.4201-1 +- updated to RC8 code +- added gds_db service entry to /etc/services if necessary in post +- fix isql link +