%global ver 4.0.4 %global rev 3010 Name: firebird Version: %{ver}.%{rev} Release: 2 Summary: SQL relational database management system License: Interbase URL: http://www.firebirdsql.org/ Source0: https://github.com/FirebirdSQL/firebird/releases/download/v%{ver}/Firebird-%{ver}.%{rev}-0.tar.xz Source1: firebird-logrotate Source2: firebird.service Source3: fb_config Patch0000: add-pkgconfig-files.patch Patch0001: no-copy-from-icu.patch Patch0002: cloop-honour-build-flags.patch # from upstream Patch0003: c++17.patch Patch0004: noexcept.patch Patch0005: autoconf.patch Patch0006: btyacc-honour-build-flags.patch Patch0007: firebird-configure-c99.patch #Patch0008: 0001-Port-to-RISC-V-64-bit-riscv64.patch Patch0009: 0001-add-loongarch64-support-for-Firebird.patch #Patch0010: 0002-Modify-PROD_FLAGS-and-DEV_FLAGS-parameters-for-loongarch64.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libtommath-devel BuildRequires: libtool BuildRequires: ncurses-devel BuildRequires: libicu-devel BuildRequires: libedit-devel BuildRequires: gcc-c++ BuildRequires: libstdc++-static BuildRequires: systemd-units BuildRequires: chrpath BuildRequires: zlib-devel BuildRequires: procmail BuildRequires: make BuildRequires: libtomcrypt-devel BuildRequires: unzip BuildRequires: sed Requires(postun): /usr/sbin/userdel Requires(postun): /usr/sbin/groupdel Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Recommends: logrotate Requires: libfbclient2 = %{version}-%{release} Requires: libib-util = %{version}-%{release} Requires: %{name}-utils = %{version}-%{release} Obsoletes: firebird-arch < 4.0 Obsoletes: firebird-filesystem < 4.0 Obsoletes: firebird-classic-common < 4.0 Obsoletes: firebird-classic < 4.0 Obsoletes: firebird-superclassic < 4.0 Obsoletes: firebird-superserver < 4.0 Conflicts: firebird-arch < 4.0 Conflicts: firebird-filesystem < 4.0 Conflicts: firebird-classic-common < 4.0 Conflicts: firebird-classic < 4.0 Conflicts: firebird-superclassic < 4.0 Conflicts: firebird-superserver < 4.0 %description Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, MacOS 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. %package devel Requires: %{name} = %{version}-%{release} Requires: libfbclient2-devel = %{version}-%{release} Summary: UDF support library for Firebird SQL server %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, MacOS 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. %package -n libib-util Summary: Firebird SQL UDF support library %description -n libib-util libib_util contains utility functions used by User-Defined Functions (UDF) for memory management etc. Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, MacOS 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. %package -n libfbclient2 Summary: Firebird SQL server client library Obsoletes: firebird-libfbclient < 4.0 Conflicts: firebird-libfbclient < 4.0 Obsoletes: firebird-libfbembed < 4.0 %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, MacOS 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. %package -n libfbclient2-devel Summary: Development libraries and headers for Firebird SQL server Requires: %{name}-devel = %{version}-%{release} Requires: libfbclient2 = %{version}-%{release} Requires: pkgconfig %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, MacOS 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. %package help Requires: %{name} = %{version}-%{release} Summary: Documentation for Firebird SQL server BuildArch: noarch %description help Documentation for Firebird SQL server. Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, MacOS 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. %package utils Requires: libfbclient2 = %{version}-%{release} Summary: Firebird SQL user utilities %description utils Firebird SQL user utilities. Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, MacOS 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 %autosetup -n Firebird-%{ver}.%{rev}-0 -p1 %build export CFLAGS="%{optflags} -fno-strict-aliasing" export CXXFLAGS="${CFLAGS} -fno-delete-null-pointer-checks" NOCONFIGURE=1 ./autogen.sh %configure --disable-rpath --prefix=%{_prefix} \ --with-system-editline \ --with-fbbin=%{_bindir} --with-fbsbin=%{_sbindir} \ --with-fbconf=%{_sysconfdir}/%{name} \ --with-fblib=%{_libdir} --with-fbinclude=%{_includedir} \ --with-fbdoc=%{_defaultdocdir}/%{name} \ --with-fbsample=%{_defaultdocdir}/%{name}/sample \ --with-fbsample-db=%{_localstatedir}/lib/%{name}/data \ --with-fbhelp=%{_localstatedir}/lib/%{name}/system \ --with-fbintl=%{_libdir}/%{name}/intl \ --with-fbmisc=%{_datadir}/%{name}/misc \ --with-fbsecure-db=%{_localstatedir}/lib/%{name}/secdb \ --with-fbmsg=%{_localstatedir}/lib/%{name}/system \ --with-fblog=%{_localstatedir}/log/%{name} \ --with-fbglock=%{_rundir}/%{name} \ --with-fbplugins=%{_libdir}/%{name}/plugins \ --with-fbtzdata=%{_localstatedir}/lib/%{name}/tzdata make %{?_smp_mflags} cd gen sed -i '/linkFiles "/d' ./install/makeInstallImage.sh ./install/makeInstallImage.sh chmod -R u+w buildroot%{_docdir}/%{name} %install chmod u+rw,a+rx gen/buildroot/%{_includedir}/firebird/impl cp -r gen/buildroot/* ${RPM_BUILD_ROOT}/ 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 mv -v .%{_sbindir}/fb_config .%{_libdir}/ install -p -m 0755 %{SOURCE3} %{buildroot}%{_sbindir}/fb_config rm -vf .%{_includedir}/perf.h rm -vf .%{_libdir}/libicu*.so chmod -R u+w .%{_docdir}/%{name} mv -v .%{_datadir}/%{name}/misc/upgrade/udf/* .%{_docdir}/%{name}/ rm -rvf .%{_datadir}/%{name}/misc mv -v .%{_sysconfdir}/%{name}/README.md .%{_sysconfdir}/%{name}/CHANGELOG.md \ .%{_docdir}/%{name}/ mv -v .%{_sysconfdir}/%{name}/IDPLicense.txt .%{_docdir}/%{name}/ mv -v .%{_sysconfdir}/%{name}/IPLicense.txt .%{_docdir}/%{name}/ mv -v .%{_bindir}/gstat .%{_bindir}/gstat-fb mv -v .%{_bindir}/isql .%{_bindir}/isql-fb rm -rvf .%{_defaultdocdir}/%{name}/sample/prebuilt mkdir -p .%{_localstatedir}/log/%{name} mkdir -p .%{_sysconfdir}/logrotate.d echo 1 > .%{_localstatedir}/log/%{name}/%{name}.log sed "s@%{name}.log@%{_localstatedir}/log/%{name}/%{name}.log@g" %{SOURCE1} > .%{_sysconfdir}/logrotate.d/%{name} mkdir -p .%{_unitdir} cp -f %{SOURCE2} .%{_unitdir}/%{name}.service %pre # Create the firebird group if it doesn't exist getent group %{name} > /dev/null || /usr/sbin/groupadd -r %{name} getent passwd %{name} >/dev/null || /usr/sbin/useradd -d / -g %{name} -s /sbin/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 %systemd_post firebird.service %postun %systemd_postun_with_restart firebird.service %preun %systemd_preun firebird.service %files %{_docdir}/%{name}/IDPLicense.txt %{_docdir}/%{name}/IPLicense.txt %{_bindir}/fbtracemgr %{_sbindir}/firebird %{_sbindir}/fbguard %{_sbindir}/fb_lock_print %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/databases.conf %config(noreplace) %{_sysconfdir}/%{name}/fbtrace.conf %config(noreplace) %{_sysconfdir}/%{name}/firebird.conf %config(noreplace) %{_sysconfdir}/%{name}/plugins.conf %config(noreplace) %{_sysconfdir}/%{name}/replication.conf %dir %{_libdir}/%{name} %dir %{_datadir}/%{name} %{_libdir}/%{name}/intl %{_libdir}/%{name}/plugins %dir %{_localstatedir}/lib/%{name} %dir %attr(0700,%{name},%{name}) %{_localstatedir}/lib/%{name}/secdb %dir %attr(0700,%{name},%{name}) %{_localstatedir}/lib/%{name}/data %dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/system %dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/tzdata %attr(0600,firebird,firebird) %config(noreplace) %{_localstatedir}/lib/%{name}/secdb/security4.fdb %attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/system/help.fdb %attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/system/firebird.msg %attr(0644,firebird,firebird) %{_localstatedir}/lib/%{name}/tzdata/*.res %ghost %dir %attr(0775,%{name},%{name}) /run/%{name} %ghost %attr(0644,%{name},%{name}) /run/%{name}/fb_guard %dir %{_localstatedir}/log/%{name} %config(noreplace) %attr(0664,%{name},%{name}) %{_localstatedir}/log/%{name}/%{name}.log %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name} %attr(0644,root,root) %{_unitdir}/%{name}.service %files devel %{_includedir}/*.h %{_includedir}/%{name} %{_libdir}/fb_config %{_sbindir}/fb_config %files -n libfbclient2 %{_libdir}/libfbclient.so.* %files -n libfbclient2-devel %{_libdir}/libfbclient.so %{_libdir}/pkgconfig/fbclient.pc %files -n libib-util %{_libdir}/libib_util.so %files help %{_docdir}/%{name} %exclude %{_docdir}/%{name}/IDPLicense.txt %exclude %{_docdir}/%{name}/IPLicense.txt %attr(0600,firebird,firebird) %{_localstatedir}/lib/%{name}/data/employee.fdb %files utils %{_bindir}/gstat-fb %{_bindir}/fbsvcmgr %{_bindir}/gbak %{_bindir}/gfix %{_bindir}/gpre %{_bindir}/gsec %{_bindir}/isql-fb %{_bindir}/nbackup %{_bindir}/qli %{_bindir}/gsplit %changelog * Mon May 20 2024 Wenlong Zhang - 4.0.4.3010-2 - add loongarch64 support for firebird * Fri Apr 19 2024 xiejing - 4.0.4.3010-1 - Update to 4.0.4.3010 * Thu Aug 10 2023 dillon chen - 4.0.3.2975-1 - Update to 4.0.3.2975 * Thu May 25 2023 Wenlong Zhang - 3.0.10.33601-4 - Modify PROD_FLAGS and DEV_FLAGS parameters for loongarch64 * Mon May 8 2023 Wenlong Zhang - 3.0.10.33601-3 - add loongarch64 support * Thu Mar 2 2023 dillon chen - 3.0.10.33601-2 - add -fPIE in honour-buildflags.patch * Thu Sep 1 2022 Funda Wang - 3.0.10.33601-1 - New version 3.0.10 * Tue Aug 30 2022 dillon chen - 3.0.3.32900-10 - put correct source as /usr/sbin/fb_config * Mon Mar 7 2022 yaoxin - 3.0.3.32900-9 - Fix failed to parse pid from pid file * Fri Sep 10 2021 bzhaoop - 3.0.3.32900-8 - Del rpath in some binaries for firebird. * Thu Feb 25 2021 huanghaitao - 3.0.3.32900-7 - Fix login shell to /sbin/nologin * Mon Jan 13 2020 openEuler Buildteam - 3.0.3.32900-6 - Type:bugfix - Id:NA - SUG:NA - DESC:remove the libtermcap-devel in buildrequires * Mon Dec 2 2019 lihao - 3.0.3.32900-5 - Package Init