summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD40
-rw-r--r--gcc10.patch147
3 files changed, 207 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..f643bb39df2a
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,20 @@
+pkgbase = python-nautilus-1
+ pkgdesc = Python bindings for the Nautilus Extension API
+ pkgver = 1.2.3
+ pkgrel = 8
+ url = https://wiki.gnome.org/Projects/NautilusPython
+ arch = x86_64
+ license = GPL2
+ makedepends = gtk-doc
+ depends = nautilus-typeahead
+ depends = python-gobject
+ provides = nautilus-python
+ provides = python-nautilus
+ conflicts = nautilus-python
+ conflicts = python-nautilus
+ source = https://download.gnome.org/sources/nautilus-python/1.2/nautilus-python-1.2.3.tar.xz
+ source = gcc10.patch
+ sha256sums = 073ce0297282259937ab473d189b97a04f42b97197c9292fc3bde9d135282098
+ sha256sums = 291aac3fc44837aa310e03c0cea2e1fccb882b4dd20afbb2796d1c410af4a55f
+
+pkgname = python-nautilus-1
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..6fea30b62bd6
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: getzze at gmail dot com
+# Contributor: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Giorgio Gilestro <giorgio@gilest.ro>
+
+pkgname=python-nautilus-1
+_pkgbase=nautilus-python
+pkgver=1.2.3
+pkgrel=8
+pkgdesc="Python bindings for the Nautilus Extension API"
+arch=(x86_64)
+url="https://wiki.gnome.org/Projects/NautilusPython"
+license=(GPL2)
+depends=(nautilus-typeahead python-gobject)
+makedepends=(gtk-doc)
+conflicts=(nautilus-python python-nautilus)
+provides=(nautilus-python python-nautilus)
+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
+}
+
+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
+}
+
+package() {
+ cd ${_pkgbase}-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/gcc10.patch b/gcc10.patch
new file mode 100644
index 000000000000..698aa82d80fb
--- /dev/null
+++ b/gcc10.patch
@@ -0,0 +1,147 @@
+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
+