SapDB / MaxDB to FreeBSD Port
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 1 DIED ... i only do -RELEASE testings at the moment
- 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
Progress 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 |
| MaxDB V7.6 port |
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, REPORTED BUGGY (build-421)
ODBC: PORTED, TESTED, WORKING (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.
Meantime, several reports of successful SAPDB usage where given.
Known Bugs (up to -build 570):
- The communication between kernel and the user interface might hang, if you are trying to do a backup in online mode. The backup is finished sucessfully, but the invoker (GUI or CLI) never gets the finish-message. This is only a problem in online mode.
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.
KSE is recommended as the threading system, its noticeable faster, modern and 100% native BSD.
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 (. Environment (bash) or source Environment (csh))
- On recent FreeBSD versions link python2.2 to python
- Include /usr/local/sapdb/depend/bin in your PATH
- ln -s /usr/local/sapdb/depend/config /usr/spool
- mkdir -p /usr/local/sapdb/depend/config
- invoke "gmake all" and wait
- create user sapdb
- chown -R sapdb:sapdb /usr/local/sapdb
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)
|