Java Mailing List Archive

http://www.redhatconfig.com/

Home » Mandriva Cooker »

[Cooker] freetds vs freetds_mssql, dropping freetds_mssql?

Anssi Hannula

2008-06-15

Replies: Find Java Web Hosting

Author LoginPost Reply
Hi!

I see that we have freetds and freetds_mssql packages separately.

The freetds_mssql package contains this:

> cat > README.MDK << EOF
> This package is based on the freetds-0.62.4-5mdk.src.rpm source
> rpm package with only three major differences:
>
> o This package passes "--enable-msdblib" to the configure line
>   while building the software to make it work with MSSQL servers.
>   Sybase uses 0-11 and MSSQL uses 1-12 to define months...
>
> o The freetds-0.63-mssql.diff patch that adds "_mssql" to
>   every library name. This should make it possible to have
>   the plain freetds and the freetds_mssql packages installed
>   at the same time.
>
> o The config, binaries and man page files are renamed to use the
>   _mssql suffix.
> EOF

However, the documentation says it just changes the API, is usually only
needed for porting, and that it only changes the *default* value!:

<clip>
--enable-msdblib

Enable Microsoft behavior in the db-lib API where it diverges from
Sybase's. (For instance, Microsoft uses different names for the members
of its date structure.) Typically needed only for porting Win32
applications to Unix.

As of version 0.63, this option specifies just the default behavior.
Programs can change the default at compile time by defining MSDBLIB or
SYBDBLIB (for Microsoft or Sybase behavior, respectively) .
</clip>

I also confirmed this by grepping the source tree. The three changes are:
1) different names in DBDATEREC structure.
2) dbopen(x,y) assumes 'msdblib' mode, and as mentioned in README.MDK,
dbdatetrack() returns different values for month and week. This only
affects the application<=>freetds API, not the way freetds communicates
with the server
3) #define SQLCHAR SYBCHAR

We have 4 packages depending on freetds[_mssql]-devel:

libdbi-drivers:
- has patch to use freetds_mssql-devel
- does not use DBDATEREC, dbopen, nor SQLCHAR, so it works the same way
with both freetds_mssql and freetds.

php (php-mssql):
- has patch to use freetds_mssql-devel
- uses dbopen()
- defines MSDBLIB, so works the same way with both freetds_mssql and freetds

php-sybase:
- uses freetds-devel

asterisk:
- has patch to use freetds_mssql-devel
- does not use DBDATEREQ, dbopen, nor SQLCHAR, so it works the same way
with both freetds_mssql and freetds.


That said, I don't see any point in keeping freetds_mssql anymore, and I
propose to remove it. I can fix the dependent packages.

Oden or anyone else, any comments?

--
Anssi Hannula
©2008 redhatconfig.com - Jax Systems, LLC, U.S.A.