diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 35156a8008..758432f088 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,35 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-01-09 12:54 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + + Extended Linux deb/rpm sections: + - Added list of base packages + - Listed actual active distro names + - Added pkg install command for various rpm distros + - Added link to webpage containing extensive information + about pkg management commands on different distros + + Added SUNWsvn package for OpenSolaris. + + * harbour.spec + ! Typo in comment. + + Added 'DISCONTINUED' comments to those distros which are + (suprise!) discontinued. + + * contrib/hbwin/wapi_winbase.c + ! Fixed to set internal getlasterror value in WAPI_FORMATMESSAGE(). + Thanks Xavi. + + * contrib/hbwin/wapi_err.c + ! Fixed to include 'hbwapi.h' + Thanks Xavi again. + + * config/global.mk + + Added autodetection of Gentoo Linux package manager. + + * contrib/hbbtree/hb_btree.c + + Added two TOFIX notes. Both reported on the list previously. + 2010-01-09 02:31 UTC+0500 April White (april users.sourceforge.net) * contrib/hbbtree/tbtree.prg * updated copyright date diff --git a/harbour/INSTALL b/harbour/INSTALL index 5b97fabbd9..78e245a288 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -355,16 +355,20 @@ HARBOUR --------------- For contrib/rddads lib: - Download and install 'Advantage Client Engine API for Linux' package - (f.e. aceapi-9.10.0.0.tar.gz) + Download and install 'Advantage Client Engine API for Linux' package + (f.e. aceapi-9.10.0.0.tar.gz) - For contrib/hbhpdf lib (if you don't wish to use locally hosted version): - Download libharu from http://libharu.org/ -> './configure' -> 'make install' + For contrib/hbhpdf lib, if you don't wish to use locally hosted version: + Download libharu from http://libharu.org/ -> './configure' -> 'make install' - Linux (Debian, Ubuntu, .deb based distros) + Linux (.deb based distros: Debian, Ubuntu) ------------------------------------------ (tested with Ubuntu 7.04, 8.04, 9.04, 9.10) + You'll need these base packages to build/package/test/use Harbour: + + $ sudo apt-get install bash subversion gcc binutils fakeroot debhelper valgrind upx + You'll need these packages to compile certain contribs and optional Harbour features: for gtcrs terminal lib: $ sudo apt-get install libncurses-dev @@ -393,43 +397,48 @@ HARBOUR for pcre (regex) support: $ sudo apt-get install libpcre3-dev for contrib/hbsqlit3 lib: $ sudo apt-get install libsqlite3-dev - Linux (openSUSE, .rpm based distros) - ------------------------------------ + Linux (.rpm based distros: openSUSE, Fedora, CentOS, Mandriva) + -------------------------------------------------------------- - [ THIS NEEDS REVIEW BY REAL OPENSUSE USER, PACKAGE NAMES - AND COMMANDS MAY HAVE MISTAKES. ] + You'll need these base packages to build/package/test/use Harbour: + + bash subversion gcc make glibc-devel rpm valgrind You'll need these packages to compile certain contribs and optional Harbour features: - for gtcrs terminal lib: $ sudo zypper install ncurses-devel ncurses - for gtsln terminal lib: $ sudo zypper install slang-devel slang - for gtxwc terminal lib: $ sudo zypper install xorg-x11-devel - $ sudo zypper install XFree86-devel - for console mouse support: $ sudo zypper install gpm-devel OR - sudo zypper install gpm - for contrib/gtalleg lib: $ sudo zypper install allegro-devel - for contrib/hbcairo lib: $ sudo zypper install cairo-devel - for contrib/hbcurl lib: $ sudo zypper install curl-devel - for contrib/hbfbird lib: $ sudo zypper install firebird-devel - for contrib/hbfimage lib: $ sudo zypper install freeimage-devel - for contrib/hbgd lib: $ sudo zypper install gd-devel - for contrib/hbmysql lib: $ sudo zypper install libmysqlclient-devel OR - $ sudo zypper install mysql-devel OR - $ sudo zypper install MySQL-devel - for contrib/hbodbc lib: $ sudo zypper install unixodbc-devel OR - $ sudo zypper install unixODBC-devel - for contrib/hbpgsql lib: $ sudo zypper install postgresql-devel - for contrib/hbqt lib: $ sudo zypper install qt45-devel + for gtcrs terminal lib: ncurses-devel ncurses + for gtsln terminal lib: slang-devel slang + for gtxwc terminal lib: xorg-x11-devel + XFree86-devel + for console mouse support: gpm-devel OR + gpm + for contrib/gtalleg lib: allegro-devel + for contrib/hbcairo lib: cairo-devel + for contrib/hbcurl lib: curl-devel + for contrib/hbfbird lib: firebird-devel + for contrib/hbfimage lib: freeimage-devel + for contrib/hbgd lib: gd-devel + for contrib/hbmysql lib: libmysqlclient-devel OR + mysql-devel OR + MySQL-devel + for contrib/hbodbc lib: unixodbc-devel OR + unixODBC-devel + for contrib/hbpgsql lib: postgresql-devel + for contrib/hbqt lib: qt45-devel - NOTES: - On non-openSUSE rpm based distros, use appropriate command instead of - 'zypper', f.e. 'rpm -i .rpm'. - - If you want to build 32-bit Harbour on a 64-bit host, install above - packages with '-32bit' appended to their names, f.e. 'slang-devel-32bit' + NOTES: - You can use following commands on different distros to install packages: + openSUSE: $ sudo zypper install + Fedora, CentOS: $ sudo yum install + Mandriva: $ sudo urpmi + Check this link for more: + http://distrowatch.com/dwres.php?resource=package-management + - On openSUSE, if you want to build 32-bit Harbour on a 64-bit host, install + above packages with '-32bit' appended to their names, f.e. 'slang-devel-32bit' OpenSolaris ----------- - - $ pkg install SUNWgmake + - $ pkg install SUNWgmake SUNWsvn FreeBSD ------- diff --git a/harbour/config/global.mk b/harbour/config/global.mk index a895cf306e..b58b8e9638 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -1043,6 +1043,8 @@ ifeq ($(HB_HOST_PKGM),) else ifeq ($(HB_PLATFORM),linux) ifneq ($(wildcard /etc/debian_version),) HB_HOST_PKGM += deb + else ifneq ($(wildcard /etc/gentoo-release),) + HB_HOST_PKGM += portage else HB_HOST_PKGM += rpm endif diff --git a/harbour/contrib/hbbtree/hb_btree.c b/harbour/contrib/hbbtree/hb_btree.c index a6a29793c7..505a5f8bbc 100644 --- a/harbour/contrib/hbbtree/hb_btree.c +++ b/harbour/contrib/hbbtree/hb_btree.c @@ -681,6 +681,7 @@ static void Prune( struct hb_BTree * pBTree, ULONG ulNode ) else { hb_fsSeek( pBTree->hFile, ulNode, FS_SET ); + /* TOFIX: Should convert ULONG value to portable binary format with HB_PUT_LE_UINT32() before writing it to disk. */ if ( hb_fsWrite( pBTree->hFile, /*( const BYTE * )*/ &pBTree->ulFreePage, sizeof( pBTree->ulFreePage ) ) != sizeof( pBTree->ulFreePage ) ) { raiseError( EG_WRITE, HB_BTREE_EC_WRITEERROR, "write error", "Prune*", 0 ); @@ -1593,7 +1594,7 @@ struct hb_BTree *hb_BTreeOpen( const char *FileName, ULONG ulFlags, ULONG ulBuff } pHeader += sizeof( HEADER_ID ) - 1; - pHeader += sizeof( ( UINT32 ) HB_BTREE_HEADERSIZE ); + pHeader += sizeof( ( UINT32 ) HB_BTREE_HEADERSIZE ); /* TOFIX: This looks suspicious, is it really what's intended? */ pBTree->usPageSize = ( UINT16 ) HB_GET_LE_UINT32( pHeader ); pHeader += 4; pBTree->usKeySize = ( UINT16 ) HB_GET_LE_UINT32( pHeader ); pHeader += 4; pBTree->usMaxKeys = ( UINT16 ) HB_GET_LE_UINT32( pHeader ); pHeader += 4; diff --git a/harbour/contrib/hbwin/wapi_err.c b/harbour/contrib/hbwin/wapi_err.c index 4c18711f2d..21c5f138e1 100644 --- a/harbour/contrib/hbwin/wapi_err.c +++ b/harbour/contrib/hbwin/wapi_err.c @@ -53,6 +53,7 @@ #define HB_OS_WIN_USED #include "hbapi.h" +#include "hbwapi.h" #include "hbstack.h" typedef struct diff --git a/harbour/contrib/hbwin/wapi_winbase.c b/harbour/contrib/hbwin/wapi_winbase.c index 9aa6fb1d6c..0c7734078a 100644 --- a/harbour/contrib/hbwin/wapi_winbase.c +++ b/harbour/contrib/hbwin/wapi_winbase.c @@ -267,13 +267,16 @@ HB_FUNC( WAPI_FORMATMESSAGE ) lpBuffer = nBufferLen > 0 ? ( LPTSTR ) hb_xgrab( nBufferLen * sizeof( TCHAR ) ) : NULL; - hb_retnl( dwRetVal = FormatMessage( ( DWORD ) hb_parnldef( 1, FORMAT_MESSAGE_FROM_SYSTEM ) /* dwFlags */, - HB_ISCHAR( 2 ) ? ( LPCVOID ) HB_PARSTR( 2, &hSource, NULL ) : hb_parptr( 2 ), - HB_ISNUM( 3 ) ? ( DWORD ) hb_parnl( 3 ) : GetLastError() /* dwMessageId */, - ( DWORD ) hb_parnldef( 4, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ) ) /* dwLanguageId */, - lpBuffer, - ( DWORD ) nBufferLen, - NULL /* TODO: Add support for this parameter. */ ) ); + dwRetVal = FormatMessage( ( DWORD ) hb_parnldef( 1, FORMAT_MESSAGE_FROM_SYSTEM ) /* dwFlags */, + HB_ISCHAR( 2 ) ? ( LPCVOID ) HB_PARSTR( 2, &hSource, NULL ) : hb_parptr( 2 ), + HB_ISNUM( 3 ) ? ( DWORD ) hb_parnl( 3 ) : GetLastError() /* dwMessageId */, + ( DWORD ) hb_parnldef( 4, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ) ) /* dwLanguageId */, + lpBuffer, + ( DWORD ) nBufferLen, + NULL /* TODO: Add support for this parameter. */ ); + + hbwapi_SetLastError( GetLastError() ); + hb_retnl( dwRetVal ); if( lpBuffer ) { diff --git a/harbour/harbour.spec b/harbour/harbour.spec index 3cdc519f9c..4406f0d974 100644 --- a/harbour/harbour.spec +++ b/harbour/harbour.spec @@ -14,23 +14,28 @@ ## Definitions. ###################################################################### -# please add your distro suffix if it not belong to the one recognized below +# please add your distro suffix if it does not belong to the ones recognized below # and remember that order checking can be important %define platform %(release=$(rpm -q --queryformat='%{VERSION}' mandriva-release-common 2>/dev/null) && echo "mdv$release"|tr -d ".") %if "%{platform}" == "" +# DISCONTINUED %define platform %(release=$(rpm -q --queryformat='%{VERSION}' mandrake-release 2>/dev/null) && echo "mdk$release"|tr -d ".") %if "%{platform}" == "" +# DISCONTINUED %define platform %(release=$(rpm -q --queryformat='%{VERSION}' redhat-release 2>/dev/null) && echo "rh$release"|tr -d ".") %if "%{platform}" == "" %define platform %(release=$(rpm -q --queryformat='%{VERSION}' fedora-release 2>/dev/null) && echo "fc$release"|tr -d ".") %if "%{platform}" == "" +# DISCONTINUED %define platform %(release=$(rpm -q --queryformat='%{VERSION}' suse-release 2>/dev/null) && echo "sus$release"|tr -d ".") %if "%{platform}" == "" %define platform %(release=$(rpm -q --queryformat='%{VERSION}' openSUSE-release 2>/dev/null) && echo "sus$release"|tr -d ".") %if "%{platform}" == "" +# DISCONTINUED %define platform %(release=$(rpm -q --queryformat='%{VERSION}' conectiva-release 2>/dev/null) && echo "cl$release"|tr -d ".") %if "%{platform}" == "" +# DISCONTINUED %define platform %(release=$(rpm -q --queryformat='%{VERSION}' aurox-release 2>/dev/null) && echo "aur$release"|tr -d ".") %if "%{platform}" == "" %define platform %([ -f /etc/pld-release ] && cat /etc/pld-release|sed -e '/1/ !d' -e 's/[^0-9]//g' -e 's/^/pld/')