unixODBC 2.2.14の利用について

製品ブランド:

Dr.Sum

公開日時:

2014/05/09 11:00

更新日時:

2017/10/05 09:00

記事番号:

000007183

Dr.Sum (旧:Dr.Sum EA) 製品(Linux版)では、Fedora Core で配布されている unixODBC の SRPM に弊社固有のパッチを適用したモジュールを利用しています。

SRPMの取得

 Fedora Core で配布されている unixODBC-2.2.14-2.fc11.src.rpm を利用しています。
 上記 SRPM は Fedor Core の公式サイトから取得可能です。

 http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/11/Fedora/source/SRPMS/

 また、http://rpm.pbone.net/  などのRPMパッケージの検索サイトからも取得が可能です。

SRPMのビルド

1. SRPM のインストール

% sudo rpm -ivh /path/to/SPRM/unixODBC-2.2.14-2.fc11.src.rpm

2.差分の適用

 1) unixODBC.spec にパッチを適用します。

--- unixODBC.spec.fc11 2009-04-02 02:50:47.000000000 +0900
+++ unixODBC.spec 2010-11-18 14:23:28.000000000 +0900
@@ -19,10 +19,11 @@
Patch7: libtool-config.patch
Patch8: so-version-bump.patch
Patch9: keep-typedefs.patch
+Patch10: autoconv-utf8.patch

Conflicts: iodbc
BuildRequires: libX11-devel libXt-devel libXext-devel
-BuildRequires: qt3-devel readline-devel
+BuildRequires: qt-devel readline-devel
BuildRequires: automake autoconf libtool libtool-ltdl-devel bison flex
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

@@ -59,6 +60,7 @@
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1

# Blow away the embedded libtool and replace with build system's libtool.
# (We will use the installed libtool anyway, but this makes sure they match.)

 2) unixODBC 本体へ適用するパッチを配置します。

% sudo cp /path/to/autoconv-utf8.patch /usr/src/redhat/SOURCES
--- unixODBC-2.2.14/DriverManager/__info.c.orig 2008-09-29 23:02:45.000000000 +0900
+++ unixODBC-2.2.14/DriverManager/__info.c 2012-01-19 15:38:46.000000000 +0900
@@ -475,9 +475,9 @@
{
#ifdef HAVE_ICONV
char ascii[ 256 ], unicode[ 256 ];
- char *be_ucode[] = { "UCS-2-INTERNAL", "UCS-2BE", "UCS-2", "ucs2", NULL };
- char *le_ucode[] = { "UCS-2-INTERNAL", "UCS-2LE", NULL };
- char *asc[] = { "char", "ISO8859-1", "ISO-8859-1", "8859-1", "iso8859_1", "ASCII", NULL };
+ char *be_ucode[] = { "UCS-2-INTERNAL", "UTF-16BE", "UCS-2BE", "UCS-2", "ucs2", NULL };
+ char *le_ucode[] = { "UCS-2-INTERNAL", "UTF-16LE", "UCS-2LE", NULL };
+ char *asc[] = { "char", "UTF-8", "ISO8859-1", "ISO-8859-1", "8859-1", "iso8859_1", "ASCII", NULL };
union { long l; char c[sizeof (long)]; } u;
int be;

3. ビルド

 unixODBC のビルドに必要なパッケージは事前にインストールしておいてください。

% sudo rpmbuild -bp /usr/src/redhat/SPEC/unixODBC.spec

注意事項

 当該モジュールのソースコードをご利用する際の注意について。

・Dr.Sum(旧:Dr.Sum EA) 製品を利用するために、当該モジュールを個別にダウンロードし用意していただく必要はありません。
・弊社では、当該モジュールを弊社製品以外で利用する場合においての保証, サポートは行っておりません。
・当該モジュールをお客様が修正, 配布する場合は、LGPLv2 に従ってお客様の責任において行ってください。
・ソースコードの内容などについてのご質問にはお答えいたしかねます。

ライセンス

 LGPLv2 については以下の URL を参照してください。

 http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html

ダウンロード

 unixODBC-2.2.14-2.src.zip(2.2MB)