X-Git-Url: http://git.pld-linux.org/?p=packages%2FFirebird.git;a=blobdiff_plain;f=Firebird.spec;h=08a4fd81ad2b66bdbb4b61ea800ff7ee6d9693df;hp=97d7c0fe7b15b7b4251855187ed3b8208eef0e7e;hb=acde953e99b08023c1167689e811b45cfe44407a;hpb=732b89f42c731dd99edeffef6d02df4bf3e6099d diff --git a/Firebird.spec b/Firebird.spec index 97d7c0f..08a4fd8 100644 --- a/Firebird.spec +++ b/Firebird.spec @@ -1,26 +1,28 @@ # TODO: +# - check running +# - 2.5 -> 3.0 migration? +# - more docs from http://www.firebirdsql.org/en/reference-manuals/ ? # - kill unaligned accesses (create_db,gpre_current,gbak_static,isql_static) on alpha # - check if it's fixed now (RISC_ALIGNMENT is defined) -# - create classic server/super server subpackages and drop bcond -# (see firebird2 on debian how to do it) +# - check classic subpackage pre/post scripts # - logrotate script -# -# Conditional build: -%bcond_with ss # Super Server (standalone daemon instead of inetd service) +# - create SYSDBA user with initial password before first firebird start +# eg.: +# su firebird +# echo "create user SYSDBA password 'masterkey';"|fb_isql -u SYSDBA /var/lib/firebird/security3.fdb # Summary: Firebird SQL Database Server and Client tools Summary(de.UTF-8): Firebird - relationalen Open-Source- Datenbankmanagementsystems Summary(pl.UTF-8): Firebird - serwer baz danych SQL oraz narzędzia klienckie Name: Firebird -# FirebirdCS/FirebirdSS (Classic Server/Super Server)? -Version: 2.5.0.26074 -Release: 7 +Version: 3.0.4.33054 +Release: 2 License: Interbase Public License 1.0, Initial Developer's Public License 1.0 Group: Applications/Databases -Source0: http://downloads.sourceforge.net/firebird/%{name}-%{version}-0.tar.bz2 -# Source0-md5: 780f162ee71f087fc277adf09f966529 -Source1: http://www.firebirdsql.org/pdfmanual/%{name}-2.5-QuickStart.pdf -# Source1-md5: a7776f1eae45ba0b2543c203cd5271ae +Source0: https://github.com/FirebirdSQL/firebird/releases/download/R3_0_4/%{name}-%{version}-0.tar.bz2 +# Source0-md5: 43569120299b2db7587dcfbddab1e25a +Source1: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/%{name}-3-QuickStart.pdf +# Source1-md5: 8e029d449e9cb3e1da8213ac6c11ad02 # distfiles refuses this, would require some audit to allow '('/')' chars #Source2: http://www.firebirdsql.org/pdfmanual/Using-Firebird_(wip).pdf ## Source2-md5: 9eb90583c200bdd7292a80ecc1df1178 @@ -41,44 +43,54 @@ Source9: http://www.firebirdsql.org/doc/contrib/fb_2_1_errorcodes.pdf Source100: firebird.init Source101: firebird.sysconfig Source102: firebird.inetd +Source103: firebird.tmpfiles +Source104: firebird.service +Source105: firebird-classic.service +Source106: firebird-classic.socket +Source107: server_mode-ss.conf +Source108: server_mode-classic.conf +Source109: fb_config Patch0: %{name}-chmod.patch Patch1: %{name}-editline.patch Patch2: %{name}-va.patch -Patch3: %{name}-morearchs.patch -Patch4: %{name}-FHS.patch -Patch5: %{name}-64bit.patch -Patch6: %{name}-gcc-icu.patch -Patch7: %{name}-btyacc-segv.patch -Patch8: %{name}-opt.patch -Patch9: %{name}-rpath.patch -Patch10: %{name}-noroot.patch +Patch3: %{name}-FHS.patch +Patch4: %{name}-opt.patch +Patch5: %{name}-gcc-icu.patch +Patch6: %{name}-libpath.patch +Patch7: add-pkgconfig-files.patch +Patch8: Provide-sized-global-delete-operators-when-compiled.patch +Patch9: parallel-build.patch +Patch10: no-copy-from-icu.patch +Patch11: config.patch +Patch12: chown.patch +Patch13: cloop-honour-build-flags.patch URL: http://www.firebirdsql.org/ -BuildRequires: autoconf >= 2.56 +BuildRequires: autoconf >= 2.67 BuildRequires: automake BuildRequires: bison BuildRequires: libatomic_ops BuildRequires: libedit-devel BuildRequires: libicu-devel BuildRequires: libstdc++-devel -BuildRequires: libtool -BuildRequires: psmisc >= 22.5-2 +BuildRequires: libtommath-devel +BuildRequires: libtool >= 2:2 +# for lockfile +BuildRequires: procmail BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: sed >= 4.0 +BuildRequires: zlib-devel Requires: %{name}-dirs = %{version}-%{release} Requires: %{name}-lib = %{version}-%{release} -%if %{with ss} -Requires(post,preun): /sbin/chkconfig -Requires: rc-scripts -%endif # official ports are x86, x86_64, ppc, sparc, arm, mips/mipsel, ia64 # alpha is added in morearchs patch # see morearchs patch if you want more -ExclusiveArch: %{ix86} %{x8664} arm ia64 mips mipsel ppc sparc sparcv9 alpha +ExclusiveArch: %{ix86} %{x8664} x32 arm ia64 mips mipsel ppc sparc sparcv9 alpha BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define ibdir %{_libdir}/interbase %define specflags -fno-strict-aliasing %define debugcflags -O1 -g -Wall -fno-strict-aliasing +%define Werror_cflags '' %description Firebird is a powerful, high-performance relational database designed @@ -131,6 +143,7 @@ Group: Development/Libraries Requires: %{name}-dirs = %{version}-%{release} Requires: %{name}-lib = %{version}-%{release} Requires: libstdc++-devel +Obsoletes: Firebird-static %description devel Header files for Firebird library. @@ -138,18 +151,6 @@ Header files for Firebird library. %description devel -l pl.UTF-8 Pliki nagłówkowe biblioteki Firebird. -%package static -Summary: Static Firebird library -Summary(pl.UTF-8): Statyczna biblioteka Firebird -Group: Development/Libraries -Requires: %{name}-devel = %{version}-%{release} - -%description static -Static Firebird library (libgds). - -%description static -l pl.UTF-8 -Statyczna biblioteka Firebird (libgds). - %package doc Summary: Extensive InterBase and Firebird documentation Summary(pl.UTF-8): Obszerna dokumentacja do baz InterBase i Firebird @@ -161,6 +162,32 @@ Extensive InterBase and Firebird documentation. %description doc -l pl.UTF-8 Obszerna dokumentacja do baz InterBase i Firebird. +%package ss +Summary: Firebird SuperServer init scripts +Summary(pl.UTF-8): Skrypty startowe Firebirda jako SuperServera +Group: Daemons +Requires: %{name} = %{version}-%{release} +Requires(post,preun): /sbin/chkconfig +Requires: rc-scripts + +%description ss +Firebird SuperServer init scripts. + +%description ss -l pl.UTF-8 +Skrypty startowe Firebirda jako SuperServera. + +%package classic +Summary: Firebird Classic init scripts +Summary(pl.UTF-8): Skrypty startowe Firebirda w wersji Classic +Group: Daemons +Requires: %{name} = %{version}-%{release} + +%description classic +Firebird Classic (inetd) init scripts. + +%description classic -l pl.UTF-8 +Skrypty startowe Firebirda w wersji Classic (inetd). + %prep %setup -q -n %{name}-%{version}-0 %patch0 -p1 @@ -168,12 +195,15 @@ Obszerna dokumentacja do baz InterBase i Firebird. %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch6 -p0 +%patch5 -p0 +%patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 mkdir docs cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} docs @@ -188,63 +218,73 @@ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8} %{__autoconf} %configure \ - --with-editline \ + CFLAGS="%{rpmcflags} -fno-delete-null-pointer-checks" \ + --prefix=%{ibdir} \ + --with-system-editline \ --with-fbconf=%{_sysconfdir}/firebird \ + --with-fbinclude=%{_includedir} \ --with-fblib=%{_libdir} \ --with-fblog=/var/log \ --with-fbsecure-db=/var/lib/firebird \ + --with-fbglock=/var/lib/firebird \ --with-gnu-ld \ --with-gpre-pascal \ --with-system-editline \ - --with-system-icu \ - %{?with_ss:--enable-superserver} \ - --prefix=%{ibdir} \ - %{?debug:--enable-debug} + %{?debug:--enable-debug} \ + --disable-rpath \ + --disable-binreloc %{__make} -j1 -# fb_lock_mgr is started during build - try to stop it (if /proc is mounted...) -fuser -k gen/firebird/bin/fb_lock_mgr 2>/dev/null || : - %install rm -rf $RPM_BUILD_ROOT %{__make} -C src -f ../gen/Makefile.install buildImageDir -install -d $RPM_BUILD_ROOT%{_sysconfdir}/{firebird,rc.d/init.d,sysconfig/rc-inetd} +install -d $RPM_BUILD_ROOT%{_sysconfdir}/{firebird{,/conf.d},rc.d/init.d,sysconfig/rc-inetd} install -d $RPM_BUILD_ROOT{%{_bindir},%{ibdir},%{_libdir},%{_includedir}} \ install -d $RPM_BUILD_ROOT/var/{log,lib/firebird} \ $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} - -install gen/firebird/lib/libfb*.a $RPM_BUILD_ROOT%{_libdir} +install -d $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d +install -d $RPM_BUILD_ROOT%{systemdunitdir} +cp -p %{SOURCE103} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/firebird.conf touch $RPM_BUILD_ROOT/var/log/firebird.log cd gen/buildroot -install var/lib/firebird/security2.fdb $RPM_BUILD_ROOT/var/lib/firebird -install etc/firebird/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/firebird -cp -df usr/%{_lib}/*.so* $RPM_BUILD_ROOT%{_libdir} +cp -p var/lib/firebird/security3.fdb $RPM_BUILD_ROOT/var/lib/firebird +cp -p etc/firebird/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/firebird +chmod 755 usr/include/firebird/impl +cp -pr usr/include/* $RPM_BUILD_ROOT%{_includedir} +cp -dp usr/%{_lib}/*.so* $RPM_BUILD_ROOT%{_libdir} cd .%{ibdir} -install include/* $RPM_BUILD_ROOT%{_includedir} -cp -af UDF bin help intl plugins firebird.msg de_DE.msg fr_FR.msg $RPM_BUILD_ROOT%{ibdir} -chmod 755 examples examples/{api,dyn,include,stat,udf} # allow further cleaning +cp -a UDF bin help intl plugins firebird.msg $RPM_BUILD_ROOT%{ibdir} +ln -s %{ibdir}/intl $RPM_BUILD_ROOT%{_sysconfdir}/firebird +ln -s %{ibdir}/{UDF,bin,plugins,firebird.msg} $RPM_BUILD_ROOT%{_sysconfdir}/firebird +chmod u+w -R examples # allow further cleaning cp -rf examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -# or libfbembed? ln -sf libfbclient.so.2 $RPM_BUILD_ROOT%{_libdir}/libgds.so.0 ln -sf libfbclient.so.2 $RPM_BUILD_ROOT%{_libdir}/libgds.so -ln -sf libfbstatic.a $RPM_BUILD_ROOT%{_libdir}/libgds.a - -for f in bin/{fb_lock_print,gbak,gdef,gfix,gpre,gsec,gsplit,gstat,nbackup}; do +for f in bin/{fb_lock_print,gbak,gfix,gpre,gsec,gsplit,gstat,nbackup}; do ln -sf %{ibdir}/$f $RPM_BUILD_ROOT%{_bindir}/${f#bin/} done +ln -sf %{ibdir}/bin/isql $RPM_BUILD_ROOT%{_bindir}/fb_isql + +rm -f $RPM_BUILD_ROOT%{ibdir}/bin/{FirebirdUninstall.sh,changeServerMode.sh} + +sed -e 's|/usr/lib|%{_libdir}|' %{SOURCE100} >$RPM_BUILD_ROOT/etc/rc.d/init.d/firebird +cp -p %{SOURCE101} $RPM_BUILD_ROOT/etc/sysconfig/firebird +sed -e 's|/usr/lib|%{_libdir}|' %{SOURCE104} >$RPM_BUILD_ROOT%{systemdunitdir}/firebird.service +install -d $RPM_BUILD_ROOT/var/run/firebird -%if %{with ss} -install %{SOURCE100} $RPM_BUILD_ROOT/etc/rc.d/init.d/firebird -install %{SOURCE101} $RPM_BUILD_ROOT/etc/sysconfig/firebird -%else -install %{SOURCE102} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/firebird -%endif +sed -e 's|/usr/lib|%{_libdir}|' %{SOURCE102} >$RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/firebird +sed -e 's|/usr/lib|%{_libdir}|' %{SOURCE105} >$RPM_BUILD_ROOT%{systemdunitdir}/firebird-classic@.service +cp -p %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/firebird-classic.socket + +cp -p %{SOURCE107} $RPM_BUILD_ROOT%{_sysconfdir}/firebird/conf.d/ +cp -p %{SOURCE108} $RPM_BUILD_ROOT%{_sysconfdir}/firebird/conf.d/ +install -p %{_sourcedir}/fb_config $RPM_BUILD_ROOT%{_bindir}/fb_config %clean rm -rf $RPM_BUILD_ROOT @@ -253,50 +293,62 @@ rm -rf $RPM_BUILD_ROOT %groupadd -g 145 firebird %useradd -u 145 -d %{ibdir} -s /bin/sh -g firebird -c "Firebird Server" firebird -%if %{with ss} -%post +%postun +if [ "$1" = "0" ]; then + %userremove firebird + %groupremove firebird +fi + +%post lib -p /sbin/ldconfig +%postun lib -p /sbin/ldconfig + +%post ss /sbin/chkconfig --add firebird %service firebird restart +%systemd_post firebird.service -%preun +%preun ss if [ "$1" = "0" ]; then %service firebird stop /sbin/chkconfig --del firebird fi -%endif +%systemd_preun firebird.service -%postun -if [ "$1" = "0" ]; then - %userremove firebird - %groupremove firebird -fi +%postun ss +%systemd_reload -%post lib -p /sbin/ldconfig -%postun lib -p /sbin/ldconfig +%post classic +%systemd_post firebird-classic@.service firebird-classic.socket + +%preun classic +%systemd_preun firebird-classic@.service firebird-classic.socket + +%postun classic +%systemd_reload %triggerpostun -- %{name} < 2.1.1.17910-2 -if [ -f %{ibdir}/aliases.conf.rpmsave ]; then - mv -f %{ibdir}/aliases.conf.rpmsave %{_sysconfdir}/firebird/aliases.conf -fi if [ -f %{ibdir}/firebird.conf.rpmsave ]; then mv -f %{ibdir}/firebird.conf.rpmsave %{_sysconfdir}/firebird/firebird.conf fi -if [ -f %{ibdir}/security2.fdb.rpmsave ]; then - mv -f %{ibdir}/security2.fdb.rpmsave /var/lib/firebird/security2.fdb -fi %files %defattr(644,root,root,755) %doc doc/{license,sql.extensions,Firebird_conf.txt,README.user*,WhatsNew,fb2-todo.txt} %dir %{_sysconfdir}/firebird -%attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/aliases.conf +%dir %{_sysconfdir}/firebird/conf.d +%attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/databases.conf %attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/fbtrace.conf %attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/firebird.conf +%attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/plugins.conf +%{_sysconfdir}/firebird/intl +%{_sysconfdir}/firebird/UDF +%{_sysconfdir}/firebird/bin +%{_sysconfdir}/firebird/firebird.msg +%{_sysconfdir}/firebird/plugins +%attr(755,root,root) %{_bindir}/fb_isql %attr(755,root,root) %{_bindir}/fb_lock_print %attr(755,root,root) %{_bindir}/gbak -%attr(755,root,root) %{_bindir}/gdef %attr(755,root,root) %{_bindir}/gfix -%attr(755,root,root) %{_bindir}/gpre %attr(755,root,root) %{_bindir}/gsec %attr(755,root,root) %{_bindir}/gsplit %attr(755,root,root) %{_bindir}/gstat @@ -305,26 +357,31 @@ fi %attr(755,root,root) %{ibdir}/UDF %attr(755,root,root) %{ibdir}/bin/* %exclude %{ibdir}/bin/fb_config +%exclude %{ibdir}/bin/gpre +%exclude %{ibdir}/bin/fbguard %{ibdir}/help -%dir %attr(770,root,firebird) %{ibdir}/intl +%dir %{ibdir}/intl %attr(755,root,root) %{ibdir}/intl/fbintl # should it be moved to %{_sysconfdir} and marked as config? %{ibdir}/intl/fbintl.conf %dir %{ibdir}/plugins %attr(755,root,root) %{ibdir}/plugins/libfbtrace.so +%attr(755,root,root) %{ibdir}/plugins/libCryptKeyHolder_example.so +%attr(755,root,root) %{ibdir}/plugins/libDbCrypt_example.so +%attr(755,root,root) %{ibdir}/plugins/libEngine12.so +%attr(755,root,root) %{ibdir}/plugins/libLegacy_Auth.so +%attr(755,root,root) %{ibdir}/plugins/libLegacy_UserManager.so +%attr(755,root,root) %{ibdir}/plugins/libSrp.so +%attr(755,root,root) %{ibdir}/plugins/libudr_engine.so +%dir %{ibdir}/plugins/udr +%attr(755,root,root) %{ibdir}/plugins/udr/libudrcpp_example.so +%{ibdir}/plugins/udr_engine.conf + %{ibdir}/firebird.msg -%lang(de) %{ibdir}/de_DE.msg -%lang(fr) %{ibdir}/fr_FR.msg %dir %attr(770,root,firebird) /var/lib/firebird -%attr(660,root,firebird) %config(noreplace) %verify(not md5 mtime size) /var/lib/firebird/security2.fdb +%attr(660,root,firebird) %config(noreplace) %verify(not md5 mtime size) /var/lib/firebird/security3.fdb %attr(660,root,firebird) %config(noreplace) %verify(not md5 mtime size) /var/log/firebird.log -%if %{with ss} -%attr(754,root,root) /etc/rc.d/init.d/firebird -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/firebird -%else -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/firebird -%endif %files dirs %defattr(644,root,root,755) @@ -335,8 +392,6 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libfbclient.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libfbclient.so.2 -%attr(755,root,root) %{_libdir}/libfbembed.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libfbembed.so.2.5 # InterBase/old Firebird compatibility symlinks %attr(755,root,root) %{_libdir}/libgds.so.0 @@ -346,21 +401,35 @@ fi %files devel %defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/fb_config %attr(755,root,root) %{_libdir}/libfbclient.so -%attr(755,root,root) %{_libdir}/libfbembed.so %attr(755,root,root) %{ibdir}/bin/fb_config +%attr(755,root,root) %{ibdir}/bin/gpre +%attr(755,root,root) %{_bindir}/gpre +%{_includedir}/firebird %{_includedir}/ib_util.h %{_includedir}/ibase.h %{_includedir}/iberror.h %{_includedir}/perf.h %{_examplesdir}/%{name}-%{version} -%files static -%defattr(644,root,root,755) -%{_libdir}/libfbstatic.a -# compat link -%{_libdir}/libgds.a - %files doc %defattr(644,root,root,755) %doc docs/* + +%files ss +%defattr(644,root,root,755) +%attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/conf.d/server_mode-ss.conf +%attr(754,root,root) /etc/rc.d/init.d/firebird +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/firebird +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tmpfiles.d/firebird.conf +%attr(755,root,root) %{ibdir}/bin/fbguard +%dir %attr(770,root,firebird) /var/run/firebird +%{systemdunitdir}/firebird.service + +%files classic +%defattr(644,root,root,755) +%attr(640,root,firebird) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/firebird/conf.d/server_mode-classic.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/firebird +%{systemdunitdir}/firebird-classic@.service +%{systemdunitdir}/firebird-classic.socket