From c4357621085926e663b1eeca08165d2e26adce06 Mon Sep 17 00:00:00 2001 From: onlylunix Date: Sat, 14 Oct 2023 05:34:41 +0300 Subject: [PATCH] firebird3: update --- srcpkgs/firebird3/INSTALL | 14 ++ srcpkgs/firebird3/files/fb-exe | 26 +++ srcpkgs/firebird3/files/firebird.xinetd | 16 ++ srcpkgs/firebird3/files/firebird3/run | 31 ++++ .../patches/fix-databases-conf.patch | 15 ++ srcpkgs/firebird3/patches/fix-std-isnan.patch | 13 -- srcpkgs/firebird3/template | 150 ++++++++++++------ 7 files changed, 206 insertions(+), 59 deletions(-) create mode 100644 srcpkgs/firebird3/INSTALL create mode 100755 srcpkgs/firebird3/files/fb-exe 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/INSTALL b/srcpkgs/firebird3/INSTALL new file mode 100644 index 00000000000000..507291f6a142b8 --- /dev/null +++ b/srcpkgs/firebird3/INSTALL @@ -0,0 +1,14 @@ +case "${ACTION}" in +post) + if [ "$UPDATE" = "no" ] + then + # $2 = PKGNAME + chmod 600 -- /var/lib/$2/system/security*.fdb + echo "$2: POST INSTALL: ATTENTION! TRY ADD USER sysdba WITH PASSWORD masterkey ..." + { LD_LIBRARY_PATH="/usr/lib/$2/lib:$LD_LIBRARY_PATH" /usr/lib/$2/bin/gsec -add sysdba -pw masterkey && echo "... SUCCESSFULL."; } || echo "... FAIL." + chown _firebird:_firebird -- /var/lib/$2/system/security*.fdb + chown _firebird:_firebird /tmp/firebird + find /tmp/firebird -type f -name 'fb_*' -user 0 -exec chown _firebird:_firebird -- {} \; + fi + ;; +esac diff --git a/srcpkgs/firebird3/files/fb-exe b/srcpkgs/firebird3/files/fb-exe new file mode 100755 index 00000000000000..1c079649d875a9 --- /dev/null +++ b/srcpkgs/firebird3/files/fb-exe @@ -0,0 +1,26 @@ +#!/bin/sh +[ -z "$_FBEXE_" ] || exit 231 +export _FBEXE_=1 + +bn=$(basename -- "$0") +EXE=${bn#*-} # prefix-name -> name +FBDIRBIN=$(dirname -- "$(realpath -- "$0")") +FBROOT=$(dirname -- "$FBDIRBIN") +FBDIRLIB="$FBROOT/lib" + +show(){ +echo "bn=$bn" +echo "EXE=$EXE" +echo "FBDIRBIN=$FBDIRBIN" +echo "FBROOT=$FBROOT" +echo "FBDIRLIB=$FBDIRLIB" +exit 2 +} + +#show + +export LD_LIBRARY_PATH="$FBDIRLIB:$LD_LIBRARY_PATH" +export FIREBIRD_MSG="$FBROOT/lib/msg" +export PATH="$FBDIRBIN:$PATH" +#exec "$FBDIRBIN/$EXE" "$@" +exec "$EXE" "$@" 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..cb77ccce543217 --- /dev/null +++ b/srcpkgs/firebird3/files/firebird3/run @@ -0,0 +1,31 @@ +#!/bin/sh +FBUSER=_firebird +FBGROUP=_firebird +FBNAME=$(basename -- "$PWD") +FBROOT="/usr/lib/$FBNAME" +FBLOGDIR="/var/log/$FBNAME" # chmod 750 +FBLOGFILE="${FBLOGDIR}/firebird.log" + +CHK(){ chpst -u $FBUSER:$FBGROUP test $@; } +BKP(){ mv -T --backup=numbered -- "$1" "$1".bkp; } + +D='/tmp/firebird' # 700 ? +[ -e "$D" ] && { CHK -d "$D" -a -O "$D" || { BKP "$D"; install -m 750 -o $FBUSER -g $FBGROUP -d "$D"; } } + +F="$FBLOGFILE" +if ! CHK -f "$F" -a -w "$F" +then + if [ -e "$F" ] + then + BKP "$F" + else + D="$FBLOGDIR" + CHK -d "$D" -a -w "$D" || { [ -e "$D" ] && BKP "$D"; install -m 750 -o $FBUSER -g $FBGROUP -d "$D"; } + fi +fi + +F="/etc/${FBNAME}/fb_guard" +CHK -f "$F" -a -O "$F" || install --backup -m 640 -o $FBUSER -g $FBGROUP /dev/null "$F" + +export LD_LIBRARY_PATH="${FBROOT}/lib:$LD_LIBRARY_PATH" +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 575415d2128f1c..a0eb080870dc6b 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.13.33793 +revision=1 + +_commit=3e6271397700c097db5e730ca8a52413d98b6abc + +[ -z "$_commit" ] || version=$version~${_commit:0:7} + _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/${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/${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-devel 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 (V${_n1})" 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" +fi + +checksum=748a07dbca1b7c7e1b7ac30d1010e19bebb548008b516c1a49829ffa614bc875 + 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" + +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,11 +143,8 @@ pre_configure() { } do_install() { - local _lib _v0=${version%.*} _v1=${version%.*.*} _v2=${version%.*.*.*} - cd ${wrksrc}/gen ./install/makeInstallImage.sh - cd ${wrksrc} # Fix permissions @@ -111,23 +154,30 @@ do_install() { vlicense doc/license/IDPL.txt IDPL vlicense doc/license/README.license.usage.txt LICENSE - cp -pR gen/buildroot/* ${DESTDIR}/ + rsync -a --exclude={'*.sh',"${_PREFIX}/no","${_PREFIX}/yes","usr/share/${pkgname}/examples/prebuilt"} gen/buildroot/ ${DESTDIR}/ # Exclude unused files and dirs + + vinstall ${FILESDIR}/fb-exe 755 ${_PREFIX}/bin + + # Fix conflicts with isql from unixodbc and other versions Firebird + mkdir -p ${DESTDIR}/usr/bin + find ${DESTDIR}${_PREFIX}/bin -type f ! -name fb-exe -printf '%f\n' | xargs -I {} -n1 ln -sf ${_PREFIX}/bin/fb-exe ${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 + vmove "${_PREFIX}/lib/libfbclient.so*" + vmove "${_PREFIX}/lib/msg/firebird.msg" + vlicense doc/license/IDPL.txt IDPL vlicense doc/license/README.license.usage.txt LICENSE } @@ -135,13 +185,21 @@ libfbclient3_package() { 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 } }