public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/nemo] rawhide: Remove circular dependency: nemo-extensions no longer Requires nemo
@ 2026-07-26 20:57 Michal Schorm
  0 siblings, 0 replies; only message in thread
From: Michal Schorm @ 2026-07-26 20:57 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/nemo
            Branch : rawhide
            Commit : 4eaa4bbc73496e237b80814a25a5b36bc80209fe
            Author : Michal Schorm <mschorm@redhat.com>
            Date   : 2026-07-26T19:23:55+02:00
            Stats  : +0/-1 in 1 file(s)
            URL    : https://src.fedoraproject.org/rpms/nemo/c/4eaa4bbc73496e237b80814a25a5b36bc80209fe?branch=rawhide

            Log:
            Remove circular dependency: nemo-extensions no longer Requires nemo

The nemo-extensions subpackage ships 'libnemo-extension.so.*' (the
shared library) and the 'Nemo-3.0.typelib' GI binding. The main nemo
binary links against this library, so nemo correctly Requires
nemo-extensions. The reverse dependency (nemo-extensions Requires
nemo) creates a circular dependency.

History: the circular dep has existed since the initial import
(commit 1b1b0d3, 2012-09-25). There is no evidence it was a
deliberate design choice — both directions were added in the same
commit and never revisited.

Cross-distro comparison:

- nautilus (GNOME equivalent): identical architecture, NO circular
  dep. 'nautilus-extensions' does NOT require 'nautilus'. Extension
  packages (file-roller-nautilus, nautilus-dropbox, etc.) depend
  only on the soname. This pattern has worked in Fedora for years.

- Debian: splits nemo into 'libnemo-extension-1-0' (the library)
  which does NOT depend on 'nemo'. One-way only.

- Arch: monolithic package, no split. Not comparable.

Impact analysis — reverse dependencies on nemo-extensions:

  Already have explicit nemo Requires (no change):
    nemo-devel, nemo-python, nemo-megasync, gtkhash-nemo,
    nemo-gsconnect (via nemo-python)

  Depend only on soname libnemo-extension.so.1 (behavioral change):
    nemo-fileroller, nemo-seahorse, nemo-dropbox,
    nemo-image-converter

  The 4 soname-only packages would no longer transitively pull in
  nemo. This matches nautilus behavior and is correct: the library
  subpackage is a pure shared library. If a specific extension
  package needs the nemo binary, it should declare its own Requires.

Removing also fixes rpmlint/rpminspect circular-dependency warnings.

Co-Authored-By: Claude AI <noreply@anthropic.com>

---
diff --git a/nemo.spec b/nemo.spec
index 09e39b2..028c034 100644
--- a/nemo.spec
+++ b/nemo.spec
@@ -65,7 +65,6 @@ It is also responsible for handling the icons on the Cinnamon desktop.
 %package extensions
 Summary: Nemo extensions library
 License:    LGPL-2.0-or-later
-Requires:   %{name}%{?_isa} = %{version}-%{release}
 
 %description extensions
 This package provides the libraries used by nemo extensions.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-26 20:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-26 20:57 [rpms/nemo] rawhide: Remove circular dependency: nemo-extensions no longer Requires nemo Michal Schorm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox