sitemap  |  contact  |  about us  



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)

 

 

» External Links

FreeBSD Homepage

[Mehr]

FreeBSD KSE

[Mehr]

SAP DB Homepage

[Mehr]



» Internal Links

Downloads

[Mehr]