Skip to content
Open
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
16 changes: 16 additions & 0 deletions srcpkgs/firebird3/INSTALL
Original file line number Diff line number Diff line change
@@ -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
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
}
10 changes: 10 additions & 0 deletions srcpkgs/firebird3/files/firebird3/run
Original file line number Diff line number Diff line change
@@ -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
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.

165 changes: 114 additions & 51 deletions srcpkgs/firebird3/template
Original file line number Diff line number Diff line change
@@ -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 <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=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"
Expand Down Expand Up @@ -88,60 +134,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

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