From a91b8b98859db727351ed5291805b8582e3605ab Mon Sep 17 00:00:00 2001
From: Antonio Rojas <arojas@archlinux.org>
Date: Tue, 1 Nov 2022 10:06:50 +0000
Subject: [PATCH] Update to 4.0

---
 PKGBUILD    |  31 ++++-------
 gcc10.patch | 147 ----------------------------------------------------
 2 files changed, 10 insertions(+), 168 deletions(-)
 delete mode 100644 gcc10.patch

diff --git a/PKGBUILD b/PKGBUILD
index 7cd12fe..96b72b0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,35 +3,24 @@
 
 pkgbase=nautilus-python
 pkgname=python-nautilus
-pkgver=1.2.3
-pkgrel=7
+pkgver=4.0
+pkgrel=1
 pkgdesc="Python bindings for the Nautilus Extension API"
 arch=(x86_64)
 url="https://wiki.gnome.org/Projects/NautilusPython"
 license=(GPL2)
 depends=(nautilus python-gobject)
-makedepends=(gtk-doc)
-source=(https://download.gnome.org/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz
-        gcc10.patch)
-sha256sums=('073ce0297282259937ab473d189b97a04f42b97197c9292fc3bde9d135282098'
-            '291aac3fc44837aa310e03c0cea2e1fccb882b4dd20afbb2796d1c410af4a55f')
-
-prepare() {
-  cd $pkgbase-$pkgver
-
-  # https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/7
-  patch -Np1 -i ../gcc10.patch
-}
+makedepends=(gtk-doc meson)
+source=(https://download.gnome.org/sources/$pkgbase/$pkgver/$pkgbase-$pkgver.tar.xz)
+sha256sums=('17243d62eb7d7d839a9461ab8d0701688805c7161a6705e61413a58ec268281a')
 
 build() {
-  cd $pkgbase-$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-gtk-doc \
-              PYTHON=python3
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  make
+  meson build $pkgbase-$pkgver \
+    --prefix=/usr \
+    -D docs=enabled
+  meson compile -C build
 }
 
 package_python-nautilus() {
-  cd $pkgbase-$pkgver
-  make DESTDIR="$pkgdir" install
+  meson install -C build --destdir="$pkgdir"
 }
diff --git a/gcc10.patch b/gcc10.patch
deleted file mode 100644
index 698aa82..0000000
--- a/gcc10.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From bd4820186751034c6b5acb9c71b1aeab03c56523 Mon Sep 17 00:00:00 2001
-From: Andreas Henriksson <andreas@fatal.se>
-Date: Mon, 11 May 2020 14:57:45 +0200
-Subject: [PATCH] Fix build with gcc 10
-
-Bug-Debian: https://bugs.debian.org/957578
-Forwarded: https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/7
-Last-Update: 2020-05-11
----
- src/nautilus-python-object.c | 10 +++++-----
- src/nautilus-python.c        | 13 +++++++++++++
- src/nautilus-python.h        | 22 +++++++++++-----------
- 3 files changed, 29 insertions(+), 16 deletions(-)
-
-diff --git a/src/nautilus-python-object.c b/src/nautilus-python-object.c
-index f343070..da185ad 100644
---- a/src/nautilus-python-object.c
-+++ b/src/nautilus-python-object.c
-@@ -40,7 +40,7 @@ int __PyString_Check(PyObject *obj) {
- #endif
- }
- 
--char* __PyString_AsString(PyObject *obj) {
-+const char* __PyString_AsString(PyObject *obj) {
- #if PY_MAJOR_VERSION >= 3
-     return PyUnicode_AsUTF8(obj);
- #else
-@@ -389,7 +389,7 @@ beach:
- #define METHOD_NAME "update_file_info"
- static NautilusOperationResult
- nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
--                                         NautilusFile                 *file,
-+                                         NautilusFileInfo             *file_info,
-                                          GClosure                     *update_complete,
-                                          NautilusOperationHandle   **handle) {
-     NautilusPythonObject *object = (NautilusPythonObject*)provider;
-@@ -408,12 +408,12 @@ nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
-                                      pygobject_new((GObject*)provider),
-                                      py_handle,
-                                      pyg_boxed_new(G_TYPE_CLOSURE, update_complete, TRUE, TRUE),
--                                     pygobject_new((GObject*)file));
-+                                     pygobject_new((GObject*)file_info));
-     }
-     else if (PyObject_HasAttrString(object->instance, "update_file_info")) {
-         py_ret = PyObject_CallMethod(object->instance,
-                                      METHOD_PREFIX METHOD_NAME, "(N)",
--                                     pygobject_new((GObject*)file));
-+                                     pygobject_new((GObject*)file_info));
-     }
-     else {
-         goto beach;
-@@ -434,7 +434,7 @@ nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
- #endif
- 
- beach:
--    free_pygobject_data(file, NULL);
-+    free_pygobject_data(file_info, NULL);
-     Py_XDECREF(py_ret);
-     pyg_gil_state_release(state);
-     return ret;
-diff --git a/src/nautilus-python.c b/src/nautilus-python.c
-index 843e3c6..510cdfb 100644
---- a/src/nautilus-python.c
-+++ b/src/nautilus-python.c
-@@ -22,6 +22,7 @@
- #endif
- 
- #include <Python.h>
-+#define NO_IMPORT_PYGOBJECT //To avoid a multiple definition, nautilus-python-object.c also includes and does the import.
- #include <pygobject.h>
- #include <gmodule.h>
- #include <gtk/gtk.h>
-@@ -42,6 +43,18 @@ static gboolean nautilus_python_init_python(void);
- static GArray *all_types = NULL;
- 
- 
-+PyTypeObject *_PyGtkWidget_Type;
-+PyTypeObject *_PyNautilusColumn_Type;
-+PyTypeObject *_PyNautilusColumnProvider_Type;
-+PyTypeObject *_PyNautilusInfoProvider_Type;
-+PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
-+PyTypeObject *_PyNautilusMenu_Type;
-+PyTypeObject *_PyNautilusMenuItem_Type;
-+PyTypeObject *_PyNautilusMenuProvider_Type;
-+PyTypeObject *_PyNautilusPropertyPage_Type;
-+PyTypeObject *_PyNautilusPropertyPageProvider_Type;
-+PyTypeObject *_PyNautilusOperationHandle_Type;
-+
- static inline gboolean 
- np_init_pygobject(void) {
-     PyObject *gobject = pygobject_init (PYGOBJECT_MAJOR_VERSION, PYGOBJECT_MINOR_VERSION, PYGOBJECT_MICRO_VERSION);
-diff --git a/src/nautilus-python.h b/src/nautilus-python.h
-index 4c181f8..c940a06 100644
---- a/src/nautilus-python.h
-+++ b/src/nautilus-python.h
-@@ -43,37 +43,37 @@ extern NautilusPythonDebug nautilus_python_debug;
- #define debug_enter_args(x, y) { if (nautilus_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
-                                      g_printf("%s: entered " x "\n", __FUNCTION__, y); }
- 
--PyTypeObject *_PyGtkWidget_Type;
-+extern PyTypeObject *_PyGtkWidget_Type;
- #define PyGtkWidget_Type (*_PyGtkWidget_Type)
- 
--PyTypeObject *_PyNautilusColumn_Type;
-+extern PyTypeObject *_PyNautilusColumn_Type;
- #define PyNautilusColumn_Type (*_PyNautilusColumn_Type)
- 
--PyTypeObject *_PyNautilusColumnProvider_Type;
-+extern PyTypeObject *_PyNautilusColumnProvider_Type;
- #define PyNautilusColumnProvider_Type (*_PyNautilusColumnProvider_Type)
- 
--PyTypeObject *_PyNautilusInfoProvider_Type;
-+extern PyTypeObject *_PyNautilusInfoProvider_Type;
- #define PyNautilusInfoProvider_Type (*_PyNautilusInfoProvider_Type)
- 
--PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
-+extern PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
- #define PyNautilusLocationWidgetProvider_Type (*_PyNautilusLocationWidgetProvider_Type)
- 
--PyTypeObject *_PyNautilusMenu_Type;
-+extern PyTypeObject *_PyNautilusMenu_Type;
- #define PyNautilusMenu_Type (*_PyNautilusMenu_Type)
- 
--PyTypeObject *_PyNautilusMenuItem_Type;
-+extern PyTypeObject *_PyNautilusMenuItem_Type;
- #define PyNautilusMenuItem_Type (*_PyNautilusMenuItem_Type)
- 
--PyTypeObject *_PyNautilusMenuProvider_Type;
-+extern PyTypeObject *_PyNautilusMenuProvider_Type;
- #define PyNautilusMenuProvider_Type (*_PyNautilusMenuProvider_Type)
- 
--PyTypeObject *_PyNautilusPropertyPage_Type;
-+extern PyTypeObject *_PyNautilusPropertyPage_Type;
- #define PyNautilusPropertyPage_Type (*_PyNautilusPropertyPage_Type)
- 
--PyTypeObject *_PyNautilusPropertyPageProvider_Type;
-+extern PyTypeObject *_PyNautilusPropertyPageProvider_Type;
- #define PyNautilusPropertyPageProvider_Type (*_PyNautilusPropertyPageProvider_Type)
- 
--PyTypeObject *_PyNautilusOperationHandle_Type;
-+extern PyTypeObject *_PyNautilusOperationHandle_Type;
- #define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type)
- 
- #endif /* NAUTILUS_PYTHON_H */
--- 
-GitLab
-
-- 
GitLab