SapDB for FreeBSD
I-a.) Disclaimer
I am NOT responsible for ANY harm, you do to your servers, data or anything, by using this howto / scripts and/or binaries.
Suggestions, HELP and ANY useful informations are welcome at sapdb@komadev.de
All registered trademarks and logos are property of their respective owner(s).
I-b.) Wanted :
People interested in porting SAPDB, giving FreeBSD a powerful FREE database system.
Do YOU :
(Speak German || English ) && have time && do it voluntary && ( code C/C++ || have FreeBSD system knowledge || even have FreeBSD kernel / threading knowledge || come from SAP or coded for SAP )
Contact me at sapdb@komadev.de
Overview / General Informations :
Porting SAPDB began on 17/12/2002 with SAPDB 7.3.0 on FREEBSD 5.0 The port is done on FreeBSD 5.x because it seems to be the future FreeBSD System. Chances for a backport to 4.x are high, as long as we are using the oversized linuxthreads.
Development environment looks like :
- System 1) FreeBSD 5.2-CURRENT (2003-Jul-30)
- System 1) AMD Duron 1300 CPU / 1024 MB RAM
- System 1) gcc version 3.2.3
- System 1) kse (Kernel Scheduling Entities / kernel threads)
- System 2) FreeBSD 5.2-RELEASE
- System 2) AMD Athlon XP2400 CPU / 512 MB RAM
- System 2) gcc version 3.2.1 [FreeBSD] 20021119 (release)
- System 2) kse (Kernel Scheduling Entities / kernel threads)
- perl, v5.6.1 built for i386-freebsd
- Python 2.2.2
- gmake 3.8
Still To Do:
ToDo List
| Job Description |
in progress |
not started |
|
Native FreeBSD threading based on the kse facility. |
done |
|
|
Application tests against SapDB |
X |
|
|
Create and use native current DevTools |
X |
|
|
Minor bugfixing to achieve a "release"-level |
X |
|
|
Quality Assurance Tests |
X |
|
|
Port update from SAPDB 7.4.3.10 to 7.4.3.27 |
done |
|
|
Test of the client drivers |
X |
|
|
Running as user "sapdb" instead of "root" |
done |
|
|
CVS Source Import |
|
X |
|
Source Patch File |
done |
|
|
"FreeBSD-Port" generation |
X |
|
|
"FreeBSD-Package" generation |
X |
|
|
SAPs Single and Multi-User tests |
|
X |
| Performance tests + optimizations |
|
X |
I.) Port of the SAPDB Development Tools
Compiled binary package can be downloaded on the => Download page
Since 7.4.3.25, we use the linux-devtools patched with FreeBSD compiled libraries. ! linux_base-7 or linux_base-7 required !
II.) Port of the SAPDB Client Drivers
The port of the ALL client drivers (but untested, thus beta)
Perl : PORTED, TESTED, WORKING (build-421)
ODBC: PORTED, TESTED, WOORKING (build-421)
JAVA: PORTED, NOT TESTED
PYTHON: PORTED, TESTED, WORKING (build-421)
Please report sucessful tests ! (Unsucessful too ;)
III.) Port of the SAPDB Server
The port is so far usable for the first steps. Get a beta preview in the Download area.
Already Tested and Working in the Beta Version (Build-421) :
- Database instance creation
- Database backup to file with DBMGui
- Database restore from file with DBMGui
- Database-User creation
- Table creation
- INSERT/DELETE/SELECT Queries against tables
- Connecting with a SAPDB-ODBC client
- Using AutoLog
- Redo Logs (on system crash)
- mnoGoSearch 3.1.2, the powerful DB based web search engine
- SapDB compiled against libkse (native kernel threads in FreeBSD 5.1+)
Attention FreeBSD 5.1 users :
In general its advised to use a FreeBSD 5.2-RELEASE or newer.
Due to a mismatch between linuxthreads and libc in FreeBSD 5.1, the system creates an infinite loop, rendering the database system unusable.
Please use kernel threads (libkse) versions (build-516 or higher) only, which also should run faster than the linuxthreaded version.
Important : The kernel threaded version is linked against libc_r, which is normaly using standart threading, thus leading to database unusable (you will get a 100% load, and nothing else).
To make the sapdb use libkse, you can
-
link libc_r.so to libkse.so (not recomended)
-
recompile rtld, by doing #cd /usr/src/libexec/rtld-elf #make clean; make depend && make -DWITH_LIBMAP && make install
and then add the entries
libc_r.so.5 libkse.so.1 libc_r.so libkse.so to your /etc/libmap.conf.
Furthermore, when using kernel threads (libkse), you should be running a FreeBSD 5.1-CURRENT from September or later, as the kernel threading facility is still under development.
IV.) Getting the sources
The source patch file for Version 7.4.03.27 is available on the Download Page
V.) Building the sources
Requirements :
- FreeBSD 5.1, FreeBSD 5.2-RELEASE or newer recommended
- linux_base 7
- python 2.2
- wget
Howto build :
- Get the "Source build devtools", containing an autoconf script for a simple build process
- unpack the devtools
- invoke "./configure"
- say yes when your are asked to download the sources and the patches
- files are now downloaded, the sources are patched and a Makefile is created
- source in the file Environment
- invoke "gmake all"
Known Problems to be solved for a "FreeBSD-port" :
- use fetch instead of wget
- check for python 2.2 (add BUILD_DEPEND to lang/python22)
- the "Environment" file should become part of the Makfile
- "gmake all" currently builds directly to /usr/local/sapdb, it should be building to a temp folder, and be moved there on "gmake install"
- more autoconf interfaces for customizing the build
- native devtools
- get rid of the "binary patch", containing a python binary and some desc files yet.
- more Makefile targets (i.e. for building the client drivers only)
|