diff --git a/README.Fedora b/README.Fedora new file mode 100644 index 0000000..8be2e33 --- /dev/null +++ b/README.Fedora @@ -0,0 +1,36 @@ +Differences between upstream and the Fedora package +=================================================== + +* All files are installed according to the FHS. Relatively complete + environment as provided by upstream may be found in %{fbroot} + +* Firebird utilities gbak,gsec,gfix,nbackup and gstat have a symlink in /usr/bin + In /usr/bin you have also fbsql symlinked to Firebird isql. + We can't name it isql to avoid conflict with isql from UNIX-ODBC + +* According to Fedora packaging rules, for SuperServer, firebird service is not started + automatically. You need to start it, as root : + service firebird start. + If you wanted to have Firebird started at each boot, as root : + chkconfig --level 345 firebird on + +* Fedora packages do not use, nor contain the pre-supplied sources for + libicu. Fedora packages are used instead. + +* POSSIBLE INCOMPATIBILITY + In incides on text-based columns (CHRA/VARCHAR), Firebird uses ICU to get + binary-comparable sequences (collations). These collations may be different + in different ICU versions. + + In Firebird 2.1 upstream always uses the bundled ICU library. Firebird packages + use the Firebird-packaged libicu*. Unfortunately, this may lead to + incompatibilities in the binary index representation (on disk) between + databases created by Fedora-packaged Firebird, and upstream. + + This can also lead to incompatibilities when the Firebird packages are + re-built using different version of the system-wide ICU library + + One way to fix this is to backup and restore all databases created with ICU + version different from the one currently installed on the system. Another is + to re-generate all indices that contain a text-based columns. + diff --git a/firebird.spec b/firebird.spec index 659a1fb..d6bd7d6 100644 --- a/firebird.spec +++ b/firebird.spec @@ -6,7 +6,7 @@ Summary: SQL relational database management system Name: firebird Version: 2.1.2.18118.0 -Release: 6%{?dist} +Release: 7%{?dist} Group: Applications/Databases License: Interbase @@ -17,10 +17,12 @@ Source0: http://downloads.sourceforge.net/firebird/%{pkgname}.tar.bz2 Source1: firebird-profile.sh Source2: firebird-profile.csh Source3: firebird-logrotate +Source4: README.Fedora Patch0: firebird-mcpu-to-mtune.patch Patch1: firebird-2.1.2-doc.patch Patch2: firebird-fix-initscript.patch +Patch3: firebird_lock-file-location.patch BuildRequires: autoconf @@ -31,7 +33,7 @@ BuildRequires: ncurses-devel BuildRequires: libtermcap-devel BuildRequires: libicu-devel -Requires: %{name}-arch = %{version} +Requires: %{name}-arch = %{version}-%{release} Requires: grep Requires: sed Requires(post): /sbin/ldconfig @@ -40,7 +42,6 @@ Requires(postun): /usr/sbin/userdel Requires(postun): /usr/sbin/groupdel Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd -Requires: %{name}-filesystem Requires: %{name}-libfbclient Requires: logrotate @@ -65,7 +66,6 @@ This is the Firebird SQL Database root file system. %package devel Summary: Development Libraries for Firebird SQL RDBMS Group: Applications/Databases -Requires: %{name}-filesystem Requires: %{name}-libfbclient = %{version}-%{release} Requires: %{name}-libfbembed = %{version}-%{release} @@ -76,13 +76,11 @@ Development libraries for firebird. %package classic Summary: Classic (xinetd) server for Firebird SQL RDBMS Group: Applications/Databases -Provides: %{name}-arch = %{version} +Provides: %{name}-arch = %{version}-%{release} Requires: xinetd -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} Conflicts: %{name}-superserver -Requires: %{name}-libfbembed -Requires: %{name}-libfbclient -Requires: %{name}-filesystem +Requires: %{name}-libfbembed = %{version}-%{release} %description classic @@ -93,11 +91,9 @@ client-embedded package. %package superserver Summary: Superserver (single process) server for Firebird SQL RDBMS Group: Applications/Databases -Provides: %{name}-arch = %{version} -Requires: %{name} = %{version} +Provides: %{name}-arch = %{version}-%{release} +Requires: %{name} = %{version}-%{release} Conflicts: %{name}-classic -Requires: %{name}-libfbclient -Requires: %{name}-filesystem %description superserver @@ -109,7 +105,7 @@ Summary: Multi-threaded, non-local client libraries for Firebird SQL RDBMS Group: System Environment/Libraries Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig -Requires: %{name}-filesystem +Requires: %{name}-filesystem %description libfbclient Multi-threaded, non-local client libraries for Firebird SQL Database @@ -120,7 +116,7 @@ Summary: Multi-process, local client libraries for Firebird SQL RDBMS Group: System Environment/Libraries Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig -Requires: %{name}-filesystem +Requires: %{name}-filesystem %description libfbembed Multi-process, local client libraries for Firebird SQL RDBMS @@ -134,6 +130,7 @@ iconv -f ISO-8859-1 -t utf-8 -c ./doc/README.intl -o ./doc/README.intl %patch2 %patch1 %patch0 +%patch3 %build @@ -206,6 +203,7 @@ mkdir -p %{buildroot}%{fbroot}/bin-classic mkdir -p %{buildroot}%{fbroot}/UDF-classic mkdir -p %{buildroot}%{fbroot}/bin-superserver mkdir -p %{buildroot}%{fbroot}/UDF-superserver +mkdir -p %{buildroot}%{_bindir} cp %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/examples/empbuild/employee.fdb %{buildroot}%{_localstatedir}/lib/%{name}/data/employee.fdb cp %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/help/help.fdb %{buildroot}%{fbroot}/help/help.fdb @@ -270,6 +268,15 @@ cp %{_builddir}/%{pkgname}/gen/buildroot-classic%{fbroot}/misc/%{name}.xinetd % cp %{_builddir}/%{pkgname}/gen/buildroot-superserver%{fbroot}/misc/%{name}.init.d.mandrake %{buildroot}%{_initrddir}/%{name} sed "s@chkconfig: 345@chkconfig: -@" -i %{buildroot}%{_initrddir}/%{name} +sed "s@%%{fbroot}@%{fbroot}@g" %{SOURCE4} > %{_builddir}/%{pkgname}/doc/README.Fedora +ln -s %{_var}/run/%{name} .%{fbroot}/run +ln -s %{fbroot}/bin/isql .%{_bindir}/fbsql +ln -s %{fbroot}/bin/gbak .%{_bindir}/gbak +ln -s %{fbroot}/bin/gfix .%{_bindir}/gfix +ln -s %{fbroot}/bin/gsec .%{_bindir}/gsec +ln -s %{fbroot}/bin/nbackup .%{_bindir}/nbackup +ln -s %{fbroot}/bin/gstat .%{_bindir}/gstat + %clean rm -Rf %{buildroot} @@ -290,13 +297,13 @@ if test ! -e %{fbroot}/UDF; then ln -s %{fbroot}/UDF{-classic,} fi if /sbin/service xinetd status >& /dev/null; then - /sbin/service xinetd reload + /sbin/service xinetd reload &>/dev/null || : fi %preun classic if [ $1 -eq 0 ]; then if /sbin/service xinetd status >& /dev/null; then - /sbin/service xinetd reload + /sbin/service xinetd reload &>/dev/null || : fi if [ "$(readlink %{fbroot}/bin 2> /dev/null)" = "%{fbroot}/bin-classic" ]; then rm -f %{fbroot}/bin @@ -359,7 +366,9 @@ fi %post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%postun +/sbin/ldconfig +rm -Rf %{_var}/run/%{name} %files %defattr(0644,root,root,0755) @@ -374,14 +383,14 @@ fi %dir %{_sysconfdir}/%{name} %config(noreplace) %attr (0660,%{name},%{name}) %{_sysconfdir}/%{name}/security2.fdb %{fbroot}/security2.fdb -%config(noreplace) %{_sysconfdir}/%{name}/fbintl.conf -%config(noreplace) %{_sysconfdir}/%{name}/aliases.conf -%config(noreplace) %{_sysconfdir}/%{name}/firebird.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/fbintl.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/aliases.conf +%config(noreplace) %attr (0664,%{name},%{name}) %{_sysconfdir}/%{name}/firebird.conf %{fbroot}/aliases.conf %{fbroot}/firebird.conf %{fbroot}/intl/fbintl.conf %{fbroot}/firebird.log -%attr(0660,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log +%attr(0664,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name} %{fbroot}/*.msg %{fbroot}/help @@ -392,11 +401,22 @@ fi %config(noreplace) %{_sysconfdir}/profile.d/firebird.sh %defattr(0755,root,root,0750) %{fbroot}/intl/fbintl +%defattr(0755,root,root,0755) +%{_bindir}/fbsql +%{_bindir}/gbak +%{_bindir}/gsec +%{_bindir}/gfix +%{_bindir}/nbackup +%{_bindir}/gstat +%dir %attr(0755,%{name},%{name}) %{_var}/run/%{name} +%defattr(0755,root,root,0755) +%{fbroot}/run %files filesystem -%defattr(0755,%{name},%{name},0755) -%dir %{fbroot} +%defattr(0644,root,root,0755) +%doc doc/README.Fedora %defattr(0755,root,root,0755) +%dir %{fbroot} %dir %{fbroot}/lib %files doc @@ -454,7 +474,6 @@ fi %doc doc/license/IDPL.txt %doc doc/license/README.license.usage.txt %defattr(0644,root,root,0755) -%dir %attr(0755,%{name},%{name}) %{_var}/run/%{name} %dir %{fbroot}/bin-superserver %dir %{fbroot}/UDF-superserver %defattr(0755,root,root,0755) @@ -466,6 +485,12 @@ fi %changelog +* Tue May 12 2009 Philippe Makowski 2.1.2.18118.0-7 +- patch to change lock files location and avoid %%{fbroot} owned by firebird user (rh #500219) +- add README.fedora +- add symlinks in /usr/bin +- change xinetd reload (rh #500219) + * Sat May 02 2009 Philippe Makowski 2.1.2.18118.0-6 - add filesystem-subpackage - remove common subpackage and use the main instead diff --git a/firebird_lock-file-location.patch b/firebird_lock-file-location.patch new file mode 100644 index 0000000..8205bb3 --- /dev/null +++ b/firebird_lock-file-location.patch @@ -0,0 +1,49 @@ +# Author: Damyan Ivanov +# Description: use proper Fedora location for lock files, +# control sockets and such +--- src/jrd/file_params.h ++++ src/jrd/file_params.h +@@ -38,11 +38,11 @@ const int EVENT_VERSION = 2; + const int EVENT_SEMAPHORES = 1; + + #ifdef NOHOSTNAME +-static const char* EVENT_FILE = "isc_event1"; +-static const char* LOCK_FILE = "isc_lock1.gbl"; +-static const char* INIT_FILE = "isc_init1"; +-static const char* GUARD_FILE = "isc_guard1"; +-static const char* MONITOR_FILE = "isc_monitor1"; ++static const char* EVENT_FILE = "run/isc_event1"; ++static const char* LOCK_FILE = "run/isc_lock1.gbl"; ++static const char* INIT_FILE = "run/isc_init1"; ++static const char* GUARD_FILE = "run/isc_guard1"; ++static const char* MONITOR_FILE = "run/isc_monitor1"; + #elif defined(VMS) + static const char* EVENT_FILE = "[000000]isc_event1.%s"; + static const char* LOCK_FILE = "[000000]isc_lock1.%s"; +@@ -56,11 +56,11 @@ static const char* INIT_FILE = "%s.int"; + static const char* GUARD_FILE = "%s.grd"; + static const char* MONITOR_FILE = "%s.mon"; + #else +-static const char* EVENT_FILE = "isc_event1.%s"; +-static const char* LOCK_FILE = "isc_lock1.%s"; +-static const char* INIT_FILE = "isc_init1.%s"; +-static const char* GUARD_FILE = "isc_guard1.%s"; +-static const char* MONITOR_FILE = "isc_monitor1.%s"; ++static const char* EVENT_FILE = "run/isc_event1.%s"; ++static const char* LOCK_FILE = "run/isc_lock1.%s"; ++static const char* INIT_FILE = "run/isc_init1.%s"; ++static const char* GUARD_FILE = "run/isc_guard1.%s"; ++static const char* MONITOR_FILE = "run/isc_monitor1.%s"; + #endif + + #ifdef sun +--- configure.in ++++ configure.in +@@ -940,6 +940,7 @@ mkdir -p gen/firebird/examples/udf + mkdir -p gen/firebird/lib + mkdir -p gen/firebird/misc + mkdir -p gen/firebird/help ++mkdir -p gen/firebird/run + + dnl #### TEMP ######### directories for .o and .d + dnl # by module name