freetds/freetds.spec

204 lines
6.2 KiB
RPMSpec

#
# spec file for package freetds
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: freetds
Version: 1.4.10
Release: 0
Summary: A free re-implementation of the TDS (Tabular Data Stream) protocol
License: GPL-2.0-or-later AND LGPL-2.1-or-later
URL: https://www.freetds.org/
Source: https://www.freetds.org/files/stable/freetds-%{version}.tar.gz
Source1: baselibs.conf
Patch0: configure-return-void-fix.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: unixODBC-devel
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(krb5-gssapi)
BuildRequires: pkgconfig(nettle)
Requires: glibc-locale
%description
FreeTDS is a project to document and implement the TDS (Tabular Data Stream)
protocol. TDS is used by Sybase and Microsoft for client to database server
communications. FreeTDS includes call level interfaces for DB-Lib, CT-Lib,
and ODBC.
%package config
Summary: A free re-implementation of the TDS (Tabular Data Stream) protocol
License: LGPL-2.1-or-later
Obsoletes: libfreetds < %{version}
Provides: %{name} = %{version}
Provides: libfreetds = %{version}
Obsoletes: %{name} < %{version}
%description config
FreeTDS is a project to document and implement the TDS (Tabular Data Stream)
protocol. TDS is used by Sybase and Microsoft for client to database server
communications.
This subpackage contains default configuration files and documentation for
them.
%package tools
Summary: Applications for working with the TDS (Tabular Data Stream) protocol
License: GPL-2.0-or-later AND LGPL-2.1-or-later
%description tools
FreeTDS is a project to document and implement the TDS (Tabular Data Stream)
protocol. TDS is used by Sybase and Microsoft for client to database server
communications. FreeTDS includes call level interfaces for DB-Lib, CT-Lib,
and ODBC.
This package provides application to allow users to make use of the protocol.
%package devel
Summary: Include files needed for development with FreeTDS
License: LGPL-2.1-or-later
Requires: libct4 = %{version}
Requires: libsybdb5 = %{version}
Requires: libtdsodbc0 = %{version}
%description devel
The freetds-devel package contains the files necessary for development with
the FreeTDS libraries.
%package -n libct4
Summary: FreeTDS standalone driver with modern API
License: LGPL-2.1-or-later
%description -n libct4
ct-lib refers to Sybase's second-generation API, which fixes a number
of implementation and conceptual gaps in db-lib (libsybdb). libct is
not the most complete implementation yet.
%package -n libsybdb5
Summary: FreeTDS standalone driver with classic API
License: LGPL-2.1-or-later
%description -n libsybdb5
db-lib is the oldest and simplest API, and the only API supported by
both vendors, which has some relevance when porting applications that
use the vendors' libraries. db-lib was the first API implemented by
FreeTDS, and is still the best one supported. Anything that can be
done in FreeTDS can be done through db-lib.
%package -n libtdsodbc0
Summary: FreeTDS ODBC Driver for unixODBC
License: LGPL-2.1-or-later
Requires: unixODBC >= 2.0.0
%description -n libtdsodbc0
The ODBC drivers is the FreeTDS's project most recent addition. Its
chief advantage is that it makes FreeTDS servers look like other ODBC
servers, a big help to people who know ODBC and/or write applications
for several kinds of servers.
%package doc
Summary: User documentation for FreeTDS
License: GPL-2.0-or-later AND LGPL-2.1-or-later
%description doc
The freetds-doc package contains the useguide and reference of FreeTDS
and can be installed even if FreeTDS main package is not installed
%prep
%setup -q
%patch0 -p1
%build
%configure \
--with-unixodbc=%{_prefix} \
--enable-threadsafe \
--enable-krb5 \
--sysconfdir=%{_sysconfdir} \
--with-tdsver=auto \
--disable-static \
%if 0%{?suse_version} >= 1310
--with-gnutls \
%endif
--with-pic
%make_build RPM_OPT_FLAGS="%{optflags}"
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
# Fix docu location
install -d %{buildroot}%{_docdir}/freetds
mv %{buildroot}%{_datadir}/doc/freetds/* %{buildroot}%{_docdir}/freetds/
rm -rf %{buildroot}%{_docdir}/freetds* %{buildroot}%{_datadir}/doc/freetds-*
# Fix permissions
find %{buildroot}%{_datadir} -type f -print0 | xargs -0 chmod -x
find %{buildroot}%{_sysconfdir} -type f -print0 | xargs -0 chmod -x
%fdupes %{buildroot}/%{_prefix}
%post -n libct4 -p /sbin/ldconfig
%postun -n libct4 -p /sbin/ldconfig
%post -n libsybdb5 -p /sbin/ldconfig
%postun -n libsybdb5 -p /sbin/ldconfig
%post -n libtdsodbc0
echo "[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = %{_libdir}/libtdsodbc.so.0
Setup = %{_libdir}/libtdsodbc.so.0" | odbcinst -i -d -r || true
echo "[SQL Server]
Description = FreeTDS unixODBC Driver
Driver = %{_libdir}/libtdsodbc.so.0
Setup = %{_libdir}/libtdsodbc.so.0" | odbcinst -i -d -r || true
/sbin/ldconfig
%postun -n libtdsodbc0 -p /sbin/ldconfig
%preun -n libtdsodbc0
odbcinst -u -d -n 'FreeTDS'
odbcinst -u -d -n 'SQL Server'
%files config
%config %{_sysconfdir}/*
%{_mandir}/man5/*.5%{?ext_man}
%files tools
%{_bindir}/*
%{_mandir}/man1/*.1%{?ext_man}
%files devel
%{_libdir}/*.so
%{_includedir}/*
%files -n libct4
%license COPYING*
%{_libdir}/libct.so.4*
%files -n libsybdb5
%license COPYING*
%{_libdir}/libsybdb.so.5*
%files -n libtdsodbc0
%license COPYING*
%{_libdir}/libtdsodbc.so.*
%files doc
%doc AUTHORS.md NEWS.md README.md TODO.md
%changelog