Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions srcpkgs/firebird3-doc
45 changes: 45 additions & 0 deletions srcpkgs/firebird3/INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
_PASSW_SAVE(){
local _savef=/etc/${PKGNAME}/SYSDBA.password-$(date +%Y%m%d%H%M%S)
install -m 600 /dev/null "${_savef}"

cat > "${_savef}" <<-! && echo "See password in file ${_savef}"
# This file was created when ${PKGNAME} was installed.
# This file should not be readable by other users.
# Remember the user password and you can delete this file.
user=SYSDBA
password=${_pass}
!
[ $? -eq 0 ] && ln -srf "${_savef}" "/etc/${PKGNAME}/SYSDBA.password" || echo 'Something went wrong.'
}

_PASSW_SET(){
echo "${PKGNAME}: Post install: Warning! Attempting to set password for user SYSDBA ..."

local _n1=$(expr "${VERSION}" : '\([^.]*\)')
local _securitydb=/var/lib/${PKGNAME}/system/security${_n1}.fdb
local _pass=$(head -c 9 /dev/random | base64) # maybe pwgen ?

chmod 660 -- /var/lib/${PKGNAME}/system/security*.fdb
chown _firebird:_firebird -- /var/lib/${PKGNAME}/system/security*.fdb

chpst -u _firebird:_firebird /usr/lib/${PKGNAME}/bin/isql <<-!
CONNECT '${_securitydb}' USER SYSDBA;
CREATE USER SYSDBA PASSWORD '${_pass}';
!

if [ $? -eq 0 ]; then
echo 'Password set successfully.'
_PASSW_SAVE
else
echo 'Password set fail.'
fi
}

case "${ACTION}" in
post)
if [ "$UPDATE" = "no" ]
then
_PASSW_SET
fi
;;
esac
16 changes: 16 additions & 0 deletions srcpkgs/firebird3/files/firebird.xinetd
Original file line number Diff line number Diff line change
@@ -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
}
30 changes: 30 additions & 0 deletions srcpkgs/firebird3/files/firebird3/run
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/sh
FBUSER=_firebird
FBGROUP=_firebird
FBNAME=${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"

exec chpst -u $FBUSER:$FBGROUP /usr/lib/${FBNAME}/sbin/fbguard -forever
15 changes: 15 additions & 0 deletions srcpkgs/firebird3/patches/fix-databases-conf.patch
Original file line number Diff line number Diff line change
@@ -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.

13 changes: 0 additions & 13 deletions srcpkgs/firebird3/patches/fix-std-isnan.patch

This file was deleted.

163 changes: 112 additions & 51 deletions srcpkgs/firebird3/template
Original file line number Diff line number Diff line change
@@ -1,45 +1,89 @@
# Template file for 'firebird3'
pkgname=firebird3
version=3.0.6.33328
revision=2

version=3.0.14.33824
revision=1

_commit=31e635a3bd41dbd84c6e6d850031c0c76aa0891b
_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-devel-minimal 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 <orphan@voidlinux.org>"
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=76c3a433d5d2514d56804e95ae382c4097e1d34c5f2e6aa1850e282805f52f59

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"
Expand Down Expand Up @@ -88,60 +132,77 @@ 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;' \;

NOCONFIGURE=1 ./autogen.sh
}

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

# 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}-{}

cp -pR gen/buildroot/* ${DESTDIR}/
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

# Conflicts with isql from unixodbc.
mv ${DESTDIR}/usr/bin/isql{,-fb}
# 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
}
}