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