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

PortSystem          1.0
PortGroup           active_variants 1.1
PortGroup           legacysupport 1.1
PortGroup           meson 1.0

# O_CLOEXEC, openat
legacysupport.newest_darwin_requires_legacy 13

name                tracker3-miners
version             3.11.1
revision            0
categories          gnome sysutils
maintainers         nomaintainer
license             LGPL-2.1+
set branch          [join [lrange [split ${version} .] 0 1] .]
description         Collection of data extractors for Tracker-3
long_description    {*}${description}
set real_name       localsearch
homepage            https://wiki.gnome.org/Projects/Tracker
master_sites        gnome:sources/${real_name}/${branch}/
distname            ${real_name}-${version}
use_xz              yes

checksums           rmd160  3e700814d1f027fd3f72d87f12223fc410b2827d \
                    sha256  7b39a6c28a8acf2b172f15b2fb5ee7c7a3764c447c2f4a14caa239b7ebe61942 \
                    size    4505604

meson.wrap_mode     nodownload

patchfiles          patch-SOCK_CLOEXEC.diff

set py_ver          3.14
set py_ver_nodot    [string map {. {}} ${py_ver}]
configure.python    ${prefix}/bin/python${py_ver}

post-patch {
    fs-traverse f ${worksrcpath} {
        if {[string match *.py ${f}]} {
            reinplace -q "s|/usr/bin/python3$|${configure.python}|" ${f}
            reinplace -q "s|/usr/bin/env python3$|${configure.python}|" ${f}
        }
    }
}

set ffmpeg_ver      7

depends_build-append \
                    port:asciidoc \
                    path:libexec/gnubin/sha256sum:coreutils \
                    port:gettext \
                    port:itstool \
                    port:libxslt \
                    path:bin/pkg-config:pkgconfig \
                    port:python${py_ver_nodot} \
                    path:bin/vala:vala

depends_lib-append  port:bzip2 \
                    port:dbus \
                    port:e2fsprogs \
                    port:enca \
                    port:exempi \
                    port:ffmpeg${ffmpeg_ver} \
                    port:gettext-runtime \
                    port:gexiv2 \
                    port:giflib \
                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    path:lib/pkgconfig/gobject-introspection-1.0.pc:gobject-introspection \
                    port:gstreamer1-gst-libav \
                    port:gstreamer1-gst-plugins-bad \
                    port:gstreamer1-gst-plugins-base \
                    port:gstreamer1-gst-plugins-good \
                    port:gstreamer1-gst-plugins-ugly \
                    path:lib/pkgconfig/icu-uc.pc:icu \
                    port:json-glib \
                    port:libcue \
                    port:libexif \
                    port:libgrss \
                    port:libgsf \
                    port:libiptcdata \
                    path:include/turbojpeg.h:libjpeg-turbo \
                    port:libosinfo \
                    port:libpng \
                    port:libxml2 \
                    port:libzip \
                    path:lib/libuuid.dylib:ossp-uuid \
                    path:lib/pkgconfig/poppler.pc:poppler \
                    port:taglib \
                    port:tiff \
                    port:tinysparql \
                    port:totem-pl-parser \
                    port:webp

depends_run         port:desktop-file-utils

# src/tracker/tracker-main.c:29:10: fatal error: 'gio/gdesktopappinfo.h' file not found
require_active_variants path:lib/pkgconfig/glib-2.0.pc:glib2 x11

configure.pkg_config_path \
                    ${prefix}/libexec/ffmpeg${ffmpeg_ver}/lib/pkgconfig

# It does not build with C99 compiler.
# tracker-sparql-grammar.h:496: error: redefinition of typedef ‘TrackerGrammarRule’
compiler.c_standard 2011

set bins            ${prefix}/libexec/ffmpeg${ffmpeg_ver}/bin:${prefix}/libexec/gnubin:${prefix}/bin:${prefix}/sbin:/usr/bin:/usr/sbin:/bin:/sbin

configure.env-append \
                    PATH=${bins}

configure.args-append \
                    -Dbattery_detection=none \
                    -Dfunctional_tests=false \
                    -Dsandbox_tests=false \
                    -Dsystemd_user_services=false \
                    -Dxps=disabled

build.env-append    PATH=${bins}

post-activate {
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}

livecheck.type      gnome
