Skip to content

Commit

Permalink
New package: firebird5
Browse files Browse the repository at this point in the history
  • Loading branch information
onlylunix committed Dec 9, 2024
1 parent 1d43648 commit 3d96117
Show file tree
Hide file tree
Showing 9 changed files with 431 additions and 0 deletions.
14 changes: 14 additions & 0 deletions srcpkgs/firebird5/INSTALL
Original file line number Diff line number Diff line change
@@ -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
127 changes: 127 additions & 0 deletions srcpkgs/firebird5/files/cross-compile.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
--- extern/cloop/Makefile 2020-06-26 12:02:51.000000000 +0200
+++ extern/cloop/Makefile 2020-09-16 18:36:31.230025798 +0200
@@ -4,9 +4,9 @@

TARGET := release

-CC := $(CC)
-CXX := $(CXX)
-LD := $(CXX)
+CC := $(CC_host)
+CXX := $(CXX_host)
+LD := $(CXX_host)

SRC_DIR := src
BUILD_DIR := build
@@ -27,8 +27,9 @@
OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C))
OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP))

-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
-CXX_FLAGS := $(C_FLAGS)
+COMMON_C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
+C_FLAGS := $(COMMON_C_FLAGS) $(CFLAGS_host) $(CPPFLAGS)
+CXX_FLAGS := $(COMMON_C_FLAGS) $(CXXFLAGS_host) $(CPPFLAGS)
FPC_FLAGS := -Mdelphi

ifeq ($(TARGET),release)
@@ -81,7 +82,7 @@
$(OBJ_DIR)/cloop/Parser.o \
$(OBJ_DIR)/cloop/Main.o \

- $(LD) $^ -o $@
+ $(LD) $(LDFLAGS_host) $^ -o $@

$(SRC_DIR)/tests/test1/CalcCApi.h: $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl
$(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl c-header $@ CALC_C_API_H CALC_I
@@ -108,23 +109,23 @@
$(OBJ_DIR)/tests/test1/CalcCApi.o \
$(OBJ_DIR)/tests/test1/CTest.o \

- $(LD) $^ -shared -ldl -o $@
+ $(LD) $(LDFLAGS_host) $^ -shared -ldl -o $@

$(BIN_DIR)/test1-c$(EXE_EXT): \
$(OBJ_DIR)/tests/test1/CalcCApi.o \
$(OBJ_DIR)/tests/test1/CTest.o \

- $(LD) $^ -ldl -o $@
+ $(LD) $(LDFLAGS_host) $^ -ldl -o $@

$(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \
$(OBJ_DIR)/tests/test1/CppTest.o \

- $(LD) $^ -shared -ldl -o $@
+ $(LD) $(LDFLAGS_host) $^ -shared -ldl -o $@

$(BIN_DIR)/test1-cpp$(EXE_EXT): \
$(OBJ_DIR)/tests/test1/CppTest.o \

- $(LD) $^ -ldl -o $@
+ $(LD) $(LDFLAGS_host) $^ -ldl -o $@

$(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \
$(SRC_DIR)/tests/test1/PascalClasses.pas \
--- configure.ac 2020-06-26 12:02:51.000000000 +0200
+++ configure.ac 2020-09-17 04:29:43.550904331 +0200
@@ -1021,37 +1021,13 @@
AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE,1,[Define this if struct dirent has d_type]),,
[#include <dirent.h>])

-dnl EKU: try to determine the alignment of long and double
-dnl replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
-AC_MSG_CHECKING(alignment of long)
-AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
-main () {
- struct s {
- char a;
- union { long long x; sem_t y; } b;
- };
- exit((int)&((struct s*)0)->b);
-}]])],[ac_cv_c_alignment=$ac_status],[ac_cv_c_alignment=$ac_status],[])
-AC_MSG_RESULT($ac_cv_c_alignment)
AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
-
-AC_MSG_CHECKING(alignment of double)
-AC_RUN_IFELSE([AC_LANG_SOURCE([[main () {
- struct s {
- char a;
- double b;
- };
- exit((int)&((struct s*)0)->b);
-}]])],[ac_cv_c_double_align=$ac_status],[ac_cv_c_double_align=$ac_status],[])
-AC_MSG_RESULT($ac_cv_c_double_align)
AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])

dnl EKU: Add any platform specific tests below
case "$PLATFORM" in
LINUX)
- dnl MOD: Check for /proc/self/exe mainly used on linux systems
- dnl this is used to determine path to executable file.
- AC_CHECK_FILES(/proc/self/exe)
+ AC_DEFINE_UNQUOTED(HAVE_PROC_SELF_EXEC, 1, [Void Linux has /proc/self/exe])
;;

FREEBSD|GENTOOFREEBSD)
@@ -1216,10 +1216,6 @@
])
done

-if test "x$CROSS" != "x"; then
-AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS])
-fi
-
AC_CONFIG_FILES([
gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in
gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in
--- src/misc/writeBuildNum.sh 2020-06-26 12:02:52.000000000 +0200
+++ src/misc/writeBuildNum.sh 2020-09-17 04:42:28.645858727 +0200
@@ -114,7 +114,7 @@
$CXX $TestCpp -o $AOut
if [ -x $AOut ]
then
- $AOut
+ qemu-${XBPS_TARGET_QEMU_MACHINE}-static $AOut
OdsVersion=$?
else
OdsVersion=0
26 changes: 26 additions & 0 deletions srcpkgs/firebird5/files/fb-exe
Original file line number Diff line number Diff line change
@@ -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" "$@"
16 changes: 16 additions & 0 deletions srcpkgs/firebird5/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
}
31 changes: 31 additions & 0 deletions srcpkgs/firebird5/files/firebird5/run
Original file line number Diff line number Diff line change
@@ -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
13 changes: 13 additions & 0 deletions srcpkgs/firebird5/patches/fix-databases-conf.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
--- a/builds/install/misc/databases.conf 2024-01-11 04:17:47.000000000 +0300
+++ b/builds/install/misc/databases.conf 2024-01-14 05:39:44.684927372 +0300
@@ -17,8 +17,8 @@
#
# Example Database:
#
-employee.fdb = $(dir_sampleDb)/employee.fdb
-employee = $(dir_sampleDb)/employee.fdb
+#employee.fdb = $(dir_sampleDb)/employee.fdb
+#employee = $(dir_sampleDb)/employee.fdb

#
# Master security database specific setup.
Loading

0 comments on commit 3d96117

Please sign in to comment.