From e9294b16dfdd331ef1ddbb4b19f6ea69f1f54bbc Mon Sep 17 00:00:00 2001 From: onlylunix Date: Sun, 4 Jan 2026 04:18:43 +0300 Subject: [PATCH] firebird3: update to 3.0.14.33856 --- srcpkgs/firebird3-doc | 1 + srcpkgs/firebird3/INSTALL | 16 ++ srcpkgs/firebird3/files/firebird.xinetd | 16 ++ srcpkgs/firebird3/files/firebird3/run | 10 ++ .../patches/fix-databases-conf.patch | 15 ++ srcpkgs/firebird3/patches/fix-std-isnan.patch | 13 -- srcpkgs/firebird3/template | 165 ++++++++++++------ 7 files changed, 172 insertions(+), 64 deletions(-) create mode 120000 srcpkgs/firebird3-doc create mode 100644 srcpkgs/firebird3/INSTALL create mode 100644 srcpkgs/firebird3/files/firebird.xinetd create mode 100755 srcpkgs/firebird3/files/firebird3/run create mode 100644 srcpkgs/firebird3/patches/fix-databases-conf.patch delete mode 100644 srcpkgs/firebird3/patches/fix-std-isnan.patch diff --git a/srcpkgs/firebird3-doc b/srcpkgs/firebird3-doc new file mode 120000 index 00000000000000..291f5ca1a3dc94 --- /dev/null +++ b/srcpkgs/firebird3-doc @@ -0,0 +1 @@ +firebird3 \ No newline at end of file diff --git a/srcpkgs/firebird3/INSTALL b/srcpkgs/firebird3/INSTALL new file mode 100644 index 00000000000000..722eaf0d0cec24 --- /dev/null +++ b/srcpkgs/firebird3/INSTALL @@ -0,0 +1,16 @@ +_FIX_PERM_FDB(){ +local _n1=$(expr "${VERSION}" : '\([^.]*\)') +local _securitydb=/var/lib/${PKGNAME}/system/security${_n1}.fdb + +chmod 660 -- "${_securitydb}" +chown _firebird:_firebird -- "${_securitydb}" +} + +case "${ACTION}" in +post) + if [ "$UPDATE" = "no" ] + then + _FIX_PERM_FDB + fi + ;; +esac diff --git a/srcpkgs/firebird3/files/firebird.xinetd b/srcpkgs/firebird3/files/firebird.xinetd new file mode 100644 index 00000000000000..805a123200e46a --- /dev/null +++ b/srcpkgs/firebird3/files/firebird.xinetd @@ -0,0 +1,16 @@ +# default: off +# description: firebirdXXX +service gds-dbXXX +{ + disable = yes + flags = REUSE NODELAY + socket_type = stream + wait = no + user = _firebird +# These lines cause problems with Windows XP SP2 clients +# using default firewall configuration (SF#1065511) +# log_on_success += USERID +# log_on_failure += USERID +# Requires ServerMode = Classic in /etc/firebirdXXX/firebird.conf + server = /usr/lib/firebirdXXX/sbin/firebird +} diff --git a/srcpkgs/firebird3/files/firebird3/run b/srcpkgs/firebird3/files/firebird3/run new file mode 100755 index 00000000000000..969c92033f0f3f --- /dev/null +++ b/srcpkgs/firebird3/files/firebird3/run @@ -0,0 +1,10 @@ +#!/bin/sh +FBUSER=_firebird +FBGROUP=_firebird +FBNAME=${PWD##*/} + +CHK(){ chpst -u $FBUSER:$FBGROUP test $@; } +F="/etc/${FBNAME}/fb_guard" +CHK -f "$F" -a -O "$F" || install --backup -m 640 -o $FBUSER -g $FBGROUP /dev/null "$F" + +exec chpst -u $FBUSER:$FBGROUP /usr/lib/${FBNAME}/sbin/fbguard -forever diff --git a/srcpkgs/firebird3/patches/fix-databases-conf.patch b/srcpkgs/firebird3/patches/fix-databases-conf.patch new file mode 100644 index 00000000000000..4bfd221d435a86 --- /dev/null +++ b/srcpkgs/firebird3/patches/fix-databases-conf.patch @@ -0,0 +1,15 @@ +--- a/builds/install/misc/databases.conf.in ++++ b/builds/install/misc/databases.conf.in +@@ -17,8 +17,9 @@ + # + # Example Database: + # +-employee.fdb = $(dir_sampleDb)/employee.fdb +-employee = $(dir_sampleDb)/employee.fdb ++# employee.fdb = $(dir_sampleDb)/employee.fdb ++# employee = $(dir_sampleDb)/employee.fdb ++# help = /usr/share/doc/firebirdX/help/help.fdb + + # + # Master security database specific setup. + diff --git a/srcpkgs/firebird3/patches/fix-std-isnan.patch b/srcpkgs/firebird3/patches/fix-std-isnan.patch deleted file mode 100644 index 9da229bdc86f18..00000000000000 --- a/srcpkgs/firebird3/patches/fix-std-isnan.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/src/common/classes/FpeControl.h 2020-06-26 12:02:51.000000000 +0200 -+++ b/src/common/classes/FpeControl.h 2020-09-17 06:04:30.516565361 +0200 -@@ -42,6 +42,10 @@ - #include - #endif - -+#if !defined(__GLIBC__) -+#define isinf std::isinf -+#endif -+ - namespace Firebird - { - diff --git a/srcpkgs/firebird3/template b/srcpkgs/firebird3/template index de891b4ff6fc1c..d6786461d54651 100644 --- a/srcpkgs/firebird3/template +++ b/srcpkgs/firebird3/template @@ -1,45 +1,91 @@ # Template file for 'firebird3' pkgname=firebird3 -version=3.0.6.33328 -revision=2 + +version=3.0.14.33856 +revision=1 + +#_commit=463bae029a4426deff7e9bb08a8317aaa398c7c7 _build=0 -_uver=${version//./_} + +#_uver=${version//./_} + +#_n1=${version%%.*} +_n1=$(expr "$version" : '\([^.]*\)') +#n2=$(expr "$version" : '\([^.]*.[^.]*\)') +_n3=$(expr "$version" : '\([^.]*.[^.]*.[^.]*\)') +_fbN=fb${_n1} + build_style=gnu-configure build_helper="qemu" -configure_args="--prefix=/usr - --with-fbbin=/usr/bin - --with-fbconf=/etc/firebird - --with-fbdoc=/usr/share/doc/firebird - --with-fbhelp=/usr/share/doc/firebird/help - --with-fbinclude=/usr/include/firebird - --with-fblib=/usr/lib - --with-fblog=/var/log - --with-fbmsg=/usr/lib/firebird/msg - --with-fbplugins=/usr/lib/firebird/plugins - --with-fbsbin=/usr/lib/firebird/bin - --with-fbudf=/usr/lib/firebird/UDF - --with-fbsecure-db=/var/lib/firebird/system - --with-fbintl=/usr/lib/firebird/intl - --with-fbmisc - --without-fbsample + +_PREFIX=/usr/lib/${pkgname} +_INCLUDE=/usr/include/${pkgname} +configure_args="--prefix=${_PREFIX} + --with-fbconf=/etc/${pkgname} + --with-fbbin=${_PREFIX}/bin + --with-fbsbin=${_PREFIX}/sbin + --with-fblib=${_PREFIX}/lib + --with-fbmsg=${_PREFIX}/lib/msg + --with-fbudf=${_PREFIX}/lib/udf + --with-fbintl=${_PREFIX}/lib/intl + --with-fbplugins=${_PREFIX}/lib/plugins + --with-fbmisc=${_PREFIX}/misc + --with-fbsecure-db=/var/lib/${pkgname}/system + --with-fblog=/var/log/${pkgname} + --with-fbdoc=/usr/share/doc/${pkgname} + --with-fbhelp=/usr/share/doc/${pkgname}/help + --with-fbsample=/usr/share/doc/${pkgname}/examples + --with-fbinclude=${_INCLUDE} --without-fbsample-db - --with-system-icu --with-system-editline" -hostmakedepends="automake libtool pkg-config icu" + +# --with-fbsample-db=/usr/share/doc/${pkgname}/examples/empbuild +# --with-service-name specify inet service name (default=gds_db) +# --with-service-port specify inet service port (default=3050) +# --with-ipc-name specify local IPC name (default=FirebirdIPI) + +hostmakedepends="automake libtool pkg-config icu tar rsync" makedepends="boost-headers libedit-devel icu-devel ncurses-devel libatomic_ops-devel libtommath-devel zlib-devel" -short_desc="Relational database offering many ANSI SQL standard features (V3)" + +short_desc="Relational database offering many ANSI SQL standard features (Firebird3)" maintainer="Orphaned " license="custom:IDPL-1.0, Interbase-1.0" -homepage="https://www.firebirdsql.org/en/start/" -distfiles="https://github.com/FirebirdSQL/firebird/releases/download/R${_uver%_*}/Firebird-${version}-${_build}.tar.bz2" -checksum=34c1d2a29bbaf288e682cd1b5f8083f2baf73f351062245ace0bee35a3f7d35f -replaces="firebird>=0" +homepage="https://www.firebirdsql.org" + +# distfiles="https://github.com/FirebirdSQL/firebird/releases/download/R${_uver%_*}/Firebird-${version}-${_build}.tar.bz2" # old +# distfiles="https://github.com/FirebirdSQL/firebird/releases/download/v${_n3}/Firebird-${version}-${_build}.tar.bz2" # V3 +# distfiles="https://github.com/FirebirdSQL/firebird/releases/download/v${_n3}/Firebird-${version}-${_build}.tar.xz" # V4 +# distfiles="https://github.com/FirebirdSQL/firebird/releases/download/v${_n3}/Firebird-${version}-${_build}-source.tar.xz" # V5 +# distfiles="https://github.com/FirebirdSQL/firebird/archive/refs/tags/v${_n3}.tar.gz" # tags + +if [ -z "$_commit" ]; then + distfiles="https://github.com/FirebirdSQL/firebird/releases/download/v${_n3}/Firebird-${version}-${_build}.tar.bz2" # V3 +else + distfiles="https://github.com/FirebirdSQL/firebird/archive/${_commit}.tar.gz>Firebird-${version}-${_build}-source.tar.gz" +fi + +checksum=dce3f26c0f015b3c40f36085f8cc21de58dd568e0f347fdd0fcc7942deda8cff + nocross="Fails to build gpre_boot for host but builds for target" CFLAGS="-fno-strict-aliasing" CXXFLAGS="-fno-delete-null-pointer-checks -Wno-deprecated -Wno-deprecated-declarations" +# Create firebird system user/group +system_accounts="_firebird _firebird" +_firebird_homedir="/var/lib/firebird" +_firebird_descr="Firebird Database Owner" +triggers="system-accounts" + +make_dirs="/var/log/${pkgname} 0750 _firebird _firebird" + +conf_files="/etc/${pkgname}/databases.conf + /etc/${pkgname}/fbtrace.conf + /etc/${pkgname}/firebird.conf + /etc/${pkgname}/plugins.conf + /var/lib/${pkgname}/system/security${_n1}.fdb" + if [ "$CROSS_BUILD" ]; then configure_args+=" --enable-binreloc" configure_args+=" ac_cv_func_sem_init=no" @@ -88,8 +134,8 @@ pre_configure() { # do not change permissions to read-only find -iname "*.sh.in" -exec sed -i "{}" \ -e 's;"\x60whoami\x60";"root";' \ - -e 's;chown root:root;#&;' \ - -e 's;chown -R;#&;' \ + -e 's;chown root:root;echo skip: &;' \ + -e 's;chown -R;echo skip: &;' \ -e 's;chmod 0444;chmod 0644;' \ -e 's;chmod 0555;chmod 0755;' \; @@ -97,51 +143,68 @@ pre_configure() { } do_install() { - local _lib _v0=${version%.*} _v1=${version%.*.*} _v2=${version%.*.*.*} - cd ${wrksrc}/gen ./install/makeInstallImage.sh - cd ${wrksrc} # Fix permissions - find gen/buildroot -type f -perm 0444 -exec chmod 0644 "{}" \; + find gen/buildroot -type f -perm 0444 -o -perm 0600 -exec chmod 0644 "{}" \; find gen/buildroot -type f -perm 0555 -exec chmod 0755 "{}" \; - vlicense doc/license/IDPL.txt IDPL - vlicense doc/license/README.license.usage.txt LICENSE + vlicense doc/license/IDPL.txt + vlicense doc/license/README.license.usage.txt + + rsync -a --exclude={'*.sh',"${_PREFIX}/no","${_PREFIX}/yes","usr/share/doc/${pkgname}/examples/prebuilt"} gen/buildroot/ ${DESTDIR}/ # Exclude ELF files in usr/share/doc/${pkgname} e.t.c - cp -pR gen/buildroot/* ${DESTDIR}/ + # Fix conflicts with isql from unixodbc and other versions Firebird + mkdir -p ${DESTDIR}/usr/bin + find ${DESTDIR}${_PREFIX}/bin -type f -printf '%P\n' | xargs -I {} -n1 ln -rs ${DESTDIR}${_PREFIX}/bin/{} ${DESTDIR}/usr/bin/${_fbN}-{} - # Conflicts with isql from unixodbc. - mv ${DESTDIR}/usr/bin/isql{,-fb} + vinstall ${FILESDIR}/firebird.xinetd 644 etc/xinetd.d ${pkgname} # xinetd, requires ServerMode = Classic + vsv ${pkgname} # runit service, default ServerMode = Super, see: /etc/${pkgname}/firebird.conf + + # REPLASE: firebirdXXX, gds-dbXXX + vsed -i ${DESTDIR}/etc/xinetd.d/${pkgname} -e "s|firebirdXXX|${pkgname}|g; s|gds-dbXXX|firebird${_n1}|g" - # TODO: create superserver? - # system account? - # runit service? # Example https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=firebird-superserver } libfbclient3_package() { short_desc+=" - client libraries" - replaces="libfbclient>=0" + alternatives="libfbclient:/usr/lib/libfbclient.so.2:${_PREFIX}/lib/libfbclient.so.2" pkg_install() { - vmove "usr/lib/libfbclient.so.*" - vmove usr/lib/firebird/msg/firebird.msg - vlicense doc/license/IDPL.txt IDPL - vlicense doc/license/README.license.usage.txt LICENSE + vmove "${_PREFIX}/lib/libfbclient.so*" + vmove "${_PREFIX}/lib/msg/firebird.msg" + + vlicense doc/license/IDPL.txt + vlicense doc/license/README.license.usage.txt } } libfbclient3-devel_package() { short_desc+=" - development files" - replaces="libfbclient-devel>=0" + + alternatives="libfbclient-devel:/usr/include/ibase.h:${_INCLUDE}/ibase.h + libfbclient-devel:/usr/include/iberror.h:${_INCLUDE}/iberror.h + libfbclient-devel:/usr/include/ib_util.h:${_INCLUDE}/ib_util.h + libfbclient-devel:/usr/lib/libfbclient.so:${_PREFIX}/lib/libfbclient.so.2" + depends="libfbclient3>=${version}_${revision}" pkg_install() { - vmove usr/lib/firebird/bin/fb_config - vmkdir usr/bin - ln -s ../lib/firebird/bin/fb_config ${PKGDESTDIR}/usr/bin/fb_config - vmove usr/include/firebird - vmove usr/lib/libfbclient.so + vmove ${_PREFIX}/sbin/fb_config + vmove usr/include + + # Delete unused link + rm ${PKGDESTDIR}/usr/include/firebird + + # Fix conflict, use alternatives + rm ${PKGDESTDIR}/usr/include/*.h + } +} + +firebird3-doc_package() { + short_desc="Firebird3 - documentation" + pkg_install() { + vmove usr/share/doc } }