# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem      1.0
PortGroup       gobject_introspection 1.0
PortGroup		openssl 1.0

openssl.branch	1.0

name            libgda4
set gname       libgda
version         4.2.13
revision        9
license         {GPL-2 LGPL}

set branch      [join [lrange [split ${version} .] 0 1] .]
description     GDA provides uniform access to different kinds of data sources
long_description \
                GNU Data Access (GDA) is an attempt to provide \
                uniform access to different kinds of data sources \
                (databases, information servers, mail spools etc). This is a legacy \
                version that provides library support for ports that have not yet \
                upgraded to the current stable version. For new development and/or \
                GTK+ GUI tools please install libgda5 instead.

maintainers     nomaintainer
categories      databases gnome
homepage        https://www.gnome-db.org
distname        libgda-${version}
master_sites    gnome:sources/${gname}/${branch}/
use_xz          yes

checksums       rmd160  f487af2620fc241e6608a80b863b40a81ea3c548 \
                sha256  25b75951f8f38fd58a403389566a0aae2f83b39d4225bc3acf5f2d68895ab4c3 \
                size    11247816

depends_build   port:autoconf \
                port:automake \
                port:gnome-common \
                port:gnome-doc-utils \
                port:gtk-doc \
                port:intltool \
                port:libtool \
                path:bin/perl:perl5 \
                path:bin/pkg-config:pkgconfig

configure.env	INTLTOOL_PERL=${prefix}/bin/perl5

depends_lib     port:desktop-file-utils \
                port:iso-codes \
                port:libgcrypt \
                path:lib/pkgconfig/libsoup-2.4.pc:libsoup \
                port:libtool \
                port:libunique \
                port:libxslt \
                port:readline

gobject_introspection yes

patchfiles      patch-bdb.diff \
                patch-libgda_gda-data-select.c.diff \
                patch-G_TYPE_ERROR.diff \
                patch-introspection-1.36.diff \
                patch-gir-warnings.diff

# reconfigure using upstream autogen.sh for intltool 0.51 compatibility

post-patch {
    xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath}
}

configure.cmd   ./autogen.sh

# use embedded libsqlite3 rather than the system version
# to avoid dlopen 'Can't find file libsqlite3.so' errors
#
# since this is a legacy version of libgda, disable the
# gtk ui which conflicts with current version libgda5

configure.args  --disable-gdaui-gi \
                --disable-silent-rules \
                --enable-gda-gi \
                --enable-system-sqlite=no \
                --with-firebird \
                --without-bdb \
                --without-gnome-keyring \
                --without-graphviz \
                --without-java \
                --without-jni \
                --without-mysql \
                --without-oracle \
                --without-postgres \
                --without-ui

variant with_mysql5 \
    description {support for current MySQL 5.x} {
    depends_lib-append  path:bin/mysql_config5:mysql5
    configure.env-append    \
        MYSQL_CONFIG=${prefix}/lib/mysql5/bin/mysql_config
    configure.args-delete   --without-mysql
    configure.args-append   --with-mysql=${prefix}/lib/mysql5
    configure.cppflags-append   "-I${prefix}/include/mysql5/mysql"
}

variant with_postgresql83 conflicts with_postgresql84 with_postgresql90 \
    description {support for PostgreSQL 8.3.x} {
    configure.cppflags-append   "-I${prefix}/include/postgresql83"
    depends_lib-append  port:postgresql83
    configure.args-delete   --without-postgres
    configure.args-append   --with-postgres=${prefix}/lib/postgresql83
}

variant with_postgresql84 conflicts with_postgresql83 with_postgresql93 \
    description {support for PostgreSQL 8.4.x} {
    configure.cppflags-append   "-I${prefix}/include/postgresql84"
    depends_lib-append  port:postgresql84
    configure.args-delete   --without-postgres
    configure.args-append   --with-postgres=${prefix}/lib/postgresql84
}

variant with_postgresql93 conflicts with_postgresql83 with_postgresql84 \
    description {support for PostgreSQL 9.3.x} {
    configure.cppflags-append   "-I${prefix}/include/postgresql90"
    depends_lib-append  port:postgresql93
    configure.args-delete   --without-postgres
    configure.args-append   --with-postgres=${prefix}/lib/postgresql93
}

variant db47 conflicts db48 db53  \
    description {support for Berkeley DB 4.7.x} {
    set db_version 47
    depends_lib-append  port:db${db_version}
    configure.cppflags-append "-I${prefix}/include/db${db_version}"
    configure.args-delete   --without-bdb
    configure.args-append   --with-bdb=${prefix} \
                            --with-bdb-libdir-name=lib/db${db_version}
}

variant db48 conflicts db47 db53 \
    description {support for Berkeley DB 4.8.x} {
    set db_version 48
    depends_lib-append  port:db${db_version}
    configure.cppflags-append "-I${prefix}/include/db${db_version}"
    configure.args-delete   --without-bdb
    configure.args-append   --with-bdb=${prefix} \
                            --with-bdb-libdir-name=lib/db${db_version}
}

variant db53 conflicts db47 db48 \
    description {support for Berkeley DB 5.3.x} {
    set db_version 53
    depends_lib-append  port:db${db_version}
    configure.cppflags-append "-I${prefix}/include/db${db_version}"
    configure.args-delete   --without-bdb
    configure.args-append   --with-bdb=${prefix} \
                            --with-bdb-libdir-name=lib/db${db_version}
}

if {![variant_isset db47] && ![variant_isset db48]} {
    default_variants +db53
}

# delete non-versioned symbolic links to version specific binaries
# and man pages to avoid conflicts with other libgda versions

post-destroot {
    delete ${destroot}${prefix}/bin/gda-list-config
    delete ${destroot}${prefix}/bin/gda-list-server-op
    delete ${destroot}${prefix}/bin/gda-sql
    delete ${destroot}${prefix}/share/man/man1/gda-sql.1
}

post-activate {
    system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
}

livecheck.type gnome
livecheck.name ${gname}
livecheck.regex {LATEST-IS-(4\.\d*[02468](?:\.\d+)*)}
