Hello community,

here is the log from the commit of package firebird.5375 for 
openSUSE:13.2:Update checked in at 2016-07-26 08:52:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/firebird.5375 (Old)
 and      /work/SRC/openSUSE:13.2:Update/.firebird.5375.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "firebird.5375"

Changes:
--------
New Changes file:

--- /dev/null   2016-07-07 10:01:34.856033756 +0200
+++ /work/SRC/openSUSE:13.2:Update/.firebird.5375.new/firebird-classic.changes  
2016-07-26 08:52:09.000000000 +0200
@@ -0,0 +1,626 @@
+-------------------------------------------------------------------
+Mon Jul 11 05:56:29 UTC 2016 - mkube...@suse.cz
+
+- update to upstream 2.5.6 point release
+  * numerous bugfixes, including server crashes and hangs; for
+    full list, see
+    
http://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/bug-253.html
+    
http://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/bug-254.html
+    
http://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/bug-255.html
+    
http://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/rnfb25-bug.html#bug-256
+  * minor improvements, e.g.
+    * allow up to 15 input parameters for UDFs
+    * extended error reporting
+    * performance improvements
+    * table and index validation can be performed while the
+      database is on-line
+    * gbak returns non-zero exit code on all errors
+- drop patches included in upstream point release:
+  * aarch64-support.patch
+  * firebird-2.5.2-CORE-4058.patch
+  * firebird-2.5.2-CORE-4629.patch
+  * firebird-2.5.2-icu49.patch
+  * firebird-2.5.2-runlevel.patch
+  * firebird-fix-unsigned-char.diff
+  * firebird-s390x-fix_libdir.patch
+  * ppc64-libdir.patch
+- replace remaining patches by git based ones:
+  * firebird-2.5.1-chown.patch
+    -> allow-creating-buildRoot-as-non-root-user.patch
+  * firebird-2.5.1-config.patch
+    -> do-not-use-DatabaseAccess-Full-in-default-config.patch
+  * firebird-2.5.1-disable.patch
+    -> disable-xinetd-service-by-default.patch
+  * firebird-2.5.2-gpidfile.patch
+    -> fbguard-allow-creating-a-guard-pidfile.patch
+  * firebird-2.5.2-init.patch
+    -> use-killproc-in-stop-branch-of-SuSE-init-script.patch
+    (remaining part not upstreamed)
+  * firebird-2.5.2-isqlalign.patch
+    -> Fixed-CORE-3431-ISQL-pads-UTF-8-data-incorrectly.patch
+  * firebird-2.5.2-isqllocale.patch
+    -> isql-fix-output-if-charset-is-different-from-locale.patch
+  * firebird-2.5.2-isqlwidth.patch
+    -> isql-fix-buffer-overflow-when-set-width-sets-bigger-.patch
+  * firebird-2.5.2-pkgconfig.patch
+    -> add-pkgconfig-files.patch
+  * m68k-support.patch
+    -> add-experimental-support-for-m68k-architecture.patch
+- fix fbembed library name in baselibs.conf
+- minor specfile cleanup
+
+-------------------------------------------------------------------
+Wed Dec  3 07:58:08 UTC 2014 - mkube...@suse.cz
+
+- firebird-2.5.2-CORE-4629.patch:
+  fix for CORE-4629/CORE-4630: segfault in server caused by bad
+  packet (bnc#908127)
+
+-------------------------------------------------------------------
+Sat Jul  5 09:51:32 UTC 2014 - co...@suse.com
+
+- install init script as executable
+- fix the script
+
+-------------------------------------------------------------------
+Mon Feb 17 12:11:14 CET 2014 - r...@suse.de
+
+- firebird-s390x-fix_libdir.patch: s390x uses lib64 
+
+-------------------------------------------------------------------
+Tue Dec 17 17:04:03 UTC 2013 - sch...@suse.de
+
+- m68k-support.patch: add support for m68k
+
+-------------------------------------------------------------------
+Thu Dec  5 12:09:49 CET 2013 - m...@suse.de
+
+- adapt for ppc64le
+
+-------------------------------------------------------------------
+Wed Aug 21 09:18:13 UTC 2013 - fridrich.st...@suse.com
+
+- firebird-2.5.2-pkgconfig.patch:
+  fix fbembed.pc file to link with -lfbembed instead of -lfbclient
+
+-------------------------------------------------------------------
+Sun Jun  2 19:15:12 UTC 2013 - mkube...@suse.cz
+
+- resolve file conflicts between packages
+  * add explicit mutual conflict between -superserver and -classic
+  * remove fbguard from -classic (it is shared between SS and SC)
+
+-------------------------------------------------------------------
+Fri Apr 12 14:48:56 UTC 2013 - mkube...@suse.cz
+
+- config-guess-sub-update.patch:
+  remove; attempt to patch these files would break build from
+  subversion snapshots; remove both files instead and let
+  libtoolize provide its own version
+- reorder patches to keep the isql column alignment feature last
+
+-------------------------------------------------------------------
+Mon Apr  8 08:15:19 UTC 2013 - sch...@suse.de
+
+- firebird-fix-unsigned-char.diff:
+  Compile with -fsigned-char
+
+-------------------------------------------------------------------
+Mon Apr  8 01:10:47 UTC 2013 - m...@suse.de
+
+- firebird-fix-unsigned-char.diff:
+  fix for architectures where char is unsigned (aarch64 in this
+  case, but applies everywhere)
+- aarch64-support.patch:
+  aarch64 doesn't need RISC_ALIGNMENT
+
+-------------------------------------------------------------------
+Sun Mar 24 09:42:59 UTC 2013 - sch...@suse.de
+
+- config-guess-sub-update.patch: update config.guess/sub for aarch64
+- aarch64-support.patch: add support for aarch64
+
+-------------------------------------------------------------------
+Fri Mar  8 13:40:32 UTC 2013 - mkube...@suse.cz
+
+- firebird-CORE-4058.patch:
+  fix remote stack overflow (bnc#808268, CVE-2013-2492)
+
+-------------------------------------------------------------------
+Fri Jan 25 15:32:09 UTC 2013 - co...@suse.com
+
+- fix license string
+
+-------------------------------------------------------------------
+Sun Nov 11 15:16:01 UTC 2012 - mkube...@suse.cz
+
+- update to upstream version 2.5.2.26539 (2.5.2 final)
+  * Optimizer level solution for CORE-2790/CORE-3449
+  * CORE-2666: Make it possible to use API to do remote
+    backups/restores
+  * backup state lock should be released at latch timeout, else
+    lock state accounting becomes inconsistent
+  * CORE-3873: Server crashes while switching to the shadow if the
+    disk I/O fault happens while flushing the cache
+  * CORE-3860: Trace API: Faulty database filter crashes server
+  * CORE-3875: GBak does not check correctly parameters and backups
+    random database with -B ":"
+  * CORE-3879: Make fb_lock_print a bit more handy
+  * CORE-3656: Support for sweep information in Trace API
+  * CORE-2668: Write note into log when automatic sweep is started
+  * Enabled per-table runtime stats for sweeper (necessary for
+    CORE-3656)
+  * CORE-3884: Server crashes on preparing empty query when trace
+    is enabled
+  * CORE-3238: Makes GEN_UUID return a compliant RFC-4122 binary
+    UUID
+  * CORE-3887: CHAR_TO_UUID and UUID_TO_CHAR works different in
+    big/little endian architectures - problem similar to CORE-2898
+  * CORE-3895: High memory usage when PSQL code SELECT's from
+    stored procedure which modified some data
+  * Fixed the server crash in Stack::assign()
+  * CORE-3902: Derived fields may not be optimized via an index
+  * Fixed the broken (working as no-op) sweep in SuperServer
+  * Use better name from trunk for CORE-3911
+  * Restored the ODS level compatibility with v2.5.1 index keys,
+    while using the "old good" index key format in new indices. It
+    allows to claim that CORE-3675 and CORE-3853 are fixed (after
+    migration via backup/restore) but still operate almost
+    correctly with keys created in v2.5.1.
+  * CORE-3912: segfault in superclassic
+  * Better diagnostic (CORE-3786)
+- firebird-2.5.2-icu49.patch:
+  fix broken unicode collations (bnc#789171, CORE-3946)
+
+-------------------------------------------------------------------
+Wed Jul 25 19:40:55 UTC 2012 - dval...@suse.com
+
+- add libatomic-ops-devel on non x86 arches
+- set libdir on powerpc correctly
+
+-------------------------------------------------------------------
+Sun Jul 22 21:29:43 UTC 2012 - mkube...@suse.cz
+
+- firebird-2.5.2-runlevel.patch:
+  don't start the daemon in runlevel 2
+- add README.SUSE
+
+-------------------------------------------------------------------
+Wed Jun  6 12:44:04 UTC 2012 - mkube...@suse.cz
+
+- update to upstream version 2.5.2.25494
+  * Rolled back the ODS level solution for CORE-2709 as it causes
+    cross-version compatibility issues (CORE-3853) as well as
+    functional regressions (CORE-3675). Another solution is likely
+    to be committed instead.
+  * CORE-3769: The message 'Unknown tag (4) in isc_svc_query()
+    results' appears when fbtracemgr is interrupted by Ctrl-C
++++ 429 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:13.2:Update/.firebird.5375.new/firebird-classic.changes
New Changes file:

firebird.changes: same change

New:
----
  Firebird-2.5.6.27020-0.tar.xz
  Fixed-CORE-3431-ISQL-pads-UTF-8-data-incorrectly.patch
  README.SUSE
  add-experimental-support-for-m68k-architecture.patch
  add-pkgconfig-files.patch
  allow-creating-buildRoot-as-non-root-user.patch
  baselibs.conf
  disable-xinetd-service-by-default.patch
  do-not-use-DatabaseAccess-Full-in-default-config.patch
  fbguard-allow-creating-a-guard-pidfile.patch
  firebird-classic.changes
  firebird-classic.spec
  firebird.changes
  firebird.spec
  isql-fix-buffer-overflow-when-set-width-sets-bigger-.patch
  isql-fix-output-if-charset-is-different-from-locale.patch
  use-killproc-in-stop-branch-of-SuSE-init-script.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ firebird-classic.spec ++++++
#
# spec file for package firebird-classic
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define upversion 2.5.6.27020
%define pkgversion Firebird-%{upversion}-0
%define bname firebird

%if 0%{?suse_version} < 1130
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%endif

Name:           firebird-classic
Version:        %{upversion}
Release:        0
Source:         %{pkgversion}.tar.xz
Source99:       baselibs.conf
Url:            http://www.firebirdsql.org/
BuildRequires:  gcc-c++
BuildRequires:  libedit-devel
BuildRequires:  libicu-devel
BuildRequires:  libtool
BuildRequires:  ncurses-devel
BuildRequires:  pkg-config
BuildRequires:  xz
%ifnarch %{ix86} x86_64
BuildRequires:  libatomic-ops-devel
%endif
Conflicts:      %{bname}-superserver
Requires(pre):  pwdutils
Requires:       %{bname} = %{version}
Provides:       %{bname}-server
Summary:        Classic architecture binaries for SQL database server
License:        SUSE-IDPL-1.0 and SUSE-IBPL-1.0
Group:          Productivity/Databases/Servers

# SUSE specific patches
Patch1:         allow-creating-buildRoot-as-non-root-user.patch
Patch2:         fbguard-allow-creating-a-guard-pidfile.patch
Patch3:         use-killproc-in-stop-branch-of-SuSE-init-script.patch
Patch4:         disable-xinetd-service-by-default.patch
Patch5:         do-not-use-DatabaseAccess-Full-in-default-config.patch
Patch6:         add-pkgconfig-files.patch
# backport from upstream 3.0 branch
Patch21:        Fixed-CORE-3431-ISQL-pads-UTF-8-data-incorrectly.patch
Patch22:        isql-fix-output-if-charset-is-different-from-locale.patch
Patch23:        isql-fix-buffer-overflow-when-set-width-sets-bigger-.patch
# SUSE only, 2.5 only
Patch31:        add-experimental-support-for-m68k-architecture.patch

%description
Classic architecture binaries for Firebird SQL server. These can be used
either for Classic (separate processes run by (x)inetd) or SuperClassic
(one multithreaded daemon with per-connection cache and shared locking
system) model.

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.


%prep
%setup -q -n %{pkgversion}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch31 -p1

%build
rm -vf builds/make.new/config/config.{guess,sub}
./autogen.sh --prefix=%{_prefix} \
  --with-system-icu --with-system-editline \
  --with-fbbin=%{_bindir} --with-fbsbin=%{_sbindir} \
  --with-fbconf=%{_sysconfdir}/%{bname} \
  --with-fblib=%{_libdir} --with-fbinclude=%{_includedir}/%{bname} \
  --with-fbdoc=%{_docdir}/%{bname} \
  --with-fbudf=%{_libdir}/%{bname}/udf \
  --with-fbsample=%{_docdir}/%{bname}/sample \
  --with-fbsample-db=%{_libdir}/%{bname}/sample \
  --with-fbhelp=%{_libdir}/%{bname}/lib \
  --with-fbintl=%{_libdir}/%{bname}/intl \
  --with-fbmisc=%{_datadir}/%{bname}/misc \
  --with-fbsecure-db=%{_localstatedir}/lib/%{bname}/secdb \
  --with-fbmsg=%{_libdir}/%{bname}/lib \
  --with-fblog=%{_localstatedir}/log/%{bname} \
  --with-fbglock=%{_localstatedir}/run/%{bname} \
  --with-fbplugins=%{_libdir}/%{bname}/plugins
make %{?jobs:CPU=%jobs}
cd gen
make -f Makefile.install buildRoot
chmod -R u+w buildroot%{_docdir}/%{bname}

%install
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
cp gen/buildroot%{_bindir}/* ${RPM_BUILD_ROOT}%{_bindir}/
mkdir -p ${RPM_BUILD_ROOT}%{_sbindir}
cp gen/buildroot%{_sbindir}/* ${RPM_BUILD_ROOT}%{_sbindir}/
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
cp -a gen/buildroot%{_libdir}/libfbembed.so* ${RPM_BUILD_ROOT}%{_libdir}/
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/xinetd.d
cp gen/buildroot%{_datadir}/%{bname}/misc/firebird.xinetd \
  ${RPM_BUILD_ROOT}%{_sysconfdir}/xinetd.d/%{bname}
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig
cp -v gen/install/misc/*.pc ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/
cd ${RPM_BUILD_ROOT}
rm -vf .%{_sbindir}/*.sh
rm -vf .%{_sbindir}/fbguard
rm -vf .%{_sbindir}/fb_config
mv -v .%{_bindir}/isql .%{_bindir}/isql-fb
mv -v .%{_bindir}/gstat .%{_bindir}/gstat-fb

%files
%defattr(-,root,root)
%{_bindir}/*
%{_sbindir}/*
%config(noreplace) %{_sysconfdir}/xinetd.d/%{bname}

# ----------------------------------------------------------------------------

%package -n libfbembed2_5
Summary:        Firebird SQL server embedded client library
Group:          Development/Libraries/C and C++

%description -n libfbembed2_5
Shared embedded client library for Firebird SQL server.

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.


%files -n libfbembed2_5
%defattr(-,root,root)
%{_libdir}/libfbembed.so.*

%post -n libfbembed2_5
/sbin/ldconfig

%postun -n libfbembed2_5
/sbin/ldconfig

# ----------------------------------------------------------------------------

%package -n libfbembed-devel
Summary:        Development files for Firebird SQL server embedded client 
library
Group:          Development/Libraries/C and C++
Requires:       %{bname}-devel
Requires:       libfbembed2_5 = %{version}

%description -n libfbembed-devel
Development files for Firebird SQL server embedded client library.
 
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.


%files -n libfbembed-devel
%defattr(-,root,root)
%{_libdir}/libfbembed.so
%{_libdir}/pkgconfig/fbembed.pc

%changelog
++++++ firebird.spec ++++++
#
# spec file for package firebird
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define upversion 2.5.6.27020
%define pkgversion Firebird-%{upversion}-0

%if 0%{?suse_version} < 1130
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%endif

Name:           firebird
Version:        %{upversion}
Release:        0
Source:         %{pkgversion}.tar.xz
Source1:        README.SUSE
Source99:       baselibs.conf
Url:            http://www.firebirdsql.org/
BuildRequires:  gcc-c++
BuildRequires:  libedit-devel
BuildRequires:  libicu-devel
BuildRequires:  libtool
BuildRequires:  ncurses-devel
BuildRequires:  pkg-config
BuildRequires:  xz
%ifnarch %{ix86} x86_64
BuildRequires:  libatomic-ops-devel
%endif
Requires(pre):  pwdutils
Requires:       %{name}-server = %{version}
Summary:        An SQL database server
License:        SUSE-IDPL-1.0 and SUSE-IBPL-1.0
Group:          Productivity/Databases/Servers

# SUSE specific patches
Patch1:         allow-creating-buildRoot-as-non-root-user.patch
Patch2:         fbguard-allow-creating-a-guard-pidfile.patch
Patch3:         use-killproc-in-stop-branch-of-SuSE-init-script.patch
Patch4:         disable-xinetd-service-by-default.patch
Patch5:         do-not-use-DatabaseAccess-Full-in-default-config.patch
Patch6:         add-pkgconfig-files.patch
# backport from upstream 3.0 branch
Patch21:        Fixed-CORE-3431-ISQL-pads-UTF-8-data-incorrectly.patch
Patch22:        isql-fix-output-if-charset-is-different-from-locale.patch
Patch23:        isql-fix-buffer-overflow-when-set-width-sets-bigger-.patch
# SUSE only, 2.5 only
Patch31:        add-experimental-support-for-m68k-architecture.patch

%description
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.


%prep
%setup -q -n %{pkgversion}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch31 -p1

%build
rm -vf builds/make.new/config/config.{guess,sub}
./autogen.sh --prefix=%{_prefix} \
  --enable-superserver \
  --with-system-icu --with-system-editline \
  --with-fbbin=%{_bindir} --with-fbsbin=%{_sbindir} \
  --with-fbconf=%{_sysconfdir}/%{name} \
  --with-fblib=%{_libdir} --with-fbinclude=%{_includedir}/%{name} \
  --with-fbdoc=%{_docdir}/%{name} \
  --with-fbudf=%{_libdir}/%{name}/udf \
  --with-fbsample=%{_docdir}/%{name}/sample \
  --with-fbsample-db=%{_libdir}/%{name}/sample \
  --with-fbhelp=%{_libdir}/%{name}/lib \
  --with-fbintl=%{_libdir}/%{name}/intl \
  --with-fbmisc=%{_datadir}/%{name}/misc \
  --with-fbsecure-db=%{_localstatedir}/lib/%{name}/secdb \
  --with-fbmsg=%{_libdir}/%{name}/lib \
  --with-fblog=%{_localstatedir}/log/%{name} \
  --with-fbglock=%{_localstatedir}/run/%{name} \
  --with-fbplugins=%{_libdir}/%{name}/plugins
make %{?jobs:CPU=%jobs}
cd gen
make -f Makefile.install buildRoot
chmod -R u+w buildroot%{_docdir}/%{name}

%install
cp -r gen/buildroot/* ${RPM_BUILD_ROOT}/
mkdir -p ${RPM_BUILD_ROOT}/etc/init.d
install -m 755 gen/install/misc/firebird.init.d.suse \
  ${RPM_BUILD_ROOT}/etc/init.d/firebird
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig
cp -v gen/install/misc/*.pc ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/
cd ${RPM_BUILD_ROOT}
mkdir -p .%{_libdir}/%{name}/utils
mv -v .%{_sbindir}/*.sh .%{_libdir}/%{name}/utils/
mv -v .%{_sbindir}/fb_config .%{_libdir}/%{name}/utils/
mv -v .%{_bindir}/isql .%{_bindir}/isql-fb
mv -v .%{_bindir}/gstat .%{_bindir}/gstat-fb
rm -vf .%{_includedir}/%{name}/perf.h
rm -vf .%{_libdir}/libicu*.so
rm -vf .%{_includedir}/*.h
chmod -R u+w .%{_docdir}/%{name}
rm -vf .%{_datadir}/%{name}/misc/firebird.init.*
rm -vf .%{_datadir}/%{name}/misc/rc.config.firebird
rm -vf .%{_datadir}/%{name}/misc/firebird.xinetd
mv -v .%{_sysconfdir}/%{name}/README .%{_sysconfdir}/%{name}/WhatsNew \
  .%{_docdir}/%{name}/
mv -v .%{_sysconfdir}/%{name}/IDPLicense.txt .%{_docdir}/%{name}/
mv -v .%{_sysconfdir}/%{name}/IPLicense.txt .%{_docdir}/%{name}/
cp -v %{S:1} .%{_docdir}/%{name}/
mkdir -p srv/%{name}
ln -s /etc/init.d/firebird usr/sbin/rcfirebird

%files
%defattr(-,root,root)
%{_sbindir}/fbguard
%{_sbindir}/rcfirebird
%{_libdir}/%{name}/utils
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/*.conf
%{_libdir}/libib_util.so
%dir %{_libdir}/%{name}
%dir %{_datadir}/%{name}
%{_libdir}/%{name}/lib
%{_libdir}/%{name}/intl
%{_datadir}/%{name}/misc
%{_libdir}/%{name}/plugins
%{_libdir}/%{name}/udf
%attr(755,root,root) /etc/init.d/firebird
%{_docdir}/%{name}/IDPLicense.txt
%{_docdir}/%{name}/IPLicense.txt
%{_docdir}/%{name}/README.SUSE

%dir %{_localstatedir}/lib/%{name}
%dir %{_localstatedir}/lib/%{name}/secdb
%attr(0600,firebird,firebird) %config(noreplace) 
%{_localstatedir}/lib/%{name}/secdb/security2.fdb
%dir %{_libdir}/%{name}/sample
%attr(0600,firebird,firebird) %{_libdir}/%{name}/sample/*
%attr(0750,firebird,firebird) %{_localstatedir}/log/%{name}
%dir %attr(0750,firebird,firebird) /srv/firebird

%pre
getent group firebird >/dev/null || groupadd -r firebird || :
getent passwd firebird >/dev/null \
  || /usr/sbin/useradd -r -g firebird -c 'Firebird SQL server' \
       -d /srv/firebird firebird \
  || :
exit 0

%post
%restart_on_update

%preun
%stop_on_removal

%postun
%restart_on_update
%insserv_cleanup

# ----------------------------------------------------------------------------

%package superserver
Conflicts:      %{name}-classic
Requires:       %{name} = %{version}
Provides:       %{name}-server
Summary:        SuperServer architecture binaries for Firebird SQL server
Group:          Productivity/Databases/Servers

%description superserver
SuperServer architecture binaries for Firebird SQL server. SuperServer
architecture uses one multithreaded process for processing client
connections with exclusive database lock and cache shared between
connections.

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.


%files superserver
%defattr(-,root,root)
%{_bindir}/*
%{_sbindir}/fbserver
%{_sbindir}/fbmgr.bin
%{_sbindir}/fb_lock_print

# ----------------------------------------------------------------------------

%package devel
Summary:        UDF support library for Firebird SQL server
Group:          Development/Libraries/C and C++

%description devel
This package is needed for development of client applications and user
defined functions (UDF) for Firebird SQL server.

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.


%files devel
%defattr(-,root,root)
%{_includedir}/%{name}
%{_docdir}/%{name}/sample

# ----------------------------------------------------------------------------

%package doc
Requires:       %{name} = %{version}
Summary:        Documentation for Firebird SQL server
Group:          Documentation/Other
%if 0%{?suse_version} > 1110
BuildArch:      noarch
%endif

%description doc
Documentation for Firebird SQL server.

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.


%files doc
%defattr(-,root,root)
%{_docdir}/%{name}
%exclude %{_docdir}/%{name}/sample
%exclude %{_docdir}/%{name}/IDPLicense.txt
%exclude %{_docdir}/%{name}/IPLicense.txt
%exclude %{_docdir}/%{name}/README.SUSE

# ----------------------------------------------------------------------------

%package -n libfbclient2
Summary:        Firebird SQL server client library
Group:          Development/Libraries/C and C++

%description -n libfbclient2
Shared client library for Firebird SQL server.

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.


%files -n libfbclient2
%defattr(-,root,root)
%{_libdir}/libfbclient.so.*

%post -n libfbclient2
/sbin/ldconfig

%postun -n libfbclient2
/sbin/ldconfig

# ----------------------------------------------------------------------------

%package -n libfbclient2-devel
Summary:        Development libraries and headers for Firebird SQL server
Group:          Development/Libraries/C and C++
Requires:       %{name}-devel
Requires:       libfbclient2 = %{version}

%description -n libfbclient2-devel
Development files for Firebird SQL server client library.
 
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.


%files -n libfbclient2-devel
%defattr(-,root,root)
%{_libdir}/libfbclient.so
%{_libdir}/pkgconfig/fbclient.pc

%changelog
++++++ Fixed-CORE-3431-ISQL-pads-UTF-8-data-incorrectly.patch ++++++
From: asfernandes <asfernandes@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859>
Date: Tue, 5 Apr 2011 21:30:27 +0000
Subject: Fixed CORE-3431 - ISQL pads UTF-8 data incorrectly.

git-svn-id: 
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/trunk@52676 
de594faa-8d1b-4a0c-9a6a-a7de5f8bf859

Conflicts:

        src/isql/isql.epp
---
 src/isql/isql.epp | 159 ++++++++++++++++++++++++++++++++++++++++++++----------
 src/isql/isql.h   |   1 +
 2 files changed, 132 insertions(+), 28 deletions(-)

diff --git a/src/isql/isql.epp b/src/isql/isql.epp
index f5e5777..31c6d6b 100644
--- a/src/isql/isql.epp
+++ b/src/isql/isql.epp
@@ -131,6 +131,8 @@ using MsgFormat::SafeArg;
 #include "../isql/InputDevices.h"
 #include "../isql/OptionsBase.h"
 
+#include "../intl/charsets.h"
+#include <unicode/utf8.h>
 
 DATABASE DB = COMPILETIME "yachts.lnk";
 
@@ -245,6 +247,98 @@ const switch_info switches[] =
 };
 
 
+namespace IcuUtil
+{
+       // Duplicate from ICU to not need to link ISQL with it. It's used by 
U8_NEXT_UNSAFE.
+       static const uint8_t utf8_countTrailBytes[256] = {
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+               1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+               1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+               2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+               3, 3, 3, 3, 3,
+               3, 3, 3,    /* illegal in Unicode */
+               4, 4, 4, 4, /* illegal in Unicode */
+               5, 5,       /* illegal in Unicode */
+               0, 0        /* illegal bytes 0xfe and 0xff */
+       };
+
+       // Return the number of characters of a string.
+       static unsigned charLength(SSHORT sqlsubtype, unsigned len, const char* 
str)
+       {
+               if (sqlsubtype != CS_UNICODE_FSS && sqlsubtype != CS_UTF8)
+                       return len;
+
+               unsigned charLen = 0;
+               unsigned i = 0;
+
+               while (i < len)
+               {
+                       UChar32 c;
+                       U8_NEXT_UNSAFE(str, i, c);
+                       ++charLen;
+               }
+
+               return charLen;
+       }
+
+       // Pads a string to a specified column width.
+       static void pad(char* buffer, SSHORT sqlsubtype, unsigned len, const 
char* str, unsigned width,
+               bool right)
+       {
+               if (sqlsubtype != CS_UNICODE_FSS && sqlsubtype != CS_UTF8)
+               {
+                       // Truncate if necessary.
+                       if (len > width)
+                               len = width;
+
+                       sprintf(buffer, (right ? "%*.*s" : "%-*.*s"), width, 
len, str);
+                       return;
+               }
+
+               unsigned i = 0;
+
+               while (i < len && width > 0)
+               {
+                       UChar32 c;
+                       U8_NEXT_UNSAFE(str, i, c);
+                       --width;
+               }
+
+               if (right)
+               {
+                       while (width-- > 0)
+                               *buffer++ = ' ';
+               }
+
+               memcpy(buffer, str, i);
+               buffer += i;
+
+               if (!right)
+               {
+                       while (width-- > 0)
+                               *buffer++ = ' ';
+               }
+
+               *buffer = '\0';
+       }
+}
+
+
 static inline bool commit_trans(isc_tr_handle* x)
 {
        if (isc_commit_transaction (isc_status, x)) {
@@ -583,6 +677,7 @@ int ISQL_main(int argc, char* argv[])
        TEXT tabname[WORDLENGTH];
        tabname[0] = '\0';
        isqlGlob.db_SQL_dialect = 0;
+       isqlGlob.att_charset = 0;
 
        // Output goes to stdout by default
        isqlGlob.Out = stdout;
@@ -5864,6 +5959,7 @@ void ISQL_get_version(bool call_by_create_db)
                isc_info_ods_version,
                isc_info_ods_minor_version,
                isc_info_db_sql_dialect,
+               frb_info_att_charset,
                Version_info ? isc_info_firebird_version: isc_info_end,
                isc_info_end
        };
@@ -6020,6 +6116,10 @@ void ISQL_get_version(bool call_by_create_db)
                        }
                        break;
 
+               case frb_info_att_charset:
+                       isqlGlob.att_charset = gds__vax_integer(p, length);
+                       break;
+
                default:
                        isqlGlob.printf("Internal error: Unexpected 
isc_info_value %d%s",
                                                        item, NEWLINE);
@@ -7360,18 +7460,6 @@ static bool checkSpecial(TEXT* const p, const int 
length, const double value)
 }
 
 
-static void align_string(char* out, unsigned clen, unsigned slen, const char* 
s)
-{
-       if (slen > clen)
-               slen = clen;
-       memcpy(out, s, slen);
-       if (clen > slen)
-               memset(out + slen, ' ', clen - slen);
-       out[clen] = ' ';
-       out[clen + 1] = '\0';
-}
-
-
 static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length)
 {
 /**************************************
@@ -7659,12 +7747,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const 
int length)
                                        sprintf(p, "%-*s ", length, buff2);
                                ISQL_FREE(buff2);
                        }
-                       else if (List) {
+                       else if (List)
                                isqlGlob.printf("%s%s", string, NEWLINE);
-                       }
                        else
                        {
-                               align_string(p, length, var->sqllen, 
var->sqldata);
+                               IcuUtil::pad(p, var->sqlsubtype, 
strlen(var->sqldata), var->sqldata, length, false);
+                               strcat(p, " ");
                        }
                        break;
 
@@ -7752,12 +7840,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const 
int length)
                                        }
                                        ISQL_FREE(buff2);
                                }
-                               else if (List) {
+                               else if (List)
                                        isqlGlob.printf("%s%s", 
avary->vary_string, NEWLINE);
-                               }
                                else
                                {
-                                       align_string(p, length, 
avary->vary_length, avary->vary_string);
+                                       IcuUtil::pad(p, var->sqlsubtype, 
avary->vary_length, avary->vary_string, length, false);
+                                       strcat(p, " ");
                                }
                                break;
                        }
@@ -8195,16 +8283,20 @@ static void process_header(const XSQLDA* sqlda, const 
int pad[], TEXT header[],
        for (const XSQLVAR* const end = var + sqlda->sqld; var < end; var++, 
i++)
        {
                const SSHORT type = var->sqltype & ~1;
-               if (type == SQL_TEXT || type == SQL_VARYING)
-                       sprintf(p, "%-*.*s ", pad[i], pad[i], var->aliasname);
-               else
-                       sprintf(p, "%*s ", pad[i], var->aliasname);
+
+               IcuUtil::pad(p, isqlGlob.att_charset, var->aliasname_length, 
var->aliasname, pad[i],
+                       (type != SQL_TEXT && type != SQL_VARYING));
+               strcat(p, " ");
+
+               p += strlen(p);
+
                // Separators need not go on forever no more than a line
-               size_t limit = strlen(p);
-               for (size_t j = 1; j < limit && j < 80; j++)
+               unsigned limit = IcuUtil::charLength(isqlGlob.att_charset, 
var->aliasname_length, var->aliasname);
+               limit = MAX(limit, pad[i]) + 1;
+
+               for (unsigned j = 1; j < limit && j < 80; j++)
                        *p2++ = '=';
                *p2++ = BLANK;
-               p += limit;
        }
        *p2 = '\0';
 }
@@ -8443,7 +8535,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
 
                USHORT data_length, disp_length, alignment;
                data_length = disp_length = alignment = var->sqllen;
-               SSHORT namelength = var->aliasname_length;
+               SSHORT namelength = IcuUtil::charLength(isqlGlob.att_charset, 
var->aliasname_length, var->aliasname);
 
                // Minimum display length should not be less than that needed
                // for displaying null
@@ -8485,6 +8577,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
                        // OCTETS data is displayed in hex
                        if (var->sqlsubtype == 1)
                                disp_length = 2 * var->sqllen;
+                       else if (var->sqlsubtype == 4)
+                               disp_length /= 4;
                        break;
                case SQL_VARYING:
                        data_length += sizeof(USHORT) + 1;
@@ -8492,6 +8586,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
                        // OCTETS data is displayed in hex
                        if (var->sqlsubtype == 1)
                                disp_length = 2 * var->sqllen;
+                       else if (var->sqlsubtype == 4)
+                               disp_length /= 4;
                        break;
                case SQL_SHORT:
                        disp_length = SHORT_LEN;
@@ -8522,7 +8618,10 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
 
                // This is the print width of each column
 
-               pad[i] = (disp_length > namelength ? disp_length : namelength);
+               if (disp_length < namelength)
+                       disp_length = namelength;
+
+               pad[i] = disp_length;
 
                // Is there a collist entry, then use that width, but only for 
text
                if (type == SQL_TEXT || type == SQL_VARYING)
@@ -8531,8 +8630,11 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
                                pad[i] = global_Col_default;
                }
 
+               if ((type == SQL_TEXT || type == SQL_VARYING) && 
var->sqlsubtype == 4)
+                       disp_length *= 4;
+
                // The total line length
-               linelength += pad[i] + 1;
+               linelength += disp_length + 1;
 
                // Allocate space in buffer for data
 
@@ -8540,6 +8642,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
                var->sqldata = (SCHAR*) buffer + offset;
                offset += data_length;
        }
+
        return linelength;
 }
 
diff --git a/src/isql/isql.h b/src/isql/isql.h
index e076c3c..9d350e4 100644
--- a/src/isql/isql.h
+++ b/src/isql/isql.h
@@ -362,6 +362,7 @@ public:
        // from isql.epp
        USHORT major_ods;
        USHORT minor_ods;
+       USHORT att_charset;
        void printf(const char* buffer, ...);
        void prints(const char* buffer);
 };
-- 
1.8.4.5

++++++ README.SUSE ++++++
1. Packaging

Package firebird contains only common files shared by all architectures.
For server functionality, one of the following subpackages is needed:

  firebird-superserver - SuperServer architecture
  firebird-classic     - Classic and SuperClassic architecture

Client libraries are contained in two packages:

  libfbclient2  - standard client for shared database
  libfbembed2_5 - embedded server

There are three devel packages:

  libfbclient2-devel - devel files for libfbclient2
  libfbembed-devel   - devel files for libfbembed2_5
  firebird-devel     - common headers and development examples

Two of Firebird utilities - isql and gstat - have names colliding with
tools from other packages. They have been renamed to isql-fb and
gstat-fb respectively.


2. Configuration

Default sysdba password is "masterkey" as usual. Location of Firebird
security database is /var/lib/firebird/secdb/security2.fdb

Config files are in /etc/firebird. Default config files are mostly the
same as upstream defaults, the only difference is default value of
DatabaseAccess directive. As upstream default "Full" can be considered
a security flaw, SUSE packages use "Restrict /srv/firebird". To use
a database in different location, either modify the DatabaseAccess
directive or define an alias for it in aliases.conf.


3. Starting the server

- SuperServer:

  * once: /etc/init.d/firebird start
  * always: insserv firebird

- Classic:

  * in /etc/xinetd.d/firebird, change value of "disable" to "yes"
  * check that xinetd is running and reload its configuration

- SuperClassic:

  The same as for SuperServer (with firebird-classic package installed)

++++++ add-experimental-support-for-m68k-architecture.patch ++++++
From: Andreas Schwab <sch...@suse.de>
Date: Sun, 7 Dec 2014 21:44:27 +0100
Subject: add experimental support for m68k architecture

As this is probably never going to get to upstream, one cannot expect
architecture id to be persistent. Whenever upstream adds a new
architecture, the id is going to collide, patch will need an update and
database file will not be compatible with new binaries (so that backup
and restore will be needed). As noone is likely to be actually using
Firebird on m68k for real data, there should be no harm.
---
 src/jrd/common.h  | 6 ++++++
 src/jrd/inf_pub.h | 1 +
 src/jrd/pag.cpp   | 8 ++++++--
 src/jrd/utl.cpp   | 3 ++-
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/jrd/common.h b/src/jrd/common.h
index 875040f..b7d1a33 100644
--- a/src/jrd/common.h
+++ b/src/jrd/common.h
@@ -202,6 +202,12 @@
 
 
 
+#ifdef __mc68000__
+#define IMPLEMENTATION  isc_info_db_impl_linux_m68k /* 85  */
+#undef FB_ALIGNMENT
+#define FB_ALIGNMENT 4
+#endif /* mc68000 */
+
 #endif /* LINUX */
 
 
diff --git a/src/jrd/inf_pub.h b/src/jrd/inf_pub.h
index de6bec3..8e7884aa 100644
--- a/src/jrd/inf_pub.h
+++ b/src/jrd/inf_pub.h
@@ -217,6 +217,7 @@ enum  info_db_implementations
        isc_info_db_impl_linux_alpha = 83,
        isc_info_db_impl_linux_arm64 = 84,
        isc_info_db_impl_linux_ppc64el = 85,
+       isc_info_db_impl_linux_m68k = 86,
 
        isc_info_db_impl_last_value   // Leave this LAST!
 };
diff --git a/src/jrd/pag.cpp b/src/jrd/pag.cpp
index a6e9322..de12c4d 100644
--- a/src/jrd/pag.cpp
+++ b/src/jrd/pag.cpp
@@ -165,10 +165,11 @@ static const int CLASS_LINUX_HPPA = 40;           // 
LINUX/HPPA
 static const int CLASS_LINUX_ALPHA = 41;       // LINUX/ALPHA
 static const int CLASS_LINUX_ARM64 = 42;       // LINUX/ARM64
 static const int CLASS_LINUX_PPC64EL = 43;     // LINUX/PowerPc64EL
+static const int CLASS_LINUX_M68K = 44;                // LINUX/M68K
 
 
 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_PPC64EL;
+static const int CLASS_MAX = CLASS_LINUX_M68K;
 
 // ARCHITECTURE COMPATIBILITY CLASSES
 
@@ -269,7 +270,8 @@ static const ArchitectureType archMatrix[CLASS_MAX + 1] =
        archBigEndian,    // CLASS_LINUX_HPPA
        archLittleEndian, // CLASS_LINUX_ALPHA
        archLittleEndian, // CLASS_LINUX_ARM64
-       archLittleEndian  // CLASS_LINUX_PPC64EL
+       archLittleEndian, // CLASS_LINUX_PPC64EL
+       archBigEndian     // CLASS_LINUX_M68K
 
 };
 
@@ -338,6 +340,8 @@ const SSHORT CLASS          = CLASS_LINUX_ALPHA;
 const SSHORT CLASS             = CLASS_LINUX_ARM64;
 #elif defined(PPC64EL)
 const SSHORT CLASS             = CLASS_LINUX_PPC64EL;
+#elif defined(__mc68000__)
+const SSHORT CLASS             = CLASS_LINUX_M68K;
 #else
 #error no support on other hardware for Linux
 #endif
diff --git a/src/jrd/utl.cpp b/src/jrd/utl.cpp
index 63263a0..bd0472d 100644
--- a/src/jrd/utl.cpp
+++ b/src/jrd/utl.cpp
@@ -229,7 +229,8 @@ static const TEXT* const impl_implementation[] =
        "Firebird/linux HPPA",                  // 82
        "Firebird/linux ALPHA",                 // 83
        "Firebird/linux ARM64",                 // 84
-       "Firebird/linux PPC64EL"                // 85
+       "Firebird/linux PPC64EL",               // 85
+       "Firebird/linux M68K"                   // 86
 
 };
 
-- 
1.8.4.5

++++++ add-pkgconfig-files.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:29:08 +0200
Subject: add pkgconfig files

---
 builds/install/arch-specific/linux/classic/fbembed.pc.in | 10 ++++++++++
 builds/install/arch-specific/linux/super/fbclient.pc.in  | 10 ++++++++++
 configure.in                                             |  6 ++++++
 3 files changed, 26 insertions(+)
 create mode 100644 builds/install/arch-specific/linux/classic/fbembed.pc.in
 create mode 100644 builds/install/arch-specific/linux/super/fbclient.pc.in

diff --git a/builds/install/arch-specific/linux/classic/fbembed.pc.in 
b/builds/install/arch-specific/linux/classic/fbembed.pc.in
new file mode 100644
index 0000000..1a7ee2c
--- /dev/null
+++ b/builds/install/arch-specific/linux/classic/fbembed.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@FB_LIBDIR@
+includedir=@FB_INCDIR@
+
+Name: fbembed
+Description: Firebird embedded client library
+Version: @FIREBIRD_VERSION@
+Cflags: -I${includedir}
+Libs: -L${libdir} -lfbembed
diff --git a/builds/install/arch-specific/linux/super/fbclient.pc.in 
b/builds/install/arch-specific/linux/super/fbclient.pc.in
new file mode 100644
index 0000000..e1a1de5
--- /dev/null
+++ b/builds/install/arch-specific/linux/super/fbclient.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@FB_LIBDIR@
+includedir=@FB_INCDIR@
+
+Name: fbclient
+Description: Firebird client library
+Version: @FIREBIRD_VERSION@
+Cflags: -I${includedir}
+Libs: -L${libdir} -lfbclient
diff --git a/configure.in b/configure.in
index 729f98d..fd91863 100644
--- a/configure.in
+++ b/configure.in
@@ -1360,6 +1360,12 @@ case "$PLATFORM" in
                      
gen/install/misc/rc.config.firebird:builds/install/arch-specific/linux/misc/rc.config.firebird.in
                      
gen/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/misc/linuxLibrary.sh.in]
       ,[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null])
+    if test $FIREBIRD_ARCH_TYPE = super; then
+      
AC_CONFIG_FILES([gen/install/misc/fbclient.pc:${INSTALL_SRC_DIR}/fbclient.pc.in])
+    fi
+    if test $FIREBIRD_ARCH_TYPE = classic; then
+      
AC_CONFIG_FILES([gen/install/misc/fbembed.pc:${INSTALL_SRC_DIR}/fbembed.pc.in])
+    fi
     ;;
 
   HPUX)
-- 
1.8.4.5

++++++ allow-creating-buildRoot-as-non-root-user.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:15:28 +0200
Subject: allow creating buildRoot as non-root user

Do not use chown in "make buildRoot" so that it doesn't require
to be run as root.
---
 .../install/arch-specific/linux/misc/makeInstallImage.sh.in | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 
b/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
index cda8e63..ee6fab8 100644
--- a/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
+++ b/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
@@ -28,10 +28,15 @@
 # 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
+#if [ "`whoami`" != "root" ]; then
+#      echo 'You must be root to build package'
+#      exit 1
+#fi
+
+function chown
+{
+  :
+}
 
 # Making an assumption that this program is being run in the gen directory
 BuildRootDir=..
-- 
1.8.4.5

++++++ baselibs.conf ++++++
firebird
    +/usr/lib(64)?/libib_util.so
libfbclient2
    +/usr/lib(64)?/libfbclient.*
libfbembed2_5
    +/usr/lib(64)?/libfbembed.*
++++++ disable-xinetd-service-by-default.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:24:13 +0200
Subject: disable xinetd service by default

In default xinetd service file, disable the service by default.
Also start the server as user firebird, not root.
---
 builds/install/arch-specific/linux/misc/firebird.xinetd.in | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/builds/install/arch-specific/linux/misc/firebird.xinetd.in 
b/builds/install/arch-specific/linux/misc/firebird.xinetd.in
index 14f50ce..6e7c887 100644
--- a/builds/install/arch-specific/linux/misc/firebird.xinetd.in
+++ b/builds/install/arch-specific/linux/misc/firebird.xinetd.in
@@ -7,11 +7,12 @@
 
 service @FB_SERVICE_NAME@
 {
-       disable = no
+       disable         = yes
        flags           = REUSE
+       protocol        = tcp
        socket_type     = stream
        wait            = no
-       user            = root
+       user            = firebird
 # These lines cause problems with Windows XP SP2 clients
 # using default firewall configuration (SF#1065511)
 #      log_on_success  += USERID
-- 
1.8.4.5

++++++ do-not-use-DatabaseAccess-Full-in-default-config.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:26:31 +0200
Subject: do not use DatabaseAccess Full in default config

In default firebird.conf, do not use "DatabaseAccess Full" as it
is not very secure setting.
---
 builds/install/misc/firebird.conf.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/builds/install/misc/firebird.conf.in 
b/builds/install/misc/firebird.conf.in
index 9651eae..d651030 100644
--- a/builds/install/misc/firebird.conf.in
+++ b/builds/install/misc/firebird.conf.in
@@ -92,6 +92,7 @@
 # Type: string (special format)
 #
 #DatabaseAccess = Full
+DatabaseAccess = Restrict /srv/firebird
 
 
 # ----------------------------
-- 
1.8.4.5

++++++ fbguard-allow-creating-a-guard-pidfile.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:18:30 +0200
Subject: fbguard: allow creating a guard pidfile

To cooperate with killproc better, add option -gpidfile to create
a pidfile with fbguard PID.
---
 src/utilities/guard/guard.cpp | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/utilities/guard/guard.cpp b/src/utilities/guard/guard.cpp
index beeef10..4052f94 100644
--- a/src/utilities/guard/guard.cpp
+++ b/src/utilities/guard/guard.cpp
@@ -97,6 +97,7 @@ int CLIB_ROUTINE main( int argc, char **argv)
        bool daemon = false;
        const TEXT* prog_name = argv[0];
        const TEXT* pidfilename = 0;
+       const TEXT* gpidfilename = 0;
        int guard_exit_code = 0;
 
        const TEXT* const* const end = argc + argv;
@@ -122,9 +123,13 @@ int CLIB_ROUTINE main( int argc, char **argv)
                        case 'P':
                                pidfilename = *argv++;
                                break;
+                       case 'G':
+                               gpidfilename = *argv++;
+                               break;
                        default:
                                fprintf(stderr,
-                                               "Usage: %s [-signore | -onetime 
| -forever (default)] [-daemon] [-pidfile filename]\n",
+                                               "Usage: %s [-signore | -onetime 
| -forever (default)] [-daemon]\n"
+                                               "        [-pidfile filename] 
[-gpidfile filename]\n",
                                                prog_name);
                                exit(-1);
                                break;
@@ -232,6 +237,22 @@ int CLIB_ROUTINE main( int argc, char **argv)
                        }
                }
 
+               if (gpidfilename)
+               {
+                       FILE *gpf = fopen(gpidfilename, "w");
+                       if (gpf)
+                       {
+                               unsigned guard_pid = getpid();
+                               fprintf(gpf, "%d", guard_pid);
+                               fclose(gpf);
+                       }
+                       else
+                       {
+                               gds__log("%s: guardian could not open %s for 
writing, error %d\n",
+                                                prog_name, gpidfilename, 
errno);
+                       }
+               }
+
                // wait for child to die, and evaluate exit status
                bool shutdown_child = true;
                if (!shutting_down)
@@ -302,6 +323,9 @@ int CLIB_ROUTINE main( int argc, char **argv)
        if (pidfilename) {
                remove(pidfilename);
        }
+       if (gpidfilename) {
+               remove(gpidfilename);
+       }
        UTIL_ex_unlock(fd_guard);
        exit(guard_exit_code);
 } // main
-- 
1.8.4.5

++++++ isql-fix-buffer-overflow-when-set-width-sets-bigger-.patch ++++++
From: mkubecek <mkubecek@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859>
Date: Tue, 29 May 2012 20:19:58 +0000
Subject: isql: fix buffer overflow when 'set width' sets bigger
 width than column's natural size

git-svn-id: 
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/trunk@54566 
de594faa-8d1b-4a0c-9a6a-a7de5f8bf859
---
 src/isql/isql.epp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/isql/isql.epp b/src/isql/isql.epp
index 93828ca..99b3967 100644
--- a/src/isql/isql.epp
+++ b/src/isql/isql.epp
@@ -8639,6 +8639,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, 
SLONG buffer[], int pad[
                {
                        if (!global_Cols.find(var->aliasname, &pad[i]) && 
global_Col_default)
                                pad[i] = global_Col_default;
+                       disp_length = pad[i];
                }
 
                if ((type == SQL_TEXT || type == SQL_VARYING) && 
var->sqlsubtype == 4)
-- 
1.8.4.5

++++++ isql-fix-output-if-charset-is-different-from-locale.patch ++++++
From: mkubecek <mkubecek@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859>
Date: Tue, 29 May 2012 20:14:54 +0000
Subject: isql: fix output if charset is different from locale

git-svn-id: 
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/trunk@54565 
de594faa-8d1b-4a0c-9a6a-a7de5f8bf859
---
 src/isql/isql.epp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/isql/isql.epp b/src/isql/isql.epp
index 31c6d6b..93828ca 100644
--- a/src/isql/isql.epp
+++ b/src/isql/isql.epp
@@ -306,7 +306,18 @@ namespace IcuUtil
                        if (len > width)
                                len = width;
 
-                       sprintf(buffer, (right ? "%*.*s" : "%-*.*s"), width, 
len, str);
+                       if (right) {
+                               memcpy(buffer + width - len, str, len);
+                               if (width > len)
+                                       memset(buffer, ' ', width - len);
+                       }
+                       else
+                       {
+                               memcpy(buffer, str, len);
+                               if (width > len)
+                                       memset(buffer + len, ' ', width - len);
+                       }
+                       buffer[width] = '\0';
                        return;
                }
 
-- 
1.8.4.5

++++++ use-killproc-in-stop-branch-of-SuSE-init-script.patch ++++++
From: Michal Kubecek <mkube...@suse.cz>
Date: Sun, 3 Jun 2012 15:21:44 +0200
Subject: use killproc in stop branch of SuSE init script

In "stop" branch of SuSE init script, use killproc and fbguard
pidfile.
---
 .../arch-specific/linux/misc/firebird.init.d.suse.in  | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/builds/install/arch-specific/linux/misc/firebird.init.d.suse.in 
b/builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
index 1d18309..45611a9 100644
--- a/builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
+++ b/builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
@@ -43,6 +43,7 @@ test "$START_FIREBIRD" = yes || exit 0
 
 FIREBIRD=@FB_CONFDIR@
 FBRunUser=firebird
+FBRunGroup=firebird
 INSTANCE=default
 
 makeFbDir() {
@@ -55,14 +56,15 @@ makeFbDir() {
                        chmod $mode $mDir
                fi
        fi
-       chown $FBRunUser:$FBRunUser $mDir
+       chown $FBRunUser:$FBRunGroup $mDir
 }
-runDir=/var/run/firebird
-makeFbDir $runDir
+runDir=@FB_GUARDDIR@
+makeFbDir $runDir 0755
 lockDir=/tmp/firebird
 makeFbDir $lockDir 0770
 
 pidfile="$runDir/$INSTANCE.pid"
+gpidfile="$runDir/${INSTANCE}-guard.pid"
 
 export FIREBIRD
 
@@ -116,7 +118,8 @@ case "$1" in
 
        # NOTE: startproc return 0, even if service is
        # already running to match LSB spec.
-       startproc -u $FBRunUser $FBSBIN/fbguard -pidfile $pidfile -forever
+       startproc -u $FBRunUser $FBSBIN/fbguard -forever \
+               -pidfile $pidfile -gpidfile $gpidfile
 
        # Remember status and be verbose
        rc_status -v
@@ -126,13 +129,7 @@ case "$1" in
        ## Stop daemon with killproc(8) and if this fails
        ## set echo the echo return value.
 
-       ## I had to use generic approach here - I can't test on suse. AP.
-       if [ -f $pidfile ]
-       then
-               kill `cat $pidfile`
-               sleep 1
-       fi
-               
+       killproc -p $gpidfile ${FBSBIN}/fbguard
 
        # Remember status and be verbose
        rc_status -v
-- 
1.8.4.5


Reply via email to