From cc6929bed438a23b9ed4b4c48b23102484cc35ee Mon Sep 17 00:00:00 2001 From: Philippe Makowski Date: Wed, 2 Mar 2016 12:45:00 +0100 Subject: First released version --- README.Fedora | 21 +++--- firebird.spec | 219 +++++++++++++++++++++++++++++++++++++++------------------- 2 files changed, 156 insertions(+), 84 deletions(-) diff --git a/README.Fedora b/README.Fedora index 3bf59f0..9f869cb 100644 --- a/README.Fedora +++ b/README.Fedora @@ -1,25 +1,20 @@ Differences between upstream and the Fedora package =================================================== -* Firebird utilities gbak,gsec,gfix,and nbackup have a symlink in /usr/bin - In /usr/bin you have also isql-fb symlinked to Firebird isql. - We can't name it isql to avoid conflict with isql from UNIX-ODBC - In /usr/bin you have also gstat-fb symlinked to Firebird gstat. - We can't name it gstat to avoid conflict with gstat from Ganglia-gmond +* In /usr/bin you have isql-fb for Firebird isql. + We can't name it isql to avoid conflict with isql from UNIX-ODBC. + In /usr/bin you have also gstat-fb for Firebird gstat. + We can't name it gstat to avoid conflict with gstat from Ganglia-gmond. + +* By default, Firebird is set as superserver mode. + Please read the Firebird doc if you want to change the mode. + To help you, you have systemd units in /usr/share/firebird/misc. * According to Fedora packaging rules, firebird service is not started automatically. You need to start it, as root : for SuperServer : systemctl start firebird-superserver.service - for SuperClassic : - systemctl start firebird-superclassic.service - for Classic : - systemctl start firebird-classic.socket If you want to have firebird started at each boot, as root : for SuperServer : systemctl enable firebird-superserver.service - for SuperClassic : - systemctl enable firebird-superclassic.service - for Classic : - systemctl enable firebird-classic.socket diff --git a/firebird.spec b/firebird.spec index cf3a08a..5494ee7 100644 --- a/firebird.spec +++ b/firebird.spec @@ -1,63 +1,80 @@ -%global upversion 3.0.0.32366 -%global pkgversion Firebird-%{upversion}-ReleaseCandidate2 +%global upversion 3.0.0.32366 +%global pkgversion Firebird-%{upversion}-ReleaseCandidate2 -%global major 3.0 -%global _hardened_build 1 +%global major 3.0 +%global _hardened_build 1 -Summary: SQL relational database management system -Name: firebird -Version: %{upversion} +Name: firebird +Version: %{upversion} Release: 1%{?dist} -Group: Applications/Databases -License: Interbase -URL: http://www.firebirdsql.org/ -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot +Summary: SQL relational database management system +Group: Applications/Databases +License: Interbase +URL: http://www.firebirdsql.org/ +BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Source0: %{pkgversion}.tar.bz2 -Source1: firebird-logrotate -Source2: README.Fedora -Source3: firebird.conf -Source4: fb_config +Source0: %{pkgversion}.tar.bz2 +Source1: firebird-logrotate +Source2: README.Fedora +Source3: firebird.conf +Source4: fb_config # from OpenSuse -Patch101: allow-creating-buildRoot-as-non-root-user.patch -Patch102: add-pkgconfig-files.patch +Patch101: allow-creating-buildRoot-as-non-root-user.patch +Patch102: add-pkgconfig-files.patch # from Debian to be sent upstream -Patch201: obsolete-syslogd.target.patch -Patch202: honour-buildflags.patch -Patch203: no-copy-from-icu.patch -Patch204: parallel-build.patch -Patch205: cloop-honour-build-flags.patch +Patch201: obsolete-syslogd.target.patch +Patch202: honour-buildflags.patch +Patch203: no-copy-from-icu.patch +Patch204: parallel-build.patch +Patch205: cloop-honour-build-flags.patch # from upstream -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtommath-devel -BuildRequires: libtool -BuildRequires: ncurses-devel -BuildRequires: libtermcap-devel -BuildRequires: libicu-devel -BuildRequires: libedit-devel -BuildRequires: gcc-c++ -BuildRequires: libstdc++-static -BuildRequires: systemd-units -BuildRequires: chrpath -BuildRequires: zlib-devel -BuildRequires: procmail - -Requires(post): /sbin/ldconfig +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtommath-devel +BuildRequires: libtool +BuildRequires: ncurses-devel +BuildRequires: libtermcap-devel +BuildRequires: libicu-devel +BuildRequires: libedit-devel +BuildRequires: gcc-c++ +BuildRequires: libstdc++-static +BuildRequires: systemd-units +BuildRequires: chrpath +BuildRequires: zlib-devel +BuildRequires: procmail + +Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Requires(postun): /usr/sbin/userdel Requires(postun): /usr/sbin/groupdel -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/sbin/useradd -Requires: libfbclient2 -Requires: logrotate -Requires: libib-util -Requires: %{name}-utils = %{version} +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires: logrotate +Requires: libfbclient2 = %{version}-%{release} +Requires: libib-util = %{version}-%{release} +Requires: %{name}-utils = %{version}-%{release} + +Obsoletes: firebird-arch < 3.0 +Obsoletes: firebird-filesystem < 3.0 +Obsoletes: firebird-classic-common < 3.0 +Obsoletes: firebird-classic < 3.0 +Obsoletes: firebird-superclassic < 3.0 +Obsoletes: firebird-superserver < 3.0 +Conflicts: firebird-arch < 3.0 +Conflicts: firebird-filesystem < 3.0 +Conflicts: firebird-classic-common < 3.0 +Conflicts: firebird-classic < 3.0 +Conflicts: firebird-superclassic < 3.0 +Conflicts: firebird-superserver < 3.0 + %description Firebird is a relational database offering many ANSI SQL standard @@ -66,10 +83,11 @@ 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. + %package devel -Group: Development/Libraries/C and C++ -Requires: %{name} = %{version} -Summary: UDF support library for Firebird SQL server +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version}-%{release} +Summary: UDF support library for Firebird SQL server %description devel This package is needed for development of client applications and user @@ -81,9 +99,10 @@ 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. + %package -n libib-util -Group: System Environment/Libraries -Summary: Firebird SQL UDF support library +Group: System Environment/Libraries +Summary: Firebird SQL UDF support library %description -n libib-util libib_util contains utility functions used by @@ -95,9 +114,16 @@ 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. + %package -n libfbclient2 -Group: System Environment/Libraries -Summary: Firebird SQL server client library +Group: System Environment/Libraries +Summary: Firebird SQL server client library +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +Obsoletes: firebird-libfbclient < 3.0 +Obsoletes: firebird-libfbembed < 3.0 +Conflicts: firebird-libfbclient < 3.0 +Conflicts: firebird-libfbembed < 3.0 %description -n libfbclient2 Shared client library for Firebird SQL server. @@ -108,11 +134,12 @@ 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. + %package -n libfbclient2-devel -Group: System Environment/Libraries -Summary: Development libraries and headers for Firebird SQL server -Requires: %{name}-devel -Requires: libfbclient2 = %{version} +Group: System Environment/Libraries +Summary: Development libraries and headers for Firebird SQL server +Requires: %{name}-devel = %{version}-%{release} +Requires: libfbclient2 = %{version}-%{release} %description -n libfbclient2-devel Development files for Firebird SQL server client library. @@ -123,11 +150,12 @@ 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. + %package doc -Group: Applications/Databases -Requires: %{name} = %{version} -Summary: Documentation for Firebird SQL server -BuildArch: noarch +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} +Summary: Documentation for Firebird SQL server +BuildArch: noarch %description doc Documentation for Firebird SQL server. @@ -138,10 +166,11 @@ 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. + %package utils -Group: Applications/Databases -Requires: libfbclient2 = %{version} -Summary: Firebird SQL user utilities +Group: Applications/Databases +Requires: libfbclient2 = %{version}-%{release} +Summary: Firebird SQL user utilities %description utils Firebird SQL user utilities. @@ -152,11 +181,12 @@ 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. + %package examples -Group: Applications/Databases -Requires: %{name}-doc = %{version} -Summary: Examples for Firebird SQL server -BuildArch: noarch +Group: Applications/Databases +Requires: %{name}-doc = %{version}-%{release} +Summary: Examples for Firebird SQL server +BuildArch: noarch %description examples Examples for Firebird SQL server. @@ -167,6 +197,7 @@ 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} %patch101 -p1 @@ -211,8 +242,7 @@ 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/ +rm -vf .%{_sbindir}/*.sh mv -v .%{_sbindir}/fb_config .%{_libdir}/ install -p -m 0755 %{SOURCE4} %{buildroot}%{_sbindir}/fb_config rm -vf .%{_includedir}/%{name}/perf.h @@ -226,6 +256,7 @@ 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}/ +install -p -m 0644 -D %{SOURCE1} .%{_docdir}/%{name}/README.Fedora mv -v .%{_bindir}/gstat .%{_bindir}/gstat-fb mv -v .%{_bindir}/isql .%{_bindir}/isql-fb @@ -237,15 +268,52 @@ sed "s@%{name}.log@%{_localstatedir}/log/%{name}/%{name}.log@g" %{SOURCE1} > .%{ mkdir -p .%{_sysconfdir}/tmpfiles.d cp %{SOURCE3} .%{_sysconfdir}/tmpfiles.d/ -ls -lR +mkdir -p .%{_unitdir} +cp .%{_datadir}/%{name}/misc/%{name}-superserver.service .%{_unitdir}/%{name}-superserver.service + %clean rm -Rf %{buildroot} +%post -n libfbclient2 -p /sbin/ldconfig + + +%postun -n libfbclient2 -p /sbin/ldconfig + + +%pre +# Create the firebird group if it doesn't exist +getent group %{name} || /usr/sbin/groupadd -r %{name} +getent passwd %{name} >/dev/null || /usr/sbin/useradd -d / -g %{name} -s /bin/nologin -r %{name} + +# Add gds_db to /etc/services if needed +FileName=/etc/services +newLine="gds_db 3050/tcp # Firebird SQL Database Remote Protocol" +oldLine=`grep "^gds_db" $FileName` +if [ -z "$oldLine" ]; then + echo $newLine >> $FileName +fi + + +%post +/sbin/ldconfig +/bin/systemd-tmpfiles --create %{_sysconfdir}/tmpfiles.d/firebird.conf +%systemd_post firebird-superserver.service + + +%postun +/sbin/ldconfig +%systemd_postun_with_restart firebird-superserver.service + + +%preun +%systemd_preun firebird-superserver.service + %files %{_docdir}/%{name}/IDPLicense.txt %{_docdir}/%{name}/IPLicense.txt +%{_docdir}/%{name}/README.Fedora %{_bindir}/fbtracemgr %{_sbindir}/firebird %{_sbindir}/fbguard @@ -260,7 +328,6 @@ rm -Rf %{buildroot} %{_libdir}/%{name}/intl %{_libdir}/%{name}/plugins %{_libdir}/%{name}/udf -%{_libdir}/%{name}/utils %{_datadir}/%{name}/misc %dir %{_localstatedir}/lib/%{name} @@ -278,6 +345,9 @@ rm -Rf %{buildroot} %config(noreplace) %attr(0664,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name} +%defattr(0755,root,root,0755) +%{_unitdir}/%{name}-superserver.service + %files devel %defattr(-,root,root) @@ -285,25 +355,30 @@ rm -Rf %{buildroot} %{_libdir}/fb_config %{_sbindir}/fb_config + %files -n libfbclient2 %defattr(-,root,root) %{_libdir}/libfbclient.so.* + %files -n libfbclient2-devel %defattr(-,root,root) %{_libdir}/libfbclient.so %{_libdir}/pkgconfig/fbclient.pc + %files -n libib-util %defattr(-,root,root) %{_libdir}/libib_util.so + %files doc %{_docdir}/%{name} %exclude %{_docdir}/%{name}/sample %exclude %{_docdir}/%{name}/IDPLicense.txt %exclude %{_docdir}/%{name}/IPLicense.txt + %files utils %defattr(-,root,root) %{_bindir}/gstat-fb @@ -317,10 +392,12 @@ rm -Rf %{buildroot} %{_bindir}/qli %{_bindir}/gsplit + %files examples %{_docdir}/%{name}/sample %attr(0600,firebird,firebird) %{_localstatedir}/lib/%{name}/data/employee.fdb + %changelog * Tue Mar 1 2016 Philippe Makowski - 3.0.0.32366-1 - first version for Epel7 -- cgit