# -*- 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           codeberg 1.0
PortGroup           meson 1.0

codeberg.setup      valos Komikku 50.11.0 v
name                [string tolower ${codeberg.project}]
revision            0
categories          gnome graphics manga net
license             GPL-3+
maintainers         {@barracuda156 macos-powerpc.org:barracuda} openmaintainer

description         Manga reader for GNOME
long_description    {*}${description}
checksums           rmd160  5db6ef5e6a389397b92355fb51667b0877c45460 \
                    sha256  d7d640180ef28ce424e5c962ba40a15e80f1ef3914a149de5403f4bc48cb5db8 \
                    size    4899761

meson.wrap_mode     nodownload

set py_ver          3.14
set py_ver_nodot    [string map {. {}} ${py_ver}]

configure.python    ${prefix}/bin/python${py_ver}

# FIXME: some providers may not work correctly (not specific to powerpc):
# https://codeberg.org/valos/Komikku/issues/860

patchfiles-append   0001-fix-meson.build.patch

# https://codeberg.org/valos/Komikku/issues/847
# Webview patch generated by the script:
# https://codeberg.org/valos/Komikku/src/commit/fd6e4fa7a2d6072ec8481b89c350c2df79693e98/scripts/remove_webview.py
patchfiles-append   0002-Remove-WebView.patch

post-patch {
    reinplace "s|@PYTHON@|${configure.python}|" ${worksrcpath}/meson.build
}

depends_build-append \
                    port:appstream-glib \
                    port:blueprint-compiler \
                    path:bin/pkg-config:pkgconfig

# This is to avoid a conflict with py-urllib3-future port:
set urllib_path     ${frameworks_dir}/Python.framework/Versions/${py_ver}/lib/python${py_ver}/site-packages/urllib3

depends_lib-append  path:lib/pkgconfig/cairo.pc:cairo \
                    path:lib/pkgconfig/gdk-pixbuf-2.0.pc:gdk-pixbuf2 \
                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    path:lib/pkgconfig/gobject-introspection-1.0.pc:gobject-introspection \
                    port:graphene \
                    path:lib/pkgconfig/gtk4.pc:gtk4 \
                    path:lib/pkgconfig/libadwaita-1.pc:libadwaita \
                    port:libnotify \
                    path:lib/pkgconfig/libsoup-3.0.pc:libsoup \
                    path:lib/pkgconfig/pango.pc:pango \
                    port:py${py_ver_nodot}-beautifulsoup4 \
                    port:py${py_ver_nodot}-brotli \
                    port:py${py_ver_nodot}-colorthief \
                    port:py${py_ver_nodot}-cryptography \
                    port:py${py_ver_nodot}-dateparser \
                    port:py${py_ver_nodot}-ebooklib \
                    port:py${py_ver_nodot}-emoji \
                    port:py${py_ver_nodot}-gobject3 \
                    port:py${py_ver_nodot}-jwt \
                    port:py${py_ver_nodot}-jxlpy \
                    port:py${py_ver_nodot}-keyring \
                    port:py${py_ver_nodot}-lxml \
                    port:py${py_ver_nodot}-magic \
                    port:py${py_ver_nodot}-natsort \
                    port:py${py_ver_nodot}-piexif \
                    port:py${py_ver_nodot}-Pillow \
                    port:py${py_ver_nodot}-pypdf \
                    port:py${py_ver_nodot}-rarfile \
                    port:py${py_ver_nodot}-regex \
                    port:py${py_ver_nodot}-requests \
                    port:py${py_ver_nodot}-tzlocal \
                    port:py${py_ver_nodot}-unidecode \
                    path:${urllib_path}/__init__.py:py${py_ver_nodot}-urllib3

depends_run-append  port:dbus \
                    port:desktop-file-utils \
                    port:gsettings-desktop-schemas \
                    port:hicolor-icon-theme \
                    port:webp-pixbuf-loader

# https://codeberg.org/valos/Komikku/src/commit/d7392404125e43e66f49ad22425f5a66618f4b03/requirements-optional.txt
# On 10.5 curl-impersonate does not yet build. 10.6 ppc is good.
if {${os.platform} ne "darwin" && ${os.major} > 9} {
    depends_run-append \
                    port:py${py_ver_nodot}-curl-cffi
}

configure.args-append \
                    -Dprofile=default

post-activate {
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/gtk4-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}

# GTK4 is broken by design, and its upstream sees no problem in that.
# This is not powerpc-specific and affects x86_64 and arm64 as well.
# https://trac.macports.org/ticket/70137
notes "
As a workaround for a bug in GTK4, please export GSK_RENDERER=cairo to the environment,\
otherwise GUI may crash on launch.\
You may also need to run DBus sesstion from a non-root user:
launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist
"
