From ca65bdcdc400c73ceea5be4c0bd047baf56547d5 Mon Sep 17 00:00:00 2001 From: Max Downey Twiss Date: Mon, 13 Apr 2026 11:54:21 +1000 Subject: [PATCH] Fix duplicate packages providing library in tools/getrealdeps.rb (#15600) --- packages/cmus.rb | 1 - packages/evolution_data_server.rb | 2 -- packages/gnome_online_accounts.rb | 2 -- packages/gnome_sudoku.rb | 1 - packages/libgedit_gfls.rb | 1 - packages/pipewire.rb | 2 -- packages/py3_lxml.rb | 1 - tools/getrealdeps.rb | 10 ++++++++-- 8 files changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/cmus.rb b/packages/cmus.rb index 2d29622f6f..14097c417a 100644 --- a/packages/cmus.rb +++ b/packages/cmus.rb @@ -23,7 +23,6 @@ class Cmus < Package depends_on 'flac' # R depends_on 'gcc_lib' # R depends_on 'glibc' # R - depends_on 'jack1' # R depends_on 'jack' # R depends_on 'libmodplug' # R depends_on 'libsamplerate' # R diff --git a/packages/evolution_data_server.rb b/packages/evolution_data_server.rb index c09bd278c5..fb09403dd4 100644 --- a/packages/evolution_data_server.rb +++ b/packages/evolution_data_server.rb @@ -23,7 +23,6 @@ class Evolution_data_server < CMake depends_on 'gcr_3' # R depends_on 'gdk_pixbuf' => :library depends_on 'glib' => :library - depends_on 'glib_stub' => :library depends_on 'glibc' => :library depends_on 'gobject_introspection' => :build depends_on 'gperf' => :build @@ -41,7 +40,6 @@ class Evolution_data_server < CMake depends_on 'libsoup' => :library depends_on 'libsoup2' # R depends_on 'libxml2' => :library - depends_on 'libxml2_autotools' => :library depends_on 'nss' => :library depends_on 'p11kit' # R depends_on 'pango' => :library diff --git a/packages/gnome_online_accounts.rb b/packages/gnome_online_accounts.rb index e92a6fdd3d..49bab87469 100644 --- a/packages/gnome_online_accounts.rb +++ b/packages/gnome_online_accounts.rb @@ -18,7 +18,6 @@ class Gnome_online_accounts < Meson depends_on 'gcr_4' => :library depends_on 'glib' => :library - depends_on 'glib_stub' => :library depends_on 'glibc' => :library depends_on 'gobject_introspection' => :build depends_on 'gtk4' => :library @@ -33,7 +32,6 @@ class Gnome_online_accounts < Meson depends_on 'libsecret' => :library depends_on 'libsoup' => :library depends_on 'libxml2' => :library - depends_on 'libxml2_autotools' => :library depends_on 'libxslt' depends_on 'rest' => :library depends_on 'vala' => :build diff --git a/packages/gnome_sudoku.rb b/packages/gnome_sudoku.rb index 20b08f2f73..7981631c11 100644 --- a/packages/gnome_sudoku.rb +++ b/packages/gnome_sudoku.rb @@ -22,7 +22,6 @@ class Gnome_sudoku < Meson depends_on 'desktop_file_utils' => :build depends_on 'gcc_lib' => :executable depends_on 'glib' => :executable - depends_on 'glib_stub' => :executable depends_on 'glibc' => :executable depends_on 'gsound' => :build depends_on 'gtk4' => :executable diff --git a/packages/libgedit_gfls.rb b/packages/libgedit_gfls.rb index 3bcabd29eb..e246606b82 100644 --- a/packages/libgedit_gfls.rb +++ b/packages/libgedit_gfls.rb @@ -17,7 +17,6 @@ class Libgedit_gfls < Meson }) depends_on 'glib' => :library - depends_on 'glib_stub' => :library depends_on 'glibc' => :library depends_on 'gobject_introspection' depends_on 'gtk3' diff --git a/packages/pipewire.rb b/packages/pipewire.rb index 896ddbcdb2..2eb3ddb087 100644 --- a/packages/pipewire.rb +++ b/packages/pipewire.rb @@ -25,13 +25,11 @@ class Pipewire < Meson depends_on 'eudev' => :library depends_on 'gcc_lib' => :library depends_on 'glib' => :library - depends_on 'glib_stub' => :library depends_on 'glibc' => :library depends_on 'gsettings_desktop_schemas' => :build depends_on 'gstreamer' => :library depends_on 'gstreamer' => :logical depends_on 'jack' => :library - depends_on 'jack1' => :library depends_on 'libdrm' => :library depends_on 'libmysofa' => :library depends_on 'libsndfile' => :library diff --git a/packages/py3_lxml.rb b/packages/py3_lxml.rb index f99d5f24c9..739feb868c 100644 --- a/packages/py3_lxml.rb +++ b/packages/py3_lxml.rb @@ -18,7 +18,6 @@ class Py3_lxml < Pip depends_on 'glibc' => :library depends_on 'libxml2' => :library - depends_on 'libxml2_autotools' => :library depends_on 'libxslt' => :library depends_on 'py3_cython' => :build depends_on 'python3' => :logical diff --git a/tools/getrealdeps.rb b/tools/getrealdeps.rb index a593e12de4..05acd0ebd7 100755 --- a/tools/getrealdeps.rb +++ b/tools/getrealdeps.rb @@ -212,10 +212,16 @@ def determine_dependencies(pkg_name, pkgfiles_to_check) pkgdeps = pkgdeps.map { |i| i.gsub(/llvm(\d)+_lib/, 'llvm_lib') }.uniq pkgdeps = pkgdeps.map { |i| i.gsub(/llvm(\d)+_dev/, 'llvm_dev') }.uniq + # If two packages both provide a library, use the regular one unless this is the specific package that needs the alternative. + # TODO: Are there more packages like this? + pkgdeps = pkgdeps.map { |i| i.gsub('glib_stub', 'glib') }.uniq unless %w[gobject_introspection glib].include?(pkg_name) + # TODO: Since these packages aren't needed by any specific package, do we need to package them at all? + pkgdeps = pkgdeps.map { |i| i.gsub('jack1', 'jack') }.uniq + pkgdeps = pkgdeps.map { |i| i.gsub('libxml2_autotools', 'libxml2') }.uniq + # Split any multi-dependency strings into individual array members. pkgdeps = pkgdeps.flat_map(&:split).uniq - # TODO: Handle the situation where two conflicting packages provide the same library (i.e. jack and jack1) if pkgdeps.blank? return [] else @@ -273,7 +279,7 @@ def main(pkg) # was just built. pkgfiles.map! { |item| item.prepend(CREW_DEST_DIR) } if @opt_use_crew_dest_dir - # TODO: Does anything create this directory? If so, that should be documented more clearly, and if not, the line can be removed. + # Remove the temporary directory created in determine_dependencies. FileUtils.rm_rf("/tmp/deps/#{pkg.name}") # Remove files we don't care about, such as man files and non-binaries. pkgfiles = pkgfiles.reject { |i| !File.file?(i.chomp) || File.read(i.chomp, 4) != "\x7FELF" || i.include?('.zst') }