diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | PKGBUILD | 40 | ||||
-rw-r--r-- | gcc10.patch | 147 |
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 + |