<pre style='margin:0'>
Vincent (Veence) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6ffdc8c3a92681b7c1abff7d9d54ed8489823db8">https://github.com/macports/macports-ports/commit/6ffdc8c3a92681b7c1abff7d9d54ed8489823db8</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 6ffdc8c  qgis3: initial commit (from svn — 2.99)
</span>6ffdc8c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 6ffdc8c3a92681b7c1abff7d9d54ed8489823db8
</span>Author: Veence <vince@macports.org>
AuthorDate: Fri Dec 1 20:40:52 2017 +0100

<span style='display:block; white-space:pre;color:#404040;'>    qgis3: initial commit (from svn — 2.99)
</span>---
 gis/qgis3/Portfile                                 | 191 +++++++++++++++++++++
 gis/qgis3/files/patch-PyQtMacros.diff              |  15 ++
 gis/qgis3/files/patch-app_info_plist_in.diff       |  24 +++
 .../files/patch-python_core_conversions_sip.diff   | 182 ++++++++++++++++++++
 4 files changed, 412 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/Portfile b/gis/qgis3/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9a225e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,191 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake   1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github  1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           qt5     1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                qgis3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set commit          1c1de3a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        qgis QGIS ${commit}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2.99.20171201
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          gis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         vince
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         QGIS 3 is a user-friendly GIS based on Qt 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    QGIS is a GIS. It can visualize, inject data into\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    PostGres/PostGIS, or serve as a Qt front-end to\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Grass. Extended with Python plugins, it can become\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    a quite powerful GIS of its own.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            http://www.qgis.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-app_info_plist_in.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                    patch-PyQtMacros.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  a3d9d07479c61da4ce96e6e645eaf9a23c294c65 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  61d69356a7c53b201d733c1eb6e366c13f181bc022a7429fc17e38418e07bec0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir          QGIS-${commit}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  port:libiconv \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:expat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libzip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:proj \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:geos \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gdal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gsl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:fcgi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:spatialindex \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:postgis2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:qtkeychain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bison \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ld64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# QWT must be built with qt5 dependency
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+require_active_variants qwt61 qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "mkdir build"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -E "s|@@@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/mac/app.info.plist.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#    reinplace -E "s|Clang|AppleClang|" ${worksrcpath}/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Handle legacy OS/XCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp $xcodeversion 4.6.3] <= 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.compiler  llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Python related stuff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DWITH_GRASS=OFF"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DWITH_GRASS7=OFF"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DWITH_QWTPOLAR=FALSE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.args-append  "--trace"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver              3.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set Py_FRM              ${frameworks_dir}/Python.framework/Versions/${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.ldflags       "-Wl,-rpath,${prefix}/libexec/qt5/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DWITH_3D=ON"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DWITH_GLOBE=OFF"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DLIBZIP_CONF_INCLUDE_DIR=${prefix}/lib/pkgconfig"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DPYTHON_EXECUTABLE=${prefix}/bin/python${py_ver}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DWITH_BINDINGS=FALSE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQCA_INCLUDE_DIR=${prefix}/libexec/qt5/include/QtCrypto"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQCA_LIBRARY=${prefix}/libexec/qt5/lib/libqca-qt5.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQSCINTILLA_INCLUDE_DIR=${prefix}/libexec/qt5/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQSCINTILLA_LIBRARY=${prefix}/libexec/qt5/lib/libqscintilla2_qt5.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQWT_LIBRARY=${prefix}/libexec/qt5/lib/libqwt.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQWT_INCLUDE_DIR=${prefix}/libexec/qt5/lib/qwt.framework/Versions/6/Headers"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DQT_LRELEASE_EXECUTABLE=${prefix}/libexec/qt5/bin/lrelease"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Server does not build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   "-DWITH_SERVER=FALSE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append      port:python36 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:py36-pyqt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:py36-qscintilla-qt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qt5-qtwebkit \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qt5-qtscript \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qt5-sqlite-plugin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qca-qt5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qca-qt5-ossl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:py36-gdal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qwt61 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:qjson-qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append    port:py36-sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run-append      port:py36-psycopg2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:py36-requests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Database variants (from the GDAL port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set postgresql_suffixes {95 96 10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set portsgresql_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend portsgresql_variants postgresql${s}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set p postgresql${s}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set v [string index ${s} 0].[string index ${s} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set i [lsearch -exact ${portsgresql_variants} ${p}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set c [lreplace ${portsgresql_variants} ${i} ${i}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval [subst {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant ${p} description "Enable PostgreSQL ${v} support" conflicts ${c} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_lib-append      port:${p}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-append   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-DPOSTGRES_CONFIG=${prefix}/lib/${p}/bin/pg_config"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# postgresql default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pgd "if {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pgd "${pgd}!\[variant_isset postgresql${s}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pgd [string range ${pgd} 0 end-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pgd "${pgd}} { default_variants +postgresql10 }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+eval ${pgd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant grass               description "Build Grass 7 plugin" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append      port:grass7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete  "-DWITH_GRASS7=OFF"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append  "-DWITH_GRASS7=ON"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "-DGRASS_PREFIX7=${prefix}/share/grass-7.2.2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.dir               ${worksrcpath}/build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cmd               cmake ..
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DCMAKE_CXX_COMPILER=${configure.cxx}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DCMAKE_C_COMPILER=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DEXPAT_INCLUDE_DIR=${prefix}/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DCMAKE_INSTALL_PREFIX=${applications_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DQGIS_MACAPP_BUNDLE=0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGDAL_CONFIG=${prefix}/bin/gdal-config"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGDAL_INCLUDE_DIR=${prefix}/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGDAL_LIBRARY=${prefix}/lib/libgdal.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGEOS_CONFIG=${prefix}/bin/geos-config"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGEOS_INCLUDE_DIR=${prefix}/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGEOS_LIBRARY=${prefix}/lib/libgeos_c.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DGSL_CONFIG=${prefix}/bin/gsl-config"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DPROJ_INCLUDE_DIR=${prefix}/include"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DPROJ_LIBRARY=${prefix}/lib/libproj.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "-DSPATIALINDEX_LIBRARY=${prefix}/lib/libspatialindex.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#configure.args-append  "-DCMAKE_BUILD_TYPE=DEBUG"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append  "-DCMAKE_BUILD_TYPE=RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # qgis_bench app doesn’t link properly. Who uses this anyway????
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${destroot}/Applications/MacPorts/QGIS.app/Contents/MacOS/bin "rm -rf qgis_bench.app"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build          yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.dir                   ${worksrcpath}/build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.target             install
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/files/patch-PyQtMacros.diff b/gis/qgis3/files/patch-PyQtMacros.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c4d720a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/files/patch-PyQtMacros.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/PyQtMacros.cmake.old     2016-03-09 10:31:17.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/PyQtMacros.cmake 2016-03-09 10:31:53.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,9 +9,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SET(PYUIC_PROG_NAMES pyuic5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SET(PYRCC_PROG_NAME pyrcc5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE(ENABLE_QT5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SET(PYUIC_PROG_NAME pyuic4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SET(PYUIC_PROG_NAMES python2-pyuic4 pyuic4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SET(PYRCC_PROG_NAME pyrcc4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(PYUIC_PROG_NAME pyuic4-2.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(PYUIC_PROG_NAMES python2-pyuic4 pyuic4-2.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SET(PYRCC_PROG_NAME pyrcc4-2.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ENDIF(ENABLE_QT5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IF(NOT PYUIC_PROGRAM)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/files/patch-app_info_plist_in.diff b/gis/qgis3/files/patch-app_info_plist_in.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4a9be79
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/files/patch-app_info_plist_in.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mac/app.info.plist.in.orig     2014-04-10 11:12:31.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mac/app.info.plist.in  2014-04-10 11:14:33.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +26,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <string>6.0</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <key>CSResourcesFileMapped</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <true/>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    <key>LSEnvironment</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    <dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>PATH</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>/bin:/usr/bin:/usr/sbin:@@@/bin:@@@/sbin</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>GRASS_SH</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>/bin/sh</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>GRASS_PROJSHARE</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>@@@/lib/proj47/share/proj</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>GRASS_VERSION</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>7.2.2</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>GRASS_LD_LIBRARY_PATH</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>@@@/share/grass-7.2.2/lib</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <key>GRASS_PERL</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        <string>@@@/bin/perl</string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    </dict>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <key>CFBundleDocumentTypes</key>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   <array>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           <dict>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/qgis3/files/patch-python_core_conversions_sip.diff b/gis/qgis3/files/patch-python_core_conversions_sip.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9a26e8e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/qgis3/files/patch-python_core_conversions_sip.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,182 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- python/core/conversions.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ python/core/conversions.sip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2041,3 +2041,178 @@ register_from_qvariant_convertor = (void (*)(FromQVariantConvertorFn))sipImportS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ register_from_qvariant_convertor(null_from_qvariant_convertor);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// QList<QVariant> is implemented as a Python list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%MappedType QList<QVariant> /TypeHintIn="Sequence[QVariant]", TypeHintOut="List[QVariant]", TypeHintValue="[]"/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <qlist.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertFromTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Create the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PyObject *l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((l = PyList_New(sipCpp->size())) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Set the list elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (int i = 0; i < sipCpp->size(); ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QVariant *t = new QVariant(sipCpp->at(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyObject *tobj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if ((tobj = sipConvertFromNewType(t, sipType_QVariant, sipTransferObj)) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            Py_DECREF(l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            delete t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyList_SET_ITEM(l, i, tobj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertToTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SIP_SSIZE_T len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Check the type if that is all that is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (sipIsErr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            bool ok = (itm && sipCanConvertToType(itm, sipType_QVariant, SIP_NOT_NONE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            Py_XDECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if (!ok)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QList<QVariant> *ql = new QList<QVariant>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    len = PySequence_Size(sipPy);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        int state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QVariant *t = reinterpret_cast<QVariant *>(sipConvertToType(itm, sipType_QVariant, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        Py_DECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (*sipIsErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sipReleaseType(t, sipType_QVariant, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            delete ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ql->append(*t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sipReleaseType(t, sipType_QVariant, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *sipCppPtr = ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return sipGetState(sipTransferObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// QList<QPolygonF> is implemented as a Python list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%MappedType QList<QPolygonF> /TypeHintIn="Sequence[QPolygonF]", TypeHintOut="List[QPolygonF]", TypeHintValue="[]"/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%TypeHeaderCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <qlist.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertFromTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Create the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PyObject *l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((l = PyList_New(sipCpp->size())) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Set the list elements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (int i = 0; i < sipCpp->size(); ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QPolygonF *t = new QPolygonF(sipCpp->at(i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyObject *tobj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if ((tobj = sipConvertFromNewType(t, sipType_QPolygonF, sipTransferObj)) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            Py_DECREF(l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            delete t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyList_SET_ITEM(l, i, tobj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%ConvertToTypeCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SIP_SSIZE_T len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Check the type if that is all that is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (sipIsErr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            bool ok = (itm && sipCanConvertToType(itm, sipType_QPolygonF, SIP_NOT_NONE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            Py_XDECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if (!ok)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QList<QPolygonF> *ql = new QList<QPolygonF>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    len = PySequence_Size(sipPy);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (SIP_SSIZE_T i = 0; i < len; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PyObject *itm = PySequence_ITEM(sipPy, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        int state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QPolygonF *t = reinterpret_cast<QPolygonF *>(sipConvertToType(itm, sipType_QPolygonF, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        Py_DECREF(itm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (*sipIsErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sipReleaseType(t, sipType_QPolygonF, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            delete ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ql->append(*t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sipReleaseType(t, sipType_QPolygonF, state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *sipCppPtr = ql;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return sipGetState(sipTransferObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%End
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>