Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nautilus for openSUSE:Factory
checked in at 2026-09-22 15:53:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nautilus (Old)
and /work/SRC/openSUSE:Factory/.python-nautilus.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nautilus"
Tue Sep 22 15:53:26 2026 rev:33 rq:1379639 version:4.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nautilus/python-nautilus.changes
2025-10-07 18:25:38.046526144 +0200
+++
/work/SRC/openSUSE:Factory/.python-nautilus.new.383539/python-nautilus.changes
2026-09-22 15:55:08.398993959 +0200
@@ -1,0 +2,12 @@
+Mon Sep 21 07:56:24 UTC 2026 - Dominique Leuenberger <[email protected]>
+
+- Update to version 4.2.0:
+ + Fixed Python extensions not loading when another `python3` of a
+ matching version precedes the system one in `PATH`
+ + Fixed extensions reachable from more than one search directory
+ being registered once per directory, showing duplicate menu
+ items and columns
+ + Fixed Meson deprecation requiring at least Meson 0.62.0
+- Rebase fix-hwcaps.patch.
+
+-------------------------------------------------------------------
Old:
----
nautilus-python-4.1.0.tar.xz
New:
----
_scmsync.obsinfo
build.specials.obscpio
nautilus-python-4.2.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nautilus.spec ++++++
--- /var/tmp/diff_new_pack.DIp7Px/_old 2026-09-22 15:55:09.083022139 +0200
+++ /var/tmp/diff_new_pack.DIp7Px/_new 2026-09-22 15:55:09.084022180 +0200
@@ -22,19 +22,19 @@
%define skip_python2 1
Name: python-nautilus
-Version: 4.1.0
+Version: 4.2.0
Release: 0
Summary: Python bindings for Nautilus
License: GPL-2.0-or-later
Group: Development/Libraries/Python
URL: https://wiki.gnome.org/Projects/NautilusPython
-Source:
https://download.gnome.org/sources/nautilus-python/4.1/%{_name}-%{version}.tar.xz
+Source:
https://download.gnome.org/sources/nautilus-python/4.2/%{_name}-%{version}.tar.xz
# PATCH-FIX-OPENSUSE: fix-hwcaps.patch -- bsc#1212474
Patch1: fix-hwcaps.patch
BuildRequires: %{python_module devel}
BuildRequires: gtk-doc
-BuildRequires: meson
+BuildRequires: meson >= 0.62.0
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libnautilus-extension-4) >= 43.beta
++++++ _scmsync.obsinfo ++++++
mtime: 1789977981
commit: a4e5951a7981a5601ad4eb685233081422a7783f40b9b885e2b32824c1a6a4ac
url: https://src.opensuse.org/GNOME/python-nautilus
revision: a4e5951a7981a5601ad4eb685233081422a7783f40b9b885e2b32824c1a6a4ac
trackingbranch: factory
projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-09-21 10:06:21.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
++++++ fix-hwcaps.patch ++++++
--- /var/tmp/diff_new_pack.DIp7Px/_old 2026-09-22 15:55:09.188026465 +0200
+++ /var/tmp/diff_new_pack.DIp7Px/_new 2026-09-22 15:55:09.191026589 +0200
@@ -1,8 +1,8 @@
-Index: nautilus-python-4.0/src/nautilus-python.c
+Index: nautilus-python-4.2.0/src/nautilus-python.c
===================================================================
---- nautilus-python-4.0.orig/src/nautilus-python.c
-+++ nautilus-python-4.0/src/nautilus-python.c
-@@ -154,8 +154,8 @@ nautilus_python_init_python (void) {
+--- nautilus-python-4.2.0.orig/src/nautilus-python.c
++++ nautilus-python-4.2.0/src/nautilus-python.c
+@@ -160,8 +160,8 @@ nautilus_python_init_python (void) {
if (Py_IsInitialized())
return TRUE;
@@ -13,33 +13,35 @@
if (!libpython)
g_warning("g_module_open libpython failed: %s", g_module_error());
-Index: nautilus-python-4.0/meson.build
+Index: nautilus-python-4.2.0/meson.build
===================================================================
---- nautilus-python-4.0.orig/meson.build
-+++ nautilus-python-4.0/meson.build
-@@ -26,14 +26,14 @@ python_dep = python3.dependency(embed: t
+--- nautilus-python-4.2.0.orig/meson.build
++++ nautilus-python-4.2.0/meson.build
+@@ -30,7 +30,6 @@ python_dep = python3.dependency(embed: t
nautilus_extension_dir = libnautilus_extension.get_variable('extensiondir',
pkgconfig_define: ['libdir', libdir])
py_so_filename = python3.get_variable('INSTSONAME')
-python_libpath = python3.get_variable('LIBDIR') / py_so_filename
+ python_prefix = python3.get_variable('prefix')
conf = configuration_data()
- conf.set_quoted('DATADIR', datadir)
+@@ -38,7 +37,8 @@ conf.set_quoted('DATADIR', datadir)
conf.set('PYGOBJECT_MAJOR_VERSION', pygobject_major_version)
conf.set('PYGOBJECT_MINOR_VERSION', pygobject_minor_version)
conf.set('PYGOBJECT_MICRO_VERSION', pygobject_micro_version)
-conf.set_quoted('PYTHON_LIBPATH', python_libpath)
+conf.set_quoted('PYTHON_LIBNAME', py_so_filename)
+conf.set_quoted('PYTHON_LIBPATH', python3.get_variable('LIBDIR'))
+ conf.set_quoted('PYTHON_PREFIX', python_prefix)
configure_file(
- output: 'config.h',
-@@ -63,6 +63,6 @@ pkg.generate(
+@@ -65,7 +65,7 @@ pkg.generate(
summary({
'PyGObject Version': 'pygobject-3.0',
- 'Python Library': python_libpath,
+ 'Python Library': py_so_filename,
+ 'Python Prefix': python_prefix,
'Documentation': get_option('docs'),
})
++++++ nautilus-python-4.1.0.tar.xz -> nautilus-python-4.2.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/NEWS.md
new/nautilus-python-4.2.0/NEWS.md
--- old/nautilus-python-4.1.0/NEWS.md 2025-10-04 12:34:03.000000000 +0200
+++ new/nautilus-python-4.2.0/NEWS.md 2026-09-20 20:11:44.000000000 +0200
@@ -1,3 +1,9 @@
+## 4.2.0 (2026-09-20)
+
+- Fixed Python extensions not loading when another `python3` of a matching
version precedes the system one in `PATH` (Peter Bittner)
+- Fixed extensions reachable from more than one search directory being
registered once per directory, showing duplicate menu items and columns (Peter
Bittner)
+- Fixed Meson deprecation requiring at least Meson 0.62.0
(https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/20)
+
## 4.1.0 (2025-10-04)
- Added support for Nautilus 49
(https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/13)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/meson.build
new/nautilus-python-4.2.0/meson.build
--- old/nautilus-python-4.1.0/meson.build 2025-10-04 12:34:03.000000000
+0200
+++ new/nautilus-python-4.2.0/meson.build 2026-09-20 20:11:44.000000000
+0200
@@ -1,8 +1,8 @@
project(
'nautilus-python',
'c',
- version: '4.1.0',
- meson_version: '>= 0.59.0',
+ version: '4.2.0',
+ meson_version: '>= 0.62.0',
)
gnome = import('gnome', required: get_option('docs'))
@@ -31,6 +31,7 @@
py_so_filename = python3.get_variable('INSTSONAME')
python_libpath = python3.get_variable('LIBDIR') / py_so_filename
+python_prefix = python3.get_variable('prefix')
conf = configuration_data()
conf.set_quoted('DATADIR', datadir)
@@ -38,6 +39,7 @@
conf.set('PYGOBJECT_MINOR_VERSION', pygobject_minor_version)
conf.set('PYGOBJECT_MICRO_VERSION', pygobject_micro_version)
conf.set_quoted('PYTHON_LIBPATH', python_libpath)
+conf.set_quoted('PYTHON_PREFIX', python_prefix)
configure_file(
output: 'config.h',
@@ -56,10 +58,6 @@
name: 'nautilus-python',
description: 'Nautilus-Python Components',
variables: [
- # TODO: Remove when bumping minimum Meson version to 0.62
- #
https://mesonbuild.com/Release-notes-for-0-62-0.html#pkgconfiggenerate-will-now-include-variables-for-builtin-directories-when-referenced
- f'prefix=@prefix@',
- 'datadir=${prefix}/share',
'pythondir=${datadir}/nautilus-python/extensions',
],
dataonly: true,
@@ -68,5 +66,6 @@
summary({
'PyGObject Version': 'pygobject-3.0',
'Python Library': python_libpath,
+ 'Python Prefix': python_prefix,
'Documentation': get_option('docs'),
})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/npins/default.nix
new/nautilus-python-4.2.0/npins/default.nix
--- old/nautilus-python-4.1.0/npins/default.nix 2025-10-04 12:34:03.000000000
+0200
+++ new/nautilus-python-4.2.0/npins/default.nix 2026-09-20 20:11:44.000000000
+0200
@@ -9,8 +9,15 @@
*/
# Generated by npins. Do not modify; will be overwritten regularly
let
- data = builtins.fromJSON (builtins.readFile ./sources.json);
- version = data.version;
+ # Backwards-compatibly make something that previously didn't take any
arguments take some
+ # The function must return an attrset, and will unfortunately be eagerly
evaluated
+ # Same thing, but it catches eval errors on the default argument so that one
may still call it with other arguments
+ mkFunctor =
+ fn:
+ let
+ e = builtins.tryEval (fn { });
+ in
+ (if e.success then e.value else { error = fn { }; }) // { __functor =
_self: fn; };
#
https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
range =
@@ -21,7 +28,6 @@
#
https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
- concatMapStrings = f: list: concatStrings (map f list);
concatStrings = builtins.concatStringsSep "";
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
@@ -48,19 +54,62 @@
mkSource =
name: spec:
+ {
+ pkgs ? null,
+ }:
assert spec ? type;
let
+ # Unify across builtin and pkgs fetchers.
+ # `fetchGit` requires a wrapper because of slight API differences.
+ fetchers =
+ if pkgs == null then
+ {
+ inherit (builtins) fetchTarball fetchurl;
+ # Frustratingly, due to flakes and `fetchTree`, `fetchGit`
+ # has a different signature than the other builtin
+ # fetchers
+ fetchGit = args: (builtins.fetchGit args).outPath;
+ }
+ else
+ {
+ fetchTarball =
+ {
+ url,
+ sha256,
+ }:
+ pkgs.fetchzip {
+ inherit url sha256;
+ extension = "tar";
+ };
+ inherit (pkgs) fetchurl;
+ fetchGit =
+ {
+ url,
+ submodules,
+ rev,
+ name,
+ narHash,
+ }:
+ pkgs.fetchgit {
+ inherit url rev name;
+ fetchSubmodules = submodules;
+ hash = narHash;
+ };
+ };
+
path =
if spec.type == "Git" then
- mkGitSource spec
+ mkGitSource fetchers spec
else if spec.type == "GitRelease" then
- mkGitSource spec
+ mkGitSource fetchers spec
else if spec.type == "PyPi" then
- mkPyPiSource spec
+ mkPyPiSource fetchers spec
else if spec.type == "Channel" then
- mkChannelSource spec
- else if spec.type == "Tarball" then
- mkTarballSource spec
+ mkChannelSource fetchers spec
+ else if spec.type == "Url" || spec.type == "MutableUrl" then
+ mkUrlSource fetchers spec
+ else if spec.type == "Container" then
+ mkContainerSource pkgs spec
else
builtins.throw "Unknown source type ${spec.type}";
in
@@ -68,21 +117,25 @@
mkGitSource =
{
+ fetchTarball,
+ fetchGit,
+ ...
+ }:
+ {
repository,
revision,
url ? null,
submodules,
hash,
- branch ? null,
...
}:
assert repository ? type;
# At the moment, either it is a plain git repository (which has an url),
or it is a GitHub/GitLab repository
# In the latter case, there we will always be an url to the tarball
if url != null && !submodules then
- builtins.fetchTarball {
+ fetchTarball {
inherit url;
- sha256 = hash; # FIXME: check nix version & use SRI hashes
+ sha256 = hash;
}
else
let
@@ -93,6 +146,8 @@
"https://github.com/${repository.owner}/${repository.repo}.git"
else if repository.type == "GitLab" then
"${repository.server}/${repository.repo_path}.git"
+ else if repository.type == "Forgejo" then
+ "${repository.server}/${repository.owner}/${repository.repo}.git"
else
throw "Unrecognized repository type ${repository.type}";
urlToName =
@@ -107,40 +162,99 @@
"${if matched == null then "source" else builtins.head
matched}${appendShort}";
name = urlToName url revision;
in
- builtins.fetchGit {
+ fetchGit {
rev = revision;
- inherit name;
- # hash = hash;
- inherit url submodules;
+ narHash = hash;
+
+ inherit name submodules url;
};
mkPyPiSource =
- { url, hash, ... }:
- builtins.fetchurl {
+ { fetchurl, ... }:
+ {
+ url,
+ hash,
+ ...
+ }:
+ fetchurl {
inherit url;
sha256 = hash;
};
mkChannelSource =
- { url, hash, ... }:
- builtins.fetchTarball {
+ { fetchTarball, ... }:
+ {
+ url,
+ hash,
+ ...
+ }:
+ fetchTarball {
inherit url;
sha256 = hash;
};
- mkTarballSource =
+ mkUrlSource =
+ {
+ fetchTarball,
+ fetchurl,
+ ...
+ }:
{
url,
- locked_url ? url,
hash,
+ unpack,
...
}:
- builtins.fetchTarball {
- url = locked_url;
+ (if unpack then fetchTarball else fetchurl) {
+ inherit url;
sha256 = hash;
};
+
+ mkContainerSource =
+ pkgs:
+ {
+ image_name,
+ image_tag,
+ image_digest,
+ hash,
+ ...
+ }@args:
+ if pkgs == null then
+ builtins.throw "container sources require passing in a Nixpkgs value:
https://github.com/andir/npins/blob/master/README.md#using-the-nixpkgs-fetchers"
+ else
+ pkgs.dockerTools.pullImage (
+ {
+ imageName = image_name;
+ imageDigest = image_digest;
+ finalImageTag = image_tag;
+ hash = hash;
+ }
+ // (if args.arch or null != null then { arch = args.arch; } else { })
+ );
+
in
-if version == 5 then
- builtins.mapAttrs mkSource data.pins
-else
- throw "Unsupported format version ${toString version} in sources.json. Try
running `npins upgrade`"
+mkFunctor (
+ {
+ input ? ./sources.json,
+ }:
+ let
+ data =
+ if builtins.isPath input then
+ # while `readFile` will throw an error anyways if the path doesn't
exist,
+ # we still need to check beforehand because *our* error can be caught
but not the one from the builtin
+ # See: <https://git.lix.systems/lix-project/lix/issues/1098>
+ if builtins.pathExists input then
+ builtins.fromJSON (builtins.readFile input)
+ else
+ throw "Input path ${toString input} does not exist"
+ else if builtins.isAttrs input then
+ input
+ else
+ throw "Unsupported input type ${builtins.typeOf input}, must be a path
or an attrset";
+ version = data.version;
+ in
+ if version == 8 then
+ builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins
+ else
+ throw "Unsupported format version ${toString version} in sources.json. Try
running `npins upgrade`"
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/npins/sources.json
new/nautilus-python-4.2.0/npins/sources.json
--- old/nautilus-python-4.1.0/npins/sources.json 2025-10-04
12:34:03.000000000 +0200
+++ new/nautilus-python-4.2.0/npins/sources.json 2026-09-20
20:11:44.000000000 +0200
@@ -3,9 +3,10 @@
"nixpkgs": {
"type": "Channel",
"name": "nixos-unstable",
- "url":
"https://releases.nixos.org/nixos/unstable/nixos-25.11pre870157.7df7ff7d8e00/nixexprs.tar.xz",
- "hash": "1f5zj0dvb29i77qzcnxxzaasp38l98dvfmdabbs7yh8cw4wsy86p"
+ "artifact": "nixexprs.tar.xz",
+ "url":
"https://releases.nixos.org/nixos/unstable/nixos-26.11pre1075591.e554fab72f81/nixexprs.tar.xz",
+ "hash": "sha256-TAKa57gfBM/9a4IZrFaIQZhnHs9mXIFPlZbYrvhnaMY="
}
},
- "version": 5
+ "version": 8
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/src/nautilus-python-object.h
new/nautilus-python-4.2.0/src/nautilus-python-object.h
--- old/nautilus-python-4.1.0/src/nautilus-python-object.h 2025-10-04
12:34:03.000000000 +0200
+++ new/nautilus-python-4.2.0/src/nautilus-python-object.h 2026-09-20
20:11:44.000000000 +0200
@@ -17,8 +17,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#ifndef NAUTILUS_PYTHON_OBJECT_H
-#define NAUTILUS_PYTHON_OBJECT_H
+#pragma once
#include <Python.h>
#include <glib-object.h>
@@ -41,5 +40,3 @@
GType nautilus_python_object_get_type (GTypeModule *module, PyObject *type);
G_END_DECLS
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/src/nautilus-python.c
new/nautilus-python-4.2.0/src/nautilus-python.c
--- old/nautilus-python-4.1.0/src/nautilus-python.c 2025-10-04
12:34:03.000000000 +0200
+++ new/nautilus-python-4.2.0/src/nautilus-python.c 2026-09-20
20:11:44.000000000 +0200
@@ -64,7 +64,7 @@
static void
nautilus_python_load_file(GTypeModule *type_module,
- const gchar *filename) {
+ const char *filename) {
PyObject *main_module, *main_locals, *locals, *key, *value;
PyObject *module;
GType gtype;
@@ -105,7 +105,8 @@
static void
nautilus_python_load_dir (GTypeModule *module,
- const char *dirname) {
+ const char *dirname,
+ GHashTable *loaded_modules) {
GDir *dir;
const char *name;
gboolean initialized = FALSE;
@@ -121,6 +122,9 @@
size_t len = strlen (name) - 3;
g_autofree char *modulename = g_strndup (name, len);
+ if (g_hash_table_contains(loaded_modules, modulename))
+ continue;
+
if (!initialized) {
PyObject *sys_path, *py_path;
@@ -136,9 +140,12 @@
py_path = PyUnicode_FromString(dirname);
PyList_Insert(sys_path, 0, py_path);
Py_DECREF(py_path);
+
+ initialized = TRUE;
}
nautilus_python_load_file(module, modulename);
+ g_hash_table_add(loaded_modules, g_steal_pointer (&modulename));
}
}
@@ -158,10 +165,19 @@
if (!libpython)
g_warning("g_module_open libpython failed: %s", g_module_error());
- debug("Py_Initialize");
- Py_Initialize();
- if (PyErr_Occurred()) {
- PyErr_Print();
+ debug("Py_InitializeFromConfig " PYTHON_PREFIX);
+ PyConfig config;
+ PyStatus status;
+
+ PyConfig_InitPythonConfig(&config);
+ PyConfig_SetBytesString(&config, &config.home, PYTHON_PREFIX);
+
+ status = Py_InitializeFromConfig(&config);
+ PyConfig_Clear(&config);
+
+ if (PyStatus_Exception(status)) {
+ g_warning("Py_InitializeFromConfig failed: %s",
+ status.err_msg != NULL ? status.err_msg : "unknown error");
return FALSE;
}
@@ -221,44 +237,30 @@
static void
nautilus_python_check_all_directories(GTypeModule *module) {
- GList *dirs = NULL;
+ g_autoptr (GHashTable) loaded_modules = g_hash_table_new_full(g_str_hash,
g_str_equal, g_free, NULL);
// Check ~/.local/share first
- dirs = g_list_append(dirs, g_build_filename(g_get_user_data_dir(),
- "nautilus-python", "extensions", NULL));
+ g_autofree char* user_dir = g_build_filename(g_get_user_data_dir(),
"nautilus-python", "extensions", NULL);
+ nautilus_python_load_dir(module, user_dir, loaded_modules);
// If nautilus is built in a non-standard prefix
// Check nautilus prefix's DATADIR
- gchar *prefix_extension_dir = DATADIR "/nautilus-python/extensions";
- dirs = g_list_append(dirs, g_strdup (prefix_extension_dir));
+ char *prefix_extension_dir = DATADIR "/nautilus-python/extensions";
+ nautilus_python_load_dir(module, prefix_extension_dir, loaded_modules);
// Check all system data dirs
- const gchar *const *temp = g_get_system_data_dirs();
- while (*temp != NULL) {
- gchar *dir = g_build_filename(*temp,
- "nautilus-python", "extensions", NULL);
+ const char *const *temp = g_get_system_data_dirs();
+ for (; *temp != NULL; temp++) {
+ g_autofree char *dir = g_build_filename(*temp, "nautilus-python",
"extensions", NULL);
if (g_strcmp0(dir, prefix_extension_dir) != 0) {
- dirs = g_list_append(dirs, dir);
- } else {
- g_free (dir);
+ nautilus_python_load_dir(module, dir, loaded_modules);
}
-
- temp++;
- }
-
- dirs = g_list_first(dirs);
- while (dirs != NULL) {
- gchar *dir = dirs->data;
- nautilus_python_load_dir(module, dir);
- dirs = dirs->next;
}
-
- g_list_free_full (dirs, g_free);
}
void
nautilus_module_initialize(GTypeModule *module) {
- const gchar *env_string;
+ const char *env_string;
env_string = g_getenv("NAUTILUS_PYTHON_DEBUG");
if (env_string != NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nautilus-python-4.1.0/src/nautilus-python.h
new/nautilus-python-4.2.0/src/nautilus-python.h
--- old/nautilus-python-4.1.0/src/nautilus-python.h 2025-10-04
12:34:03.000000000 +0200
+++ new/nautilus-python-4.2.0/src/nautilus-python.h 2026-09-20
20:11:44.000000000 +0200
@@ -17,8 +17,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#ifndef NAUTILUS_PYTHON_H
-#define NAUTILUS_PYTHON_H
+#pragma once
#include <glib-object.h>
#include <glib/gprintf.h>
@@ -66,5 +65,3 @@
extern PyTypeObject *_PyNautilusOperationHandle_Type;
#define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type)
-
-#endif /* NAUTILUS_PYTHON_H */